Incus trên Ubuntu: Hướng dẫn cài đặt và ‘lên đời’ từ LXD

Virtualization tutorial - IT technology blog
Virtualization tutorial - IT technology blog

Incus vs LXD: Tại sao anh em nên quan tâm?

Nếu từng dùng LXD trên Ubuntu, chắc hẳn bạn đã thấy nó tiện thế nào khi chạy System Container. Tuy nhiên, từ khi Canonical đưa LXD về quản lý nội bộ, cộng đồng đã nhanh chóng tạo ra bản fork độc lập mang tên Incus.

Incus giữ nguyên sức mạnh của LXD nhưng loại bỏ hoàn toàn sự phụ thuộc vào Snap. Việc cài đặt giờ đây diễn ra qua APT truyền thống, giúp hệ thống “sạch” và linh hoạt hơn hẳn. Với mình, bỏ qua Snap để sang Incus là cách tốt nhất để giành lại quyền kiểm soát server.

Mình đang chạy một cụm Homelab với Proxmox quản lý khoảng 12 VM. Proxmox rất mạnh cho quản trị tập trung, nhưng Incus mới là “vũ khí” tối thượng khi cần thao tác CLI nhanh. Một container Ubuntu trên Incus khởi động chỉ mất chưa đầy 1 giây – tốc độ mà các VM truyền thống không bao giờ chạm tới được.

Bước 1: Cài đặt Incus từ Repository Zabbly

Do Incus chưa có sẵn trong kho mặc định của các bản Ubuntu cũ, chúng ta sẽ sử dụng repository từ Zabbly. Đây là nguồn uy tín do chính các maintainer đời đầu của dự án quản lý.

1.1 Thêm Repository

Trước hết, hãy cập nhật hệ thống và cài đặt curl cùng gpg:

sudo apt update && sudo apt install -y curl gpg

Tiếp theo, tải khóa GPG của Zabbly để xác thực gói tin:

sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL https://pkgs.zabbly.com/key.asc -o /etc/apt/keyrings/zabbly.asc

Bây giờ, hãy khai báo repository vào danh sách nguồn cấp của Ubuntu:

cat <<EOF | sudo tee /etc/apt/sources.list.d/zabbly-incus-stable.sources
Enabled: yes
Types: deb
URIs: https://pkgs.zabbly.com/incus/stable
Suites: $(. /etc/os-release && echo ${VERSION_CODENAME})
Components: main
Signed-By: /etc/apt/keyrings/zabbly.asc
EOF

1.2 Cài đặt các gói thành phần

Chỉ cần 2 lệnh nữa là xong phần cài đặt:

sudo apt update
sudo apt install -y incus

Đừng quên kiểm tra xem service đã chạy ổn định chưa nhé:

systemctl status incus

Bước 2: Cấu hình nhanh với incus admin init

Cài xong chưa dùng được ngay đâu anh em. Chúng ta cần thiết lập hạ tầng lưu trữ (Storage) và mạng (Network) qua lệnh khởi tạo.

sudo incus admin init

Đây là “bài mẫu” mình hay dùng cho một server đơn lẻ:

  • Storage backend: Ưu tiên chọn zfs hoặc btrfs. Các định dạng này cho phép snapshot tức thì và tiết kiệm khoảng 20-30% dung lượng nhờ tính năng nén (compression). Nếu ổ cứng không còn phân vùng trống, hãy chọn dir để bắt đầu nhanh.
  • Network Bridge: Chọn yes để tạo bridge (mặc định là incusbr0). Container sẽ giao tiếp với nhau và ra internet qua NAT rất mượt mà.
  • IPv4/IPv6: Chọn auto để Incus tự cấp IP.
  • Server access: Nếu chỉ dùng trên chính máy đó thì chọn no cho an toàn.

Để tiện thao tác 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: Tạo và quản lý Instance đầu tiên

Incus hỗ trợ cả Container (nhẹ, dùng chung kernel) và Virtual Machine (cách ly hoàn toàn).

3.1 Khởi tạo một Container

Lệnh này sẽ tải image và chạy một container Ubuntu 22.04 với tên web-server:

incus launch images:ubuntu/22.04 web-server

3.2 Khởi tạo một Máy ảo (VM)

Nếu bạn cần chạy Docker bên trong hoặc cần một kernel riêng biệt, hãy dùng cờ --vm:

incus launch images:ubuntu/22.04 my-vm --vm

3.3 Các lệnh “bỏ túi” cho SysAdmin

  • Xem danh sách: incus list (thay thế cho lxc list cũ).
  • Vào Terminal của máy: incus exec web-server bash.
  • Xem tài nguyên thời gian thực: incus top.
  • Xóa nhanh: incus delete web-server --force.

Bước 4: Giám sát và Mở rộng

Khi chạy hàng chục container, bạn không thể ngồi đoán xem cái nào đang ngốn RAM. Lệnh incus top sẽ cho bạn cái nhìn tổng quan y hệt lệnh top trên Linux nhưng phân tách rõ ràng cho từng instance.

Nếu muốn theo dõi log hệ thống theo thời gian thực (ví dụ khi debug lỗi mạng), hãy dùng:

incus monitor

Một điểm mình cực thích là khả năng giới hạn tài nguyên cực nhanh. Ví dụ, bạn muốn giới hạn web-server chỉ được dùng tối đa 2GB RAM? Chỉ cần một dòng lệnh:

incus config set web-server limits.memory 2GB

Việc chuyển từ lxc sang incus có thể khiến bạn hơi ngượng tay trong vài ngày đầu. Tuy nhiên, sự ổn định và tính mở của nó hoàn toàn xứng đáng với công sức chuyển đổi. Với các bạn Junior, việc làm chủ Incus là nền tảng tốt để hiểu về cách Linux quản lý tài nguyên hệ thống, thay vì chỉ biết mỗi layer ứng dụng như Docker.

Share: