Lên đời Ubuntu Server 24.04 LTS: Quy trình thực tế để “về đích” an toàn

Ubuntu tutorial - IT technology blog
Ubuntu tutorial - IT technology blog

Vấn đề thực tế: Khi nào nên (và không nên) nhấn nút nâng cấp?

Hồi mình mới vào nghề, có lần mình “liều” nâng cấp hệ thống trực tiếp (in-place upgrade) ngay trên con server production vào đúng 10 giờ sáng. Kết quả thật thảm khốc: Server treo cứng ở đoạn cấu hình GRUB, dịch vụ sập sạch, và mình mất trắng 6 tiếng đồng hồ chỉ để cứu dữ liệu. Bài học xương máu: Đừng bao giờ đùa với việc nâng cấp OS nếu chưa có sự chuẩn bị kỹ lưỡng.

Hiện tại, Ubuntu 24.04 LTS (Noble Numbat) đã ra mắt với Kernel 6.8, hỗ trợ bảo mật tốt hơn và tối ưu hiệu năng đáng kể. Có thể dàn VPS 22.04 của anh em vẫn đang chạy rất ổn định. Tuy nhiên, nhu cầu sử dụng các bản vá mới nhất hay thư viện đời cao như Python 3.12 và PHP 8.3 sẽ sớm thôi thúc anh em phải lên đời.

Làm sao để lên 24.04 mà không phải thức trắng đêm fix lỗi? Làm sao để Database, Nginx hay Docker container vẫn chạy mượt sau khi gõ lệnh? Chúng ta sẽ giải quyết bài toán này theo cách của một Sysadmin thực thụ.

Phân tích nguyên nhân: Tại sao việc nâng cấp thường thất bại?

Nâng cấp Ubuntu không đơn giản là gõ lệnh rồi ngồi chờ. Theo kinh nghiệm quản lý hạ tầng của mình, có 3 nguyên nhân chính khiến hệ thống “ngỏm” giữa chừng:

  1. Xung đột Repository (PPA): Đây là hung thủ số một. Nếu anh em cài quá nhiều PPA từ bên thứ ba (như Ondrej PHP hoặc MariaDB), các gói này có thể không tương thích với cấu trúc thư viện mới, dẫn đến lỗi Dependency nghiêm trọng.
  2. Mất kết nối SSH: Quá trình nâng cấp thường mất từ 20 đến 45 phút. Mạng nhà chập chờn làm rớt session SSH giữa lúc đang gỡ package cũ là thảm họa. Khi đó, server rơi vào trạng thái “nửa nạc nửa mỡ” và thường không thể boot lại được.
  3. Cạn kiệt ổ cứng: Quá trình này cần tải về khoảng 1.5GB – 2GB dữ liệu và giải nén liên tục. Nếu phân vùng /boot còn dưới 500MB hoặc ổ / trống dưới 5GB, tỉ lệ thất bại là gần như chắc chắn.

Nhiều anh em mới chuyển từ CentOS sang Ubuntu thường nhầm lẫn giữa apt upgradedo-release-upgrade. Hãy nhớ: lệnh trước chỉ cập nhật gói nhỏ, lệnh sau mới là “thay máu” toàn bộ hệ điều hành.

Các phương án tiếp cận phổ biến

Khi muốn lên đời 24.04, anh em có 2 lựa chọn chính tùy vào độ quan trọng của dịch vụ:

Cách 1: Cài đặt mới hoàn toàn (Clean Install)

Đây là cách an toàn nhất về mặt kỹ thuật. Anh em thuê một con VPS mới chạy 24.04, sau đó migrate code và database sang.

  • Ưu điểm: Hệ thống sạch 100%, loại bỏ hoàn toàn các cấu hình rác tích tụ nhiều năm.
  • Nhược điểm: Tốn công cấu hình lại từ đầu, dễ sót các file config ẩn trong /etc hoặc các cronjob cũ.

Cách 2: Nâng cấp trực tiếp (In-place Upgrade)

Sử dụng công cụ do-release-upgrade chính chủ của Canonical.

  • Ưu điểm: Nhanh gọn, giữ nguyên mọi User, dữ liệu và phân quyền thư mục.
  • Nhược điểm: Tiềm ẩn rủi ro nếu hệ thống cũ đang chạy quá nhiều tùy chỉnh phức tạp.

