10 lệnh CLI Proxmox hàng đầu mà mọi quản trị viên nên biết
Môi trường ảo (VE) của Proxmox có thể được quản lý thông qua giao diện đồ họa thân thiện với người dùng trong trình duyệt web. Tuy nhiên, trong một số trường hợp cụ thể, việc sử dụng giao diện dòng lệnh (CLI) sẽ hiệu quả hơn. CLI mang lại những lợi ích như cấu hình chi tiết hơn, xử lý hàng loạt, lập kịch bản và tự động hóa.
Có các lệnh Linux tiêu chuẩn và các lệnh dành riêng cho Proxmox để quản lý môi trường ảo Proxmox. Bài viết trên blog này giới thiệu 10 lệnh dành riêng cho Proxmox hàng đầu kèm theo ví dụ để quản trị hiệu quả.
1. qm
Lệnh qm là một trong những lệnh chính của giao diện dòng lệnh Proxmox, và qm là viết tắt của QEMU Manager. Nó được sử dụng để quản lý MáY ảo (VM) trong môi trường ảo Proxmox (Proxmox VE). Các máy ảo trên Proxmox dựa trên QEMU/KVM, và lệnh qm tương tác với chúng. Bạn có thể tạo, chỉnh sửa, cấu hình, khởi động, tắt và di chuyển các VM bằng lệnh này.
Cú pháp chung của lệnh là:
qm [options] <command> [arguments]
Liệt kê máy ảo
Bạn có thể xem trạng thái và ID của VM. Bạn có thể cần ID để quản lý VM này trong giao diện dòng lệnh Proxmox.
qm list

Tạo một máy ảo mới
Cú pháp chung:
qm create <vmid> [options]
Ví dụ:
qm create 103 --name "DebianVM" --memory 2048 --net0 virtio,bridge=vmbr0 --sockets 1 --cores 2 --ostype l26
Lệnh giao diện dòng lệnh Proxmox sau đây tạo một VM với ID 103 tên “DebianVM” với 2GB RAM, 1 ổ cắm, 2 lõi và giao diện mạng Virtio được cầu nối với vmbr0. Loại hệ điều hành là Linux (được biểu thị bằng l26).
Gắn một đĩa vào VM
qm set 105 --scsi0 local-lvm:32G
Gắn một đĩa 32GB vào VM bằng giao diện SCSI.
Gắn CD-ROM để cài đặt hệ điều hành
qm set 105 --ide2 local:iso/debian-10.7.0-amd64-netinst.iso,media=cdrom
Lệnh này gắn một Debian ISO vào ổ đĩa CD-ROM IDE của VM để cài đặt hệ điều hành khách hoặc các mục đích khác.
Cấu hình thứ tự khởi động
qm set 105 --boot order=ide2;scsi0
Lệnh được sử dụng trong ví dụ này cấu hình VM để khởi động từ CD-ROM trước (IDE2), sau đó là đĩa (SCSI0).
Khởi động một máy ảo
Cú pháp:
qm start <vmid>
Ví dụ:
qm start 103
Khởi động VM với ID 103
Dừng một VM
qm stop <vmid>
Lệnh này ngừng một VM đang chạy ngay lập tức. Cách dừng một VM như thế này cũng giống như rút phích cắm điện của một máy vật lý.
qm stop 103
Dừng VM với ID 103.
Tắt một VM trong giao diện dòng lệnh Proxmox
qm shutdown <vmid>
Lệnh này tắt một VM mượt mà, cho phép hệ điều hành khách đóng các tập tin và chấm dứt quy trình đúng cách.
qm shutdown 101
Gửi tín hiệu để tắt máy cho VM với ID 101.

