Một tháng sau khi Ubuntu 22.04 ra mắt, mình quyết định nâng cấp dàn server của mình, đang chạy Ubuntu 20.04, lên Ubuntu 22.04. Trong quá trình làm, một số bất ngờ nảy sinh như sau:
-
Một số server của mình có chạy Mosquitto, một MQTT broker, để thu nhận dữ liệu từ các cảm biến ngoài trang trại gửi về. Sau khi nâng cấp lên Ubuntu 22.04 tự dưng không nhận được dữ liệu nữa. Ban đầu tưởng lý do không nằm ở Mosquitto vì thử publish gói tin lên từ cùng một máy vẫn thấy nhận được dữ liệu. Mất một ngày để phát hiện, hóa ra trên Ubuntu 22.04 thì Mosquitto thay đổi hành vi, mặc định nó không lắng nghe trên mọi network interface nữa mà chỉ nghe trên localhost, nên gói tin gửi từ cùng một máy thì nhận được, gửi từ bên ngoài vào thì không nhận.
-
Mình sử dụng TimescaleDB làm database lưu trữ dữ liệu IoT. TimescaleDB là một extension của PostgreSQL. Trên Ubuntu 20.04 thì là PostgreSQL 12, trên Ubuntu 22.04 thì là PostgreSQL 14 nên phải tìm cách nâng cấp bộ dữ liệu đang chứa trên máy từ Postgres 12 lên 14. Bình thường nếu không cài TimescaleDB thì việc này rất nhanh chóng, dùng lệnh pg_upgradecluster là được. Nhưng khi có TimescaleDB thì mới lộ ra là lệnh này có bug, chạy không thành công. May mắn có người giải quyết vấn đề này trước và viết hướng dẫn trên mạng. Thực hiện hơi lòng vòng nhiều bước nhưng cũng thành công.