Khi LXD không còn thuộc về cộng đồng
Nếu bạn từng quản lý cụm server Ubuntu, chắc hẳn LXD không còn xa lạ. Tuy nhiên, việc Canonical thu hồi quyền kiểm soát LXD và chuyển sang giấy phép mới đã tạo ra một làn sóng dịch chuyển. Nhiều anh em sysadmin, trong đó có mình, từng khốn đốn vì các bản cập nhật Snap tự động của LXD làm treo card mạng ảo vào lúc 2 giờ sáng mà không thể can thiệp sâu vào code.
Trên môi trường staging, mình từng chứng kiến container mất kết nối hoàn toàn sau một bản update Snap lỗi. Lúc đó, mình hiểu rằng hệ thống cần một giải pháp ổn định hơn, giữ đúng tinh thần mã nguồn mở và không phụ thuộc vào hệ sinh thái đóng. Đó là lý do Incus ra đời.
Tại sao Incus là lựa chọn hàng đầu hiện nay?
Incus là bản fork của LXD do chính những nhà phát triển đời đầu tạo ra. Sau 6 tháng vận hành thực tế, mình đúc kết được 3 lý do khiến Incus vượt trội:
- Tạm biệt Snap: Incus sử dụng package .deb truyền thống. Bạn hoàn toàn kiểm soát việc update, không còn lo ngại cơ chế mount phức tạp của Snap gây tốn tài nguyên hoặc lỗi file system.
- Nhẹ và nhanh: Qua benchmark thực tế, một container Incus ở chế độ nghỉ chỉ tiêu tốn khoảng 50-70MB RAM. Con số này thấp hơn đáng kể so với việc chạy VM truyền thống (thường mất tối thiểu 1GB RAM cho OS).
- Quản lý tập trung: Bạn có thể điều khiển cả Container (nhẹ như Docker nhưng có systemd riêng) và Virtual Machines (VM) thông qua một bộ lệnh duy nhất.
Lựa chọn nào phù hợp cho hệ thống của bạn?
Trước khi bắt tay vào cài đặt, hãy nhìn qua các phương án ảo hóa phổ biến trên Ubuntu 24.04:
- Docker: Tuyệt vời cho microservices nhưng rất khó để chạy một OS đầy đủ với crontab hoặc ssh riêng.
- KVM/QEMU thuần: Hiệu năng cực tốt nhưng cấu hình mạng (bridge) thủ công rất dễ sai sót và tốn thời gian.
- Incus: Điểm giao thoa hoàn hảo. Bạn có tốc độ khởi động container dưới 1 giây và sự cô lập bảo mật của VM khi cần thiết.
Quy trình cài đặt Incus trên Ubuntu 24.04
Dưới đây là các bước mình đã triển khai trên dàn server chạy chip AMD EPYC. Quy trình này đảm bảo tính ổn định cao nhất cho môi trường production.
Bước 1: Cấu hình Repository từ Zabbly
Incus hiện không có sẵn trong repo mặc định của Ubuntu. Chúng ta sẽ dùng repository của Zabbly, được duy trì bởi Stéphane Graber – cựu leader dự án LXD.
# Cài đặt công cụ hỗ trợ
sudo apt update
sudo apt install -y curl gpg
# Thêm script tự động cấu hình repo
sudo curl -fsSL https://pkgs.zabbly.com/get/incus-stable.sh | sudo bash
Script này sẽ tự nhận diện Ubuntu 24.04 (Noble Numbat) để nạp đúng source list. Bạn không cần lo lắng về việc sai lệch phiên bản.
Bước 2: Cài đặt và phân quyền
Việc cài đặt giờ đây chỉ mất vài giây:
sudo apt update
sudo apt install -y incus
Để điều khiển Incus mà không cần gõ sudo liên tục, hãy thêm user vào group quản trị:
sudo usermod -aG incus-admin $USER
newgrp incus-admin
Bước 3: Khởi tạo hệ thống (Incus Init)
Đây là lúc bạn quyết định hiệu suất của hệ thống. Hãy chạy lệnh sau:
incus admin init
Lưu ý quan trọng:
– Storage: Ưu tiên chọn zfs nếu bạn cần tính năng snapshot cực nhanh (dưới 1 giây).
– Network Bridge: Chọn yes để tạo incusbr0. Đây là cầu nối giúp container đi internet.
– Fan Overlay: Chọn no nếu bạn chỉ chạy trên một server đơn lẻ.
Bước 4: Tạo Container đầu tiên
Thử nghiệm sức mạnh của Incus bằng cách khởi tạo một bản Ubuntu 24.04:
# Khởi chạy container tên 'app-server'
incus launch images:ubuntu/24.04 app-server
# Kiểm tra danh sách
incus list
Thông thường, container sẽ sẵn sàng chỉ sau khoảng 1.5 giây. Nếu bạn muốn chạy một máy ảo (VM) hoàn chỉnh để cài kernel riêng, chỉ cần thêm flag --vm vào lệnh launch.
Kinh nghiệm vận hành thực tế
Sau một thời gian dài sử dụng Incus, mình rút ra vài kinh nghiệm xương máu để anh em tối ưu hệ thống:
- Bật giao diện Web: Incus có UI rất chuyên nghiệp. Bạn có thể kích hoạt trong lúc
initđể quản lý tài nguyên trực quan hơn qua port 8443. - Snapshot là cứu cánh: Trước khi sửa file config nginx hay database, hãy chạy
incus snapshot create app-server backup-1. Nếu lỗi, bạn chỉ mất 2 giây để rollback. - Giới hạn tài nguyên: Để tránh một container chiếm hết CPU của cả host, hãy giới hạn cứng ngay từ đầu:
incus config set app-server limits.memory 4GB
incus config set app-server limits.cpu 4
Việc chuyển từ LXD sang Incus không chỉ là thay đổi một cái tên. Đó là cách bạn lấy lại quyền kiểm soát hệ thống ảo hóa của mình. Incus chạy mượt mà, ổn định và quan trọng nhất là nó cực kỳ minh bạch. Nếu bạn đang lên kế hoạch nâng cấp lên Ubuntu 24.04, hãy mạnh dạn gỡ bỏ LXD và bắt đầu với Incus.