Di chuyển một VM đến một nút khác
qm migrate <vmid>
<targetnode>
Lệnh này di chuyển một VM từ nút hiện tại đến một nút khác trong cùng một cluster Proxmox.
Ví dụ, để di chuyển một VM với ID 103 đến node2, chúng ta có thể sử dụng lệnh:
qm migrate 103 node2
Tạo snapshot của một VM
qm snapshot <vmid>
<snapshotname>
Lệnh tạo một snapshot của VM, ghi lại trạng thái hiện tại của nó, bao gồm bộ nhớ, đĩa và trạng thái thiết bị.
qm snapshot 103 "before_upgrade"
Lệnh này tạo một snapshot của VM với ID 103 và đặt tên "before_upgrade". Sử dụng lệnh để tạo snapshot hữu ích trước khi thực hiện các thao tác nguy hiểm, như nâng cấp phần mềm.
Khôi phục trạng thái máy ảo từ ảnh chụp nhanh
qm rollback <vmid>
<snapshotname>
Lệnh này sẽ đưa máy ảo trở về trạng thái của một ảnh chụp nhanh trước đó, khôi phục trạng thái của nó về thời điểm ảnh chụp nhanh được tạo.
Ví dụ: nếu quá trình nâng cấp phần mềm bên trong máy ảo không thành công và bị lỗi, chúng ta có thể khôi phục trạng thái máy ảo bằng lệnh:
qm rollback 103 "before_upgrade"
Mọi thay đổi được thực hiện kể từ khi ảnh chụp nhanh được tạo sẽ bị loại bỏ (bị hủy bỏ).
Sao chép máy ảo
qm clone <vmid>
<newid> [--name <newname>] [--full]
Lệnh qm clone sẽ sao chép một máy ảo hiện có để tạo ra một máy ảo mới với ID khác. Bạn có thể chọn sao chép toàn bộ đĩa (sao chép đầy đủ) hoặc chỉ bộ nhớ liên kết.
qm clone 103 104 --name "DebianClone" --full
Lệnh này sao chép máy ảo có địa chỉ ID 103 thành một máy ảo mới có địa chỉ ID 104, đặt tên là "DebianClone". Tùy chọn --full tạo bản sao chép đầy đủ, sao chép toàn bộ dữ liệu.
Thay đổi kích thước đĩa của máy ảo
qm resize <vmid>
<disk>
<size>
Lệnh qm resize được sử dụng để thay đổi kích thước đĩa ảo được gắn vào máy ảo, bao gồm cả việc mở rộng hoặc thu nhỏ. Hãy đảm bảo hệ điều hành khách có thể xử lý thay đổi này.
qm resize 103 scsi0 +10G
Lệnh CLI Proxmox này tăng dung lượng của đĩa scsi0 trên máy ảo có địa chỉ ID 103 thêm 10GB.
2. pve-firewall
Lệnh pve-firewall được sử dụng để quản lý cài đặt tường lửa trong môi trường ảo Proxmox, bao gồm cả các cụm Proxmox. Lệnh CLI Proxmox này cung cấp các tùy chọn thân thiện để cấu hình quy tắc tường lửa và cho phép quản trị viên kiểm soát lưu lượng mạng đến và đi từ các nút Proxmox, máy ảo và container. Tường lửa Proxmox tích hợp chặt chẽ với giao diện quản lý Proxmox và giúp việc quản lý tường lửa trên toàn bộ môi trường Proxmox trở nên thuận tiện hơn. Công cụ pve-firewall được phát triển đặc biệt cho Proxmox VE và sử dụng mức trừu tượng cao để quản lý các quy tắc tường lửa so với phương pháp chi tiết và thủ công hơn được sử dụng trong iptables.
Cú pháp:
pve-firewall <command> [options]
Chạy lệnh pve-firewall để xem cách sử dụng lệnh chính.

Kiểm tra trạng thái
Kiểm tra trạng thái dịch vụ tường lửa Proxmox VE:
pve-firewall status
Kết quả hiển thị liệu tường lửa có đang chạy trên nút hiện tại hay không.
Khởi động tường lửa
Khởi động dịch vụ tường lửa trên nút Proxmox hiện tại:
pve-firewall start
Tải lại tường lửa
Tải lại dịch vụ tường lửa và áp dụng các thay đổi cấu hình mà không cần dừng và khởi động lại dịch vụ tường lửa.
pve-firewall reload
Cho phép lưu lượng SSH
Tạo quy tắc tường lửa cho phép lưu lượng SSH:
pve-firewall create rule -action accept -macro ssh
Lệnh này tạo quy tắc cho phép truy cập SSH vào môi trường Proxmox.
Trong đó: create <object> tạo một đối tượng tường lửa mới, chẳng hạn như quy tắc, nhóm bảo mật hoặc bộ IP.
Xóa quy tắc
Để xoá quy tắc, sử dụng câu lệnh:
pve-firewall delete rule <rule-id>
Hiển thị nhật ký
Hiển thị nhật ký tường lửa, nhật ký này hiển thị lưu lượng truy cập và các quy tắc khớp:
pve-firewall log
Kết quả hiển thị các mục nhật ký tường lửa gần nhất.
Từ chối lưu lượng HTTP
Để tạo quy tắc tường lửa từ chối mọi lưu lượng HTTP, sử dụng câu lệnh:
pve-firewall create rule -action drop -macro http
3. pvesm
Lệnh pvesm trong Proxmox CLI là công cụ dòng lệnh được sử dụng để quản lý cấu hình lưu trữ trong Proxmox VE. Với công cụ dòng lệnh này, bạn có thể tạo, xóa, sửa đổi và quản lý các nhóm lưu trữ. Ngoài ra, bạn có thể thực hiện các tác vụ liên quan đến lưu trữ khác nhau, chẳng hạn như tạo thư mục, thêm thiết bị lưu trữ, và quản lý các loại nội dung.
Cú pháp:
pvesm <command> [options]
Liệt kê lưu trữ
pvesm list <storage>
Ở đây là tên của nhóm lưu trữ (kho dữ liệu) cần liệt kê.
<storage>