Quy trình nâng cấp an toàn 5 bước (Success Rate 99%)

Để đảm bảo mọi thứ diễn ra trơn tru, mình khuyên anh em nên tuân thủ quy trình “chậm mà chắc” dưới đây. Đây là tiêu chuẩn mình áp dụng khi quản lý hàng chục server cho khách hàng.

Bước 0: Snapshot – Lối thoát hiểm duy nhất

Trước khi gõ bất cứ lệnh gì, hãy vào Dashboard của Cloud Provider (như DigitalOcean, AWS, hay Vultr) để tạo một bản Snapshot. Nếu có sự cố, anh em chỉ cần nhấn “Restore” là xong. Đừng bao giờ đánh cược dữ liệu của mình vào sự may mắn!

Bước 1: Làm sạch hệ thống cũ

Hệ thống phải ở trạng thái ổn định nhất trước khi nâng cấp. Hãy chạy bộ lệnh sau để cập nhật mọi gói hiện tại:

sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y

Sau đó, hãy reboot server một lần để đảm bảo Kernel mới nhất đã được kích hoạt ổn định.

Bước 2: Sử dụng Screen – Chống đứt mạng ngang xương

Cài đặt screen hoặc tmux để giữ phiên làm việc luôn chạy ngầm trên server, ngay cả khi máy tính của anh em bị mất mạng.

sudo apt install screen -y
screen -S upgrade_session

Nếu chẳng may bị văng ra, anh em chỉ cần login lại và gõ screen -r upgrade_session là có thể tiếp tục theo dõi tiến trình.

Bước 3: Kích hoạt lệnh nâng cấp

Gõ lệnh điều khiển chính:

sudo do-release-upgrade

Lưu ý quan trọng: Nếu Ubuntu báo “No new release found”, đó là vì bản nâng cấp LTS thường chỉ mở chính thức sau khi bản 24.04.1 ra mắt. Để ép hệ thống nâng cấp ngay (với độ rủi ro cao hơn một chút), hãy dùng cờ -d (Development):

sudo do-release-upgrade -d

Bước 4: Tương tác và xử lý file cấu hình

Hệ thống sẽ dừng lại và hỏi anh em một vài câu then chốt:

  • Mở port SSH dự phòng: Hãy chọn y (thường là port 1022). Nếu port 22 chính bị lỗi trong quá trình đổi version, anh em vẫn còn đường vào server.
  • Configuration file: Khi được hỏi chọn file config cũ hay mới cho các dịch vụ như Nginx/MySQL, hãy chọn Keep the local version currently installed. Việc giữ lại file cấu hình cũ giúp dịch vụ của anh em không bị “đứng hình” sau khi reboot.

Bước 5: Kiểm tra và dọn dẹp

Sau khi server khởi động lại, hãy kiểm tra thành quả:

lsb_release -a
sudo systemctl status nginx mysql docker

Xử lý sự cố thường gặp

Lỗi Broken Packages: Nếu gặp thông báo lỗi package giữa chừng, hãy bình tĩnh thử xử lý bằng lệnh sudo apt --fix-broken install. Thường thì hệ thống sẽ tự sửa được các phụ thuộc đơn giản.

Vấn đề với Python: Ubuntu 24.04 sử dụng Python 3.12 mặc định. Nếu anh em có các script Python cũ chạy môi trường ảo (virtualenv), khả năng cao là phải xóa đi và tạo lại môi trường mới để tương thích với interpreter mới.

Thay đổi tên Interface mạng: Đôi khi hệ thống đổi tên interface từ eth0 sang ens3 khiến server mất mạng. Nếu không thể ping, hãy kiểm tra ngay file cấu hình trong /etc/netplan/.

Nâng cấp hệ thống là kỹ năng bắt buộc để duy trì sự an toàn và hiệu suất cho hạ tầng IT. Đừng sợ hãi, chỉ cần anh em chuẩn bị kỹ một bản backup và làm đúng quy trình. Chúc anh em đưa con server của mình lên Ubuntu 24.04 LTS thành công rực rỡ!

Share: