Cài đặt và sử dụng LXD trên Rocky/AlmaLinux 8|9
LXD là một trình quản lý container hệ thống thế hệ mới được xây dựng xung quanh REST rất mạnh mẽ và cung cấp trải nghiệm người dùng tương tự như các máy ảo nhưng sử dụng container Linux thay thế. LXD sử dụng các hình ảnh Linux đã được tạo sẵn, có sẵn cho nhiều bản phân phối Linux khác nhau.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn các bước đơn giản để cài đặt và sử dụng LXD trên máy chủ/máy tính để bàn Rocky/AlmaLinux. Việc cài đặt sẽ sử dụng Snap, đã được đề cập trong hướng dẫn Cài đặt Snapd và các ứng dụng Snap trên Rocky/AlmaLinux.
Các tính năng của LXD
Trên trang web chính thức của LXD, các tính năng lớn nhất của LXD được đề cập là:
- Bảo mật theo thiết kế (container không đặc quyền, hạn chế tài nguyên và nhiều hơn thế nữa)
- Có khả năng mở rộng (từ các container trên hàng nghìn nút tính toán của bạn)
- Trực quan (API đơn giản, rõ ràng và trải nghiệm dòng lệnh mượt mà)
- Dựa trên hình ảnh (với nhiều bản phân phối Linux đa dạng được phát hành hàng ngày)
- Hỗ trợ chuyển container và hình ảnh giữa các máy chủ (bao gồm di chuyển trực tiếp với CRIU)
- Kiểm soát tài nguyên nâng cao (CPU, bộ nhớ, I/O mạng, I/O khối, sử dụng đĩa và tài nguyên kernel)
- Chuyển tiếp thiết bị (USB, GPU, thiết bị ký tự và khối của Unix, NIC, ổ đĩa và đường dẫn)
- Quản lý mạng (tạo và cấu hình cầu nối, đường hầm chéo giữa các máy chủ, …)
- Quản lý lưu trữ (hỗ trợ nhiều hệ thống lưu trữ, nhóm lưu trữ và các ổ lưu trữ)
Chạy các Container LXD trên Rocky/AlmaLinux
Bây giờ hãy bắt đầu cài đặt LXD trên Rocky/AlmaLinux bằng cách làm theo các bước dưới đây
Bước 1: Cài đặt snapd
Bạn cần cài đặt snapd, đây sẽ cung cấp công cụ dòng lệnh snap được sử dụng để cài đặt gói LXD. Hãy cài đặt snapd theo hướng dẫn sau:
- Cài đặt Snapd và các ứng dụng Snap trên Rocky/AlmaLinux
Sau khi bạn đã cài snapd, hãy chuyển sang bước 2
Bước 2: Cấu hình các tham số Kernel
Một số tùy chọn Kernel cần được LXD yêu cầu kích hoạt trên hệ thống. Cấu hình chúng bằng cách chạy các lệnh sau trên terminal của bạn. Chạy các lệnh này với quyền người dùng root.
grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
grubby --args="namespace.unpriv_enable=1" --update-kernel="$(grubby --default-kernel)"
echo "user.max_user_namespaces=3883" > /etc/sysctl.d/99-userns.confBạn sẽ cần khởi động lại hệ thống sau khi thực hiện các thay đổi.
sudo rebootBước 3: Cài đặt lxd snap trên Rocky/AlmaLinux
Cuối cùng, cài đặt LXD snap từ cửa hàng snap
$ sudo snap install lxd
lxd (5.21/stable) 5.21.1-d46c406 from Canonical✓ installedQuá trình cài đặt sẽ mất ít thời gian nếu bạn có kết nối internet tốt. Bạn có thể xác nhận việc cài đặt gói bằng cách sử dụng:
$ sudo snap list
Name Version Rev Tracking Publisher Notes
core20 20240416 2318 latest/stable canonical✓ base
core22 20240408 1380 latest/stable canonical✓ base
lxd 5.21.1-d46c406 28460 5.21/stable canonical✓ -
powershell 7.4.3 269 latest/stable microsoft-powershell✓ classic
snapd 2.63 21759 latest/stable canonical✓ snapd
$ sudo snap services
Service Startup Current Notes
lxd.activate enabled inactive -
lxd.daemon enabled inactive socket-activated
lxd.user-daemon enabled inactive socket-activatedBước 4: Khởi chạy container LXD thử nghiệm
Đảm bảo
echo 'export PATH="$PATH:/snap/bin/"'|tee -a ~/.bashrc
source ~/.bashrcHãy thêm tài khoản người dùng của chúng ta vào nhóm lxd để quản lý các container LXD mà không gặp lỗi quyền.
sudo usermod -aG lxd $USER
newgrp lxdTải các mô-đun nhân.
sudo modprobe overlay
sudo modprobe br_netfilterĐảm bảo các mô-đun được cấu hình để tải khi khởi động:
echo -e "noverlay\nbr_netfilter" | sudo tee /etc/modules-load.d/lxd.confKhởi động lại dịch vụ LXD.
sudo systemctl restart snap.lxd.daemon
Cấu hình môi trường LXD bằng cách sử dụng
$ lxd init
Would you like to use LXD clustering? (yes/no) [default=no]: no
Do you want to configure a new storage pool? (yes/no) [default=yes]: no
Name of the new storage pool [default=default]:
Name of the storage backend to use (btrfs, ceph, dir, lvm) [default=btrfs]: dir
Would you like to connect to a MAAS server? (yes/no) [default=no]:
Would you like to create a new local network bridge? (yes/no) [default=yes]:
What should the new bridge be called? [default=lxdbr0]:
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
Would you like LXD to be available over the network? (yes/no) [default=no]:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:Danh sách các container nên trả về danh sách rỗng
$ lxc list
+------+-------+------+------+------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+-------+------+------+------+-----------+Để liệt kê các hình ảnh VM có sẵn, chạy:
lxc image list images:Ví dụ về các tên hình ảnh có sẵn:
- fedora/40
- kali
- rockylinux/9
- rockylinux/8
- oracle/9
- almalinux/8
- almalinux/9
# Rocky linux 8|9
lxc image list images:centos/9-Stream
debian/12Tạo một container Rocky Linux 8 để thử nghiệm bằng cách chạy:
# lxc launch images:rockylinux/8 rocky-8-container
Creating rocky-8-container
Starting rocky-8-containerKhởi chạy container Ubuntu bằng cách chạy:
# lxc launch images:ubuntu/22.04 ubuntu-container
Creating ubuntu-container
Starting ubuntu-containerLiệt kê các thùng của bạn:
# lxc list
+-------------------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+-------------------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
| rocky-8-container | RUNNING | 10.249.233.129 (eth0) | fd42:380b:91a6:efc0:216:3eff:fece:1ee3 (eth0) | CONTAINER | 0 |
+-------------------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
| ubuntu22 | RUNNING | 10.249.233.40 (eth0) | fd42:380b:91a6:efc0:216:3eff:feb1:7d6f (eth0) | CONTAINER | 0 |
+-------------------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
| ubuntu-container | RUNNING | 10.249.233.189 (eth0) | fd42:380b:91a6:efc0:216:3eff:fe6f:7d3e (eth0) | CONTAINER | 0 |
+-------------------+---------+-----------------------+-----------------------------------------------+-----------+-----------+Dừng, bắt đầu, khởi động lại, xóa, kiểm tra thông tin một container
lxc start container
lxc stop container
lxc restart containerLấy thông tin về một container bằng tùy chọn lệnh info
lxc info containerVí dụ kết quả:
Để biết thêm các tùy chọn dòng lệnh, hãy chạy
lxc --help
lxc command --help e.g lxc start --helpSách Linux được khuyến nghị nên đọc:
- Những cuốn sách Linux hay nhất cho người mới bắt đầu và chuyên gia
- Những cuốn sách lập trình Kernel Linux hay nhất
- Những cuốn sách hay nhất về lập trình Bash trên Linux
Bạn đã cài đặt thành công LXD trên Rock/AlmaLinux từ snap và đã tạo một container lxc. Cảm ơn bạn đã sử dụng hướng dẫn của chúng tôi. Nếu gặp bất kỳ vấn đề nào, đừng ngần ngại để lại bình luận.