Kiểm tra trạng thái của tất cả hoặc một số nhóm lưu trữ cụ thể
pvesm status
Kết quả hiển thị trạng thái của nhóm lưu trữ, bao gồm thông tin về việc nó có đang hoạt động hoặc không hoạt động, loại lưu trữ và mức sử dụng hiện tại.

Tạo một nhóm lưu trữ mới
pvesm create <type> <storage-id> --options
Ở đây:
là kiểu nền tảng lưu trữ cần tạo (ví dụ: dir, lvm, nfs, zfs).
<type>
<storage-id> là tên hoặc ID duy nhất cho nhóm lưu trữ.
--options xác định các tuỳ chọn bổ sung cụ thể cho loại lưu trữ.
Ví dụ:
Tạo một nhóm lưu trữ dựa trên thư mục mới có tên new-datastore1 nằm tại /mnt/storage-name, có thể lưu trữ hình ảnh VM và tập tin ISO:
pvesm create dir new-datastore1 --path /mnt/storage-name --content images,iso
Thêm một nền tảng lưu trữ hiện có vào Proxmox VE
Nguyên tắc của lệnh này giống với lệnh pvesm create, nhưng thay vì tạo lưu trữ mới, lưu trữ hiện có được thêm vào cấu hình Proxmox để làm nó có sẵn.
Ví dụ:
Thêm một chia sẻ NFS hiện có nằm trên 192.168.101.100 tại /export/data vào Proxmox VE dưới tên test-nfs-storage:
pvesm add nfs test-nfs-storage --server 192.168.101.100 --export /export/data --path /mnt/pve/test-nfs-storage --content images,iso
Sửa đổi cấu hình của một nhóm lưu trữ hiện có
pvesm set <storage-id> --options
Ví dụ:
Sửa đổi nhóm local-storage01 để cho phép lưu trữ hình ảnh VM, tập tin ISO, và tập tin sao lưu:
pvesm set local-storage01 --content images,iso,backup
Phân bổ một vùng mới trên một nhóm lưu trữ chỉ định cho một VM hoặc Container
pvesm alloc <storage-id>
<vmid>
<size>
Ví dụ:
Câu lệnh để phân bổ một vùng 10 GB trên nhóm “local-storage-name” cho VM 100:
pvesm alloc local-storage-name 100 10G
4. pveum
Môi trường ảo Proxmox cho phép bạn tạo nhiều người dùng để quản lý Proxmox VE. Điều này có thể thực hiện được bằng các lệnh CLI của Proxmox bằng cách sử dụng lệnh pveum (quản lý người dùng). Các quản trị viên Proxmox có thể quản lý người dùng và nhóm và cấu hình quyền truy cập và quyền. Điều này, đến lượt nó, xác định ai có thể truy cập và được phép thực hiện hành động trên các phần khác nhau của hạ tầng Proxmox. Các quản trị viên có thể gán quyền để truy cập các đối tượng, chẳng hạn như máy ảo, lưu trữ, nút cluster, v.v.
Cú pháp:
pveum <command> [options]
Thêm người dùng mới vào Proxmox VE
pveum useradd <userid> --password <password> --comment <comment> --groups <group>
Ở đâu:
--password <password> là mật khẩu cho người dùng mới.
--comment <comment> là nhận xét hoặc mô tả tùy chọn cho người dùng.
--groups <group> là nhóm (hoặc các nhóm) mà người dùng nên thuộc về.
Ví dụ:
pveum useradd user2@pve --password UserSecretPassword111 --comment "user2 – admin group" --groups admin
Lệnh này được sử dụng để thêm người dùng có tên là user2 vào nhóm admin với mô tả và thiết lập mật khẩu cho người dùng này.
Xóa người dùng
Để xóa người dùng, sử dụng lệnh pveum với logic tương tự như khi thêm người dùng, ví dụ:
pveum userdel user3@pve
Lệnh này được sử dụng để xóa user3 trên máy chủ vật lý Proxmox.
Tạo nhóm
Để tạo một nhóm mới trong CLI Proxmox, hãy sử dụng lệnh groupadd.
Cú pháp:
pveum groupadd <groupname> --comment <comment>
Ví dụ:
pveum groupadd support --comment "Support Team Group"
Lệnh này tạo ra một nhóm mới có tên support với mô tả "Support Team Group".
Xóa nhóm
Tương tự như xóa người dùng, bạn có thể xóa một nhóm. Ví dụ, để xóa nhóm guests, bạn có thể sử dụng lệnh:
pveum groupdel guests
Thêm vai trò
Vai trò được sử dụng để định nghĩa một tập hợp quyền cho người dùng và nhóm được gán vai trò này.
Cú pháp:
pveum roleadd <rolename> --privs <privileges>
Ở đâu:
là tên của vai trò cần tạo.
<rolename>
--privs <privileges> là danh sách các quyền được phân cách bằng dấu phẩy để gán cho vai trò (ví dụ, VM.PowerMgmt,VM.Config.Disk).
Ví dụ:
pveum roleadd vmmanager --privs VM.PowerMgmt,VM.Config.CDROM
Lệnh này tạo ra một vai trò có tên vmmanager với quyền quản lý cài đặt nguồn điện VM và cấu hình CD-ROM.
Sửa đổi vai trò hiện có
Các quản trị viên có thể sửa đổi các vai trò và quyền hiện có với lệnh rolemod (thêm hoặc xóa quyền).
Cú pháp:
pveum rolemod <rolename> --privs <privileges>
Ví dụ:
pveum rolemod vmmanager --privs +VM.Config.Network
Lệnh này thêm quyền VM.Config.Network vào vai trò vmmanager.
Sửa đổi ACL
Các quản trị viên Proxmox có thể sửa đổi Danh sách Kiểm soát Truy cập (ACL) bằng cách gán các vai trò cho người dùng hoặc nhóm trên các đối tượng Proxmox cụ thể.
Cú pháp:
pveum aclmod <path> --roles <rolename> --users <userid> --groups <groupname>
Ở đâu:
là đường dẫn đối tượng mà ACL cần được thiết lập (ví dụ: /vms/100 cho một máy ảo cụ thể hoặc / cho toàn bộ cụm).
<path>
--roles <rolename> là vai trò cần gán.
--users <userid> là người dùng được gán vai trò. --groups <groupname> là nhóm được gán vai trò.
Ví dụ:
pveum aclmod /vms/104 --roles vmmanager --users user4@pve
Lệnh này gán vai trò vmmanager cho user4@pve trên VM 104, cho phép người dùng (user4) quản lý VM cụ thể đó theo quyền trong vai trò vmmanager. Lệnh aclremove được sử dụng để xoá ACL từ các đối tượng tương ứng.
Quản lý miền xác thực
Miền xác thực định nghĩa cách người dùng xác thực với hệ thống (ví dụ, sử dụng PAM, LDAP, hoặc Active Directory). Bạn có thể quản lý các miền xác thực với lệnh realm trong Proxmox VE.
Cú pháp:
pveum realm <command> [options]
Nơi lệnh có thể là:
list để liệt kê tất cả các miền có sẵn
add để thêm một miền mới
modify để sửa đổi một miền hiện có
remove để xoá một miền hiện có
Ví dụ, để liệt kê tất cả các miền xác thực được cấu hình trong Proxmox VE, sử dụng lệnh:
pveum realm list

Quản lý người dùng hiện có
Bạn có thể liệt kê, chỉnh sửa, và xoá người dùng hiện có với lệnh người dùng này.
Cú pháp:
pveum user <command>
<userid> [options]
Các lệnh có thể là:
list để liệt kê tất cả người dùng
modify để sửa đổi thông tin người dùng, chẳng hạn như thay đổi mật khẩu hoặc cập nhật nhận xét
delete để xoá người dùng
Ví dụ, để liệt kê tất cả người dùng trên một máy chủ Proxmox, sử dụng lệnh:
pveum user list
Để xem thêm các lệnh và tuỳ chọn có sẵn, chạy lệnh pveum help trong Proxmox CLI.
5. pvesh
Sử dụng lệnh pvesh, người quản trị có thể tương tác với API REST của Proxmox. Công cụ dòng lệnh này cho phép bạn thực hiện hầu hết mọi hành động có thể được thực hiện thông qua giao diện web Proxmox trực tiếp từ CLI Proxmox. Lệnh pvesh hoạt động như một shell cho API REST của Proxmox VE, cho phép bạn thực hiện các cuộc gọi API bằng các lệnh trực tiếp từ dòng lệnh. Với lệnh này, bạn có thể quản lý Máy ảo, lưu trữ, mạng và các phần tử khác của hạ tầng ảo Proxmox.
Cú pháp:
pvesh <command> [options]
Liệt kê tài nguyên hoặc các điểm cuối API
Lệnh này tương tự như lệnh ls trong Linux, nhưng nó liệt kê các đường dẫn API có sẵn hoặc tài nguyên trong môi trường Proxmox VE.
pvesh ls /path
Ví dụ:
pvesh ls /cluster/resources
Lệnh này liệt kê tất cả tài nguyên trong cụm Proxmox, bao gồm Máy ảo, Container và lưu trữ.
Truy xuất thông tin
Lệnh get truy xuất thông tin từ một điểm cuối API cụ thể. Lệnh này được sử dụng để truy vấn một tài nguyên để biết chi tiết.
pvesh get /path
Nơi mà path là đường dẫn API mà từ đó bạn muốn truy xuất thông tin.
Ví dụ, để lấy thông tin trạng thái cho nút pve-node1, như tải CPU, sử dụng bộ nhớ và thời gian hoạt động, bạn có thể sử dụng lệnh:
pvesh get /nodes/pve-node1/status

Thay đổi cấu hình
Lệnh set được sử dụng để thay đổi hoặc cập nhật cấu hình của một tài nguyên. Đây tương đương với việc thực hiện yêu cầu POST hoặc PUT trong REST API.
Cú pháp:
pvesh set /path --key value [--key value ...]
--key giá trị là các cặp khóa-giá trị của cài đặt mà bạn muốn thay đổi.
Ví dụ:
pvesh set /nodes/pve-node1/qemu/100/config --name new-vm-name
Lệnh này thay đổi tên của Máy ảo 100 trên nút pve-node1 thành new-vm-name.
Tạo tài nguyên
Lệnh tạo cho phép bạn tạo tài nguyên mới, như Máy ảo mới hoặc khối lưu trữ.
Cú pháp:
pvesh create /path --key value [--key value ...]
Ví dụ, bạn tạo Máy ảo mới với các tham số cụ thể bằng lệnh:
pvesh create /nodes/pve-node1/qemu --vmid 106 --name new-vm-name --memory 2048 --cores 2
Lệnh này tạo ra một Máy ảo mới với ID 106 trên nút pve-node1, với tên new-vm-name, 2 GB RAM và 2 lõi CPU.n
Khởi động Máy ảo
Có một lệnh để khởi động một Máy ảo hoặc Container với pvesh:
pvesh start /path
Ví dụ, để khởi động Máy ảo có ID 101 trên nút pve-node1, bạn có thể chạy lệnh:
pvesh start /nodes/pve-node1/qemu/101
Tắt Máy ảo
Không giống như lệnh dừng, lệnh tắt Máy ảo hoặc Container một cách nhẹ nhàng:
pvesh shutdown /path
Ví dụ, để tắt một Máy ảo với ID 101 trên máy chủ Proxmox, có tên là pve-node1, sử dụng lệnh: pvesh shutdown /nodes/pve-node1/qemu/101
Khởi động tất cả các máy ảo (VM)
Để khởi động hoặc tắt tất cả các máy ảo (VM) trên một nút hoặc trong toàn bộ cụm, bạn có thể sử dụng lệnh tương ứng:
pvesh startall /nodes/<nodename>
pvesh stopall /nodes/<nodename>
6. pvecm
Lệnh pvecm là một công cụ quản lý cụm Proxmox được sử dụng để quản lý và cấu hình cụm Proxmox. Bạn có thể sử dụng công cụ này để tạo cụm cũng như tham gia và quản lý các nút trong cụm Proxmox. Một cụm được quản lý như một thực thể duy nhất với các tính năng cấu hình, chẳng hạn như Tính sẵn sàng cao (High Availability), di chuyển máy ảo trực tiếp (live VM migration), lưu trữ chia sẻ, v.v.
Cú pháp:
pvecm <command> [options]
Để xem tất cả các lệnh được hỗ trợ pvecm , hãy chạy lệnh này:
man pvecm
Tạo cụm
Để tạo một cụm Proxmox VE mới, bạn có thể sử dụng lệnh create. Bạn nên chạy lệnh này trên nút đầu tiên (nút chủ) sẽ hình thành cụm.
pvecm create <clustername>
Ví dụ:
Lệnh dưới đây tạo một cụm có tên cluster01. Nút này (nơi chúng ta chạy lệnh) sẽ trở thành nút chủ của cụm.
pvecm create cluster01
Thêm nút vào cụm
Sử dụng lệnh addnode để thêm các nút mới vào cụm Proxmox hiện có. Chạy lệnh này trên nút mà bạn muốn thêm vào cụm.
pvecm add <master-node-ip>
Ví dụ:
Thêm máy chủ Proxmox hiện tại vào cụm được điều khiển bởi nút chính có địa chỉ IP 192.168.101.121 :
pvecm add 192.168.101.121
Xóa một nút khỏi cụm
Lệnh delnode được sử dụng trong giao diện dòng lệnh Proxmox (CLI) để xóa một nút khỏi cụm.
Cú pháp:
pvecm delnode <nodename>
Ví dụ:
Lệnh để loại bỏ nút có tên pve-node2 khỏi cụm là:
pvecm delnode pve-node2
Liệt kê tất cả các nút trong cụm
Lệnh để liệt kê tất cả các nút trong cụm và hiển thị trạng thái của chúng, bao gồm tên nút và địa chỉ IP, là:
pvecm nodes
Đặt nút chủ mới
Bạn có thể đặt một nút khác trong cụm Proxmox làm nút chủ:
pvecm setmaster <nodename>
Trong đó là tên của nút mà bạn muốn chỉ định làm nút chủ.
<nodename>
Hiển thị trạng thái cụm
Bạn có thể hiển thị trạng thái của cụm Proxmox, bao gồm thông tin về quorum, số lượng nút và vai trò của chúng.
pvecm status
Đặt số lượng nút dự kiến
Bạn có thể kiểm tra số lượng nút dự kiến cần thiết để đạt được quorum trong cụm bằng lệnh expected. Bạn có thể cần sử dụng lệnh này khi một số nút trong cụm tạm thời ngoại tuyến để tránh gián đoạn. Quorum được sử dụng để tránh các tình huống “split-brain” khi các nút khác nhau trong cụm có thông tin mâu thuẫn về trạng thái của cụm. pvecm expected <number>
7. hamanager
Lệnh hamanager được sử dụng để quản lý tính năng Chuyển đổi Dự phòng (HA) cho các máy ảo sau khi tạo cụm Proxmox. Đây là công cụ dòng lệnh giúp bạn cấu hình Chuyển đổi Dự phòng cho các VM quan trọng và đặt cách khởi động lại chúng trong một cụm nếu nút mà chúng đang chạy bị lỗi. Công cụ hamanager trong CLI của Proxmox tương tác với Quản lý Chuyển đổi Dự phòng Proxmox.
Cú pháp:
ha-manager <command> [options]
Xem trạng thái
Để xem trạng thái hiện tại của tài nguyên HA, bạn có thể sử dụng lệnh:
ha-manager status
Kết quả hiển thị thông tin về các VM hoặc CT nào được cấu hình cho HA, trạng thái hiện tại của chúng (đã bắt đầu, đã dừng), bao gồm trạng thái HA và trạng thái Chuyển đổi Dự phòng, và các nút mà chúng đang chạy.
Kích hoạt HA cho một VM
Cú pháp:
ha-manager add <vmid> --group <groupname> --max-restarts <n> --max-migrate-tries <n>
Trong đó:
là ID của VM hoặc CT bạn muốn thêm vào HA.
<vmid>
--group <groupname> là nhóm HA mà tài nguyên cần được thêm vào (tuỳ chọn).
--max-restarts <n> là số lần khởi động lại tối đa nếu tài nguyên bị lỗi.
--max-migrate-tries <n> là số lần di chuyển tối đa đến một nút khác nếu tài nguyên không thể khởi động lại.
Ví dụ:
Thêm một VM với ID 105 vào người quản lý HA với tối đa 3 lần khởi động lại và 1 lần di chuyển trong trường hợp thất bại:
ha-manager add 105 --max-restarts 3 --max-migrate-tries 1
Vô hiệu hoá trạng thái HA của một VM
Sử dụng lệnh remove để vô hiệu hoá trạng thái chuyển đổi dự phòng của một máy ảo và loại bỏ VM khỏi người quản lý HA.
ha-manager remove <vmid>
Ví dụ, để vô hiệu hoá trạng thái HA cho VM với ID 105, chạy lệnh:
ha-manager remove 105
Sau khi chạy lệnh, VM sẽ không còn được quản lý như một tài nguyên chuyển đổi dự phòng.
Di chuyển VM
Bạn có thể di chuyển thủ công một VM chuyển đổi dự phòng đến một nút khác trong cụm với lệnh migrate:
ha-manager migrate <vmid>
<targetnode>
Ví dụ, để di chuyển một VM với ID 106 đến một nút tên là pve-node2, hãy chạy lệnh:
ha-manager migrate 106 pve-node2
8. vzdump
Lệnh vzdump được sử dụng để tạo các bản sao lưu trong Proxmox VE với các công cụ bản địa của Proxmox. Lệnh này hỗ trợ sao lưu của các VM và Container. Các bản sao lưu có thể được lưu dưới định dạng .vma, .tgz or .lzo.
Cú pháp:
vzdump [options] <vmid> [<vmid2> ...]
Trong đó:
vmid là ID của một VM hoặc Container bạn muốn sao lưu.
--mode <mode> định nghĩa chế độ sao lưu. Có ba chế độ sao lưu được hỗ trợ:
snapshot– thực hiện một bản Snapshot trực tiếp của một máy ảo hoặc Container của Proxmox. Chế độ này được sử dụng mặc định và cho phép bạn thực hiện sao lưu khi một Máy ảo hoặc Container đang chạy.suspend– chế độ này được sử dụng để tạm dừng Máy ảo hoặc Container trước khi sao lưu, giúp bạn đảm bảo dữ liệu là nhất quán. Thời gian ngắt ngắn do chế độ này gây ra là một nhược điểm.stop– dừng Máy ảo hoặc Container trước khi thực hiện sao lưu. Cách tiếp cận này cho phép bạn giữ sao lưu dữ liệu nhất quán nhưng yêu cầu thời gian ngắt dài hơn.
--compress <type> được sử dụng để chỉ định phương pháp nén. Có ba tùy chọn nén được hỗ trợ:
lzo– nén nhẹ và nhanh cho sao lưu Proxmox (được sử dụng mặc định).gzip– đây là phương pháp nén hiệu quả hơn nhưng cần nhiều thời gian hơn để nén dữ liệu (nén chậm hơn).zstd– Loại nén này sử dụng thuật toán nén hiện đại cung cấp tỷ lệ nén cao với hiệu suất tối ưu.
--storage <storage> chỉ định mục tiêu lưu trữ cho tập tin sao lưu. Đây có thể là thư mục cục bộ, chia sẻ NFS hoặc bể lưu trữ Proxmox.
--maxfiles <n> giới hạn số lượng tập tin sao lưu để giữ lại. Các sao lưu cũ sẽ tự động bị xóa nếu đạt đến giới hạn.
--remove <mode> tự động xóa tập tin sao lưu theo chế độ được chỉ định. Các chế độ bao gồm:
old– xóa các sao lưu cũ khi tạo mới.fail– chỉ xóa các sao lưu thất bại.
Sao lưu nhiều Máy ảo
Sao lưu Máy ảo bằng cách sử dụng IDs 101, 102, và 103 theo thứ tự:
vzdump 101 102 103
Lưu sao lưu với nén
vzdump 101 --storage local --compress gzip --maxfiles 3
Lệnh vzdump với các tùy chọn này thực hiện các hành động sau:
- Lưu sao lưu của
VM 101vào lưu trữ có tên local. Lưu trữ cục bộ có thể là thư mục cục bộ trên máy chủ Proxmox hoặc bể lưu trữ. - Nén
gzipđược sử dụng. Việc tạo một sao lưu được mã hóa bằng néngzipcó thể mất nhiều thời gian hơn, nhưng cuối cùng bạn sẽ có tập tin lưu trữ nhỏ hơn. - Chỉ giữ lại 3 sao lưu gần đây nhất, trong khi những sao lưu cũ hơn sẽ bị xóa tự động.
Bỏ qua tập tin nhật ký
vzdump 102 --exclude-path /var/log
Sao lưu Máy ảo 102 nhưng loại trừ /var/log directory, giảm kích thước sao lưu bằng cách bỏ qua tập tin nhật ký.
Xóa sao lưu cũ
vzdump 101 --storage nfs-backup --maxfiles 5 --remove old
Đây là một sao lưu tự động với việc xóa bỏ các sao lưu cũ. Nó sao lưu VM 101, lưu trữ bản sao lưu trong lưu trữ nfs-backup, và chỉ giữ lại 5 bản sao lưu gần đây nhất, tự động xoá các bản sao lưu cũ hơn.
Sao lưu ở chế độ ảnh chụp
vzdump --all --mode snapshot --storage nfs-backup --bwlimit 20480 --remove old --maxfiles 7
Tạo các bản sao lưu (như hàng đêm) của tất cả VM và containers bằng chế độ sao lưu ảnh chụp. Các bản sao lưu được lưu vào chia sẻ NFS được gọi là nfs-backup. Băng thông bị giới hạn ở 20480 Kbytes mỗi giây (20 MBps) để tránh quá tải mạng. Chỉ giữ lại 7 bản sao lưu gần nhất, và các bản sao lưu cũ hơn tự động bị loại bỏ.
9. qmrestore
Lệnh qmrestore được sử dụng để khôi phục các máy ảo từ bản sao lưu tạo bởi lệnh vzdump trong môi trường ảo Proxmox. Các lệnh vzdump và qmrestore là các công cụ Proxmox gốc cho sao lưu và phục hồi VM. Bản sao lưu có thể được khôi phục vào VM mới hoặc sẵn có.
Cú pháp:
qmrestore [options] <backupfile>
<vmid>
Trong đó:
là đường dẫn đến tệp sao lưu bạn muốn khôi phục. Tệp này thường được tạo bởi lệnh
<backupfile>
vzdump và lưu trữ trên một thư mục hoặc thiết bị lưu trữ mạng.
là ID của VM bạn muốn khôi phục. Nếu ID VM đã tồn tại, VM hiện có sẽ bị ghi đè trừ khi sử dụng các tuỳ chọn cụ thể để tránh.
<vmid>
Tuỳ chọn lệnh:
--force dùng để ghi đè lên một VM có cùng ID hiện có, và không có câu hỏi xác nhận. Bạn có thể sử dụng tuỳ chọn này để khôi phục VM khi không ngại mất trạng thái hiện tại của VM có cùng ID.
--unique dùng để tạo một ID VM mới độc lập cho VM khôi phục. Xem xét sử dụng tuỳ chọn này để khôi phục sao lưu bằng cách tạo VM mới mà không ghi đè lên bất kỳ VM nào hiện có.
--storage <storage> quy định vị trí lưu trữ mục tiêu cho các đĩa ảo của VM khôi phục. Nếu tuỳ chọn này không được quy định, VM sẽ được khôi phục về lưu trữ gốc hoặc lưu trữ mặc định.
--pool <pool> cho phép bạn gán VM khôi phục vào một tài nguyên pool cụ thể trong môi trường ảo Proxmox. Các nhóm tài nguyên được sử dụng để nhóm các VM để quản lý dễ dàng.
--hostname <name> đặt tên máy chủ (hostname) của VM khôi phục. Tuỳ chọn này hữu ích nếu bạn muốn đặt tên máy chủ khác cho VM khôi phục so với tên máy chủ gốc.
--name <name> đặt tên tùy chỉnh cho VM khôi phục (tên này sẽ hiển thị trong giao diện Proxmox UI), khác với tên VM gốc đã sao lưu.
Khôi phục VM về ID ban đầu
Khôi phục VM về ID ban đầu:
qmrestore /var/lib/vz/dump/vzdump-qemu-101-2023_08_27-00_00_00.vma 101
Lệnh này khôi phục tệp sao lưu vzdump-qemu-101-2023_08_27-00_00_00.vma tới VM có ID 101. Nếu một VM với ID 101 đã tồn tại, nó sẽ bị ghi đè.
Khôi phục sao lưu đến VM mới
Khôi phục bản sao lưu đến một VM mới:
qmrestore /mnt/pve/nfs-backup/dump/vzdump-qemu-101-2023_08_27-00_00_00.vma 102 --storage local-lvm
Lệnh này khôi phục bản sao lưu đến một VM mới với ID 102, lưu các Đĩa ảo của nó trên lưu trữ local-lvm.
Khôi phục và thay đổi tên máy chủ và tên VM
Khôi phục bản sao lưu và thay đổi tên máy chủ và tên:
qmrestore /mnt/pve/nfs-backup/dump/vzdump-qemu-101-2023_08_27-00_00_00.vma 103 --hostname restored-vm --name "MyRestoredVM"
Khôi phục bản sao lưu đến một VM mới với ID 103, đổi tên VM thành MyRestoredVM và đặt tên máy chủ thành restored-vm.
10. proxmox-backup-client
Lệnh proxmox-backup-client là một tiện ích dòng lệnh sử dụng với Proxmox Backup Server, một giải pháp sao lưu gốc Proxmox, để thực hiện các hoạt động sao lưu và khôi phục. Công cụ này cho phép quản trị viên bảo vệ Máy ảo, Container và các loại dữ liệu khác. Công cụ proxmox-backup-client tương tác với Proxmox Backup Server (PBS) để quản lý bản sao lưu
Cú pháp:
proxmox-backup-client <command> [options]
Cú pháp cơ bản của lệnh sao lưu
proxmox-backup-client backup <archive-name>
<path> --repository <repository> [options]
Trong đó:
<archive-name> là tên bạn muốn đặt cho tệp lưu trữ sao lưu.
xác định đường dẫn đến thư mục hoặc tập tin bạn muốn sao lưu.
<path>
--repository <repository> là kho lưu trữ đích trên Proxmox Backup Server, thường ở dạng user@pbs:datastore
Ví dụ:
proxmox-backup-client backup etc.pxar /etc --repository root@pbs@10.10.10.101:datastore1
Lệnh này sao lưu thư mục /etc đến datastore1 trên Proxmox Backup Server tại địa chỉ 10.10.10.101. Bản sao lưu được lưu trữ dưới dạng tập tin lưu trữ có tên là etc.pxar.
Cú pháp cơ bản của lệnh khôi phục
Lệnh khôi phục cho công cụ dòng lệnh proxmox-backup-client được sử dụng để khôi phục dữ liệu từ Proxmox Backup Server về hệ thống địa phương.
proxmox-backup-client restore <archive-name>
<path> --repository <repository> [options]
Trong đó:
<archive-name> là tên của tập tin lưu trữ muốn khôi phục.
là đường dẫn nơi dữ liệu nên được khôi phục.
<path>
--repository <repository> là kho lưu trữ nơi bản sao lưu được lưu trữ.
Ví dụ:
proxmox-backup-client restore etc.pxar /restore/etc --repository root@pbs@10.10.10.101:datastore1
Lệnh này khôi phục tập tin lưu trữ etc.pxar từ datastore1 trên Proxmox Backup Server tại địa chỉ 10.10.10.101 về thư mục địa phương /restore/etc.
Kết luận
Lệnh CLI Proxmox là một tập hợp công cụ mạnh mẽ để quản lý môi trường ảo Proxmox, bao gồm lưu trữ, Máy ảo, cụm, sao lưu VM, v.v. Nếu bạn muốn triển khai một chiến lược sao lưu VM toàn diện, hãy cài đặt NAKIVO Backup & Replication và sử dụng chức năng sao lưu không có nhân viên cho Máy ảo Proxmox VE.