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 Proxmox (VE) 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ẽ mang lại 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 trình 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 đăng trên blog này trình bày 10 lệnh dành riêng cho Proxmox hàng đầu kèm theo các ví dụ để quản trị hiệu quả.
1. qm
The qm command is one of the main Proxmox CLI commands, and qm is short for QEMU Manager. It is used to manage virtual machines (VMs) in a Proxmox virtual environment (Proxmox VE). Virtual machines on Proxmox are QEMU/KVM-based, and the qm command interacts with them. You can create, edit, configure, start, stop and migrate VMs with this command.
The general syntax of the command is:
qm [options] <command> [arguments]
List virtual machines
You can see the VM status and ID. You may need the ID to manage this VM in the Proxmox CLI.
qm list

Creating a new virtual machine
General syntax:
qm create <vmid> [options]
Example:
qm create 103 --name "DebianVM" --memory 2048 --net0 virtio,bridge=vmbr0 --sockets 1 --cores 2 --ostype l26
The following Proxmox CLI command creates a VM with ID 103 named “DebianVM” with 2GB RAM, 1 socket, 2 cores and a Virtio network interface bridged to vmbr0. The OS type is Linux (indicated by l26).
Attaching a disk to a VM
qm set 105 --scsi0 local-lvm:32G
Attaches a 32GB disk to the VM using the SCSI interface.
Attach a CD-ROM for OS installation
qm set 105 --ide2 local:iso/debian-10.7.0-amd64-netinst.iso,media=cdrom
This command attaches a Debian ISO to the VM’s IDE CD-ROM drive for installation of a guest operating system or other purposes.
Configuring the boot order
qm set 105 --boot order=ide2;scsi0
The command used in this example configures the VM to boot from the CD-ROM first (IDE2), then the disk (SCSI0).
Starting a virtual machine
Syntax:
qm start <vmid>
Example:
qm start 103
Starting the VM with ID 103
Stopping a VM
qm stop <vmid>
This command stops a running VM immediately. This way to stop a VM is the same as pulling the power plug on a physical machine.
qm stop 103
Stopping the VM with ID 103.
Shut down a VM in Proxmox CLI
qm shutdown <vmid>
This command shuts down a VM gracefully, allowing the guest OS to close files and terminate processes properly.
qm shutdown 101
Sending a shutdown signal to the VM with ID 101.

Migrating a VM to another node
qm migrate <vmid> <targetnode>
This command migrates a VM from its current node to another node within the same Proxmox cluster.
For example, to migrate a VM with the ID 103 to node2, we can use the command:
qm migrate 103 node2
Taking a snapshot of a VM
qm snapshot <vmid> <snapshotname>
The command creates a snapshot of the VM, capturing its current state, including the memory, disk and device status.
qm snapshot 103 "before_upgrade"
This command takes a snapshot of the VM with ID 103 and names it "before_upgrade". Using the command to take a snapshot is useful before performing risky operations, such as software upgrades.
Khôi phục trạng thái máy ảo từ bản chụp nhanh
qm rollback <vmid> <snapshotname>
Lệnh này sẽ khôi phục máy ảo về một bản chụp nhanh trước đó, đưa trạng thái của nó trở lại thời điểm bản 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 bản 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, có thể mở rộng hoặc thu nhỏ. Đả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 kích thước đĩ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ụ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ý 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 tường lửa mà không cần dừng và khởi động lại dịch vụ tường lửa.
pve-firewall reload
Chấp nhận lưu lượng SSH
Tạo quy tắc tường lửa chấp nhận 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 tập hợp địa chỉ IP.
Xóa quy tắc
Để xóa quy tắc, hãy sử dụng lệnh:
pve-firewall delete rule <rule-id>
Hiển thị nhật ký
Hiển thị nhật ký tường lửa, trong đó hiển thị lưu lượng truy cập và các kết quả khớp với quy tắc:
pve-firewall log
Kết quả hiển thị các mục nhật ký tường lửa mới 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, hãy sử dụng lệnh:
pve-firewall create rule -action drop -macro http
3. pvesm
Lệnh pvesm trong Proxmox CLI là tiện ích 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>
Trong đó <storage> là tên của nhóm lưu trữ (datastore) cần liệt kê.

Kiểm tra trạng thái của tất cả hoặc các 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ó đang hoạt động hay 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
Trong đó:
<type> là loại hệ thống lưu trữ nền tảng cần tạo (ví dụ: dir, lvm, nfs, zfs).
<storage-id> là tên duy nhất hoặc ID của nhóm lưu trữ.
--options định nghĩa các tùy chọn bổ sung cụ thể cho loại lưu trữ.
Ví dụ:
Tạo một bể 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 ISO:
pvesm create dir new-datastore1 --path /mnt/storage-name --content images,iso
Thêm một hệ thống lưu trữ hiện có vào Proxmox VE
Nguyên tắc của lệnh này tương tự như lệnh pvesm create , nhưng thay vì tạo hệ thống lưu trữ mới, hệ thống lưu trữ đã tồn tại sẽ được thêm vào cấu hình Proxmox để có thể sử dụng.
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 vớ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
Chỉnh sửa cấu hình của một nhóm lưu trữ hiện có
pvesm set <storage-id> --options
Ví dụ:
Chỉnh sửa nhóm local-storage01 để cho phép lưu trữ hình ảnh VM, tệp ISO và tệp sao lưu:
pvesm set local-storage01 --content images,iso,backup
Phân bổ một khối lượng mới trên một nhóm lưu trữ được chỉ định cho một VM hoặc container
pvesm alloc <storage-id> <vmid> <size>
Ví dụ:
Lệnh để phân bổ một khối lượ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. Việc này có thể được thực hiện thông qua 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, đồng thời cấu hình các quy tắc kiểm soát truy cập và quyền hạn. Điều này giúp xác định những ai có quyền truy cập và được phép thực hiện các thao tác trên các thành phần khác nhau của hạ tầng Proxmox. Quản trị viên có thể gán quyền truy cập vào các đối tượng như máy ảo, lưu trữ, nút cụm, 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>
Trong đó:
--password <password> là mật khẩu của người dùng mới.
--comment <comment> là bình luận 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 kèm theo mô tả và đặt 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 theo cùng logic 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ủ Proxmox.
Tạo nhóm
Để tạo nhóm mới trong Proxmox CLI, 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 một nhóm mới có tên support với mô tả "Support Team Group".
Xóa một nhóm
Tương tự như việc 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 các 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>
Trong đó:
<rolename> là tên của vai trò cần tạo.
--privs <privileges> là danh sách các quyền được phân tá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 một vai trò có tên vmmanager với quyền quản lý cài đặt nguồn điện của máy ảo và cấu hình ổ đĩa CD-ROM.
Chỉnh sửa vai trò hiện có
Quản trị viên có thể chỉnh sửa các vai trò và quyền hiện có bằng 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 .
Chỉnh sửa ACL
Quản trị viên Proxmox có thể chỉnh sửa Danh sách Kiểm soát Truy cập (ACL) bằng cách gán 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>
Trong đó:
<path> là đường dẫn đối tượng để thiết lập ACL (ví dụ: /vms/100 cho một máy ảo cụ thể hoặc / cho toàn bộ cụm).
--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 mà vai trò được gán cho.
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 máy ảo 104, cho phép người dùng (user4) quản lý máy ảo cụ thể đó theo các đặc quyền trong vai trò vmmanager . Lệnh aclremove được sử dụng để xóa ACL khỏi các đối tượng tương ứng.
Quản lý vùng xác thực
Một vùng xác thực xác định 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 vùng xác thực bằng lệnh realm trong Proxmox VE.
Cú pháp:
pveum realm <command> [options]
Trong đó các lệnh có thể là:
list để liệt kê tất cả các vùng có sẵn
add để thêm một vùng mới
modify để sửa đổi một vùng hiện có
remove để xóa một vùng hiện có
Ví dụ: để liệt kê tất cả các vùng xác thực được cấu hình trong Proxmox VE, hãy 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à xóa người dùng hiện có bằng lệnh user 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 bình luận
delete để xóa người dùng
Ví dụ: để liệt kê tất cả người dùng trên một máy chủ Proxmox, hãy sử dụng lệnh:
pveum user list
Để xem thêm các lệnh và tùy chọn có sẵn, hãy chạy lệnh pveum help trong Proxmox CLI.
5. pvesh
Bằng cách sử dụng lệnh pvesh , các quản trị viên 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 thao tác có thể thực hiện qua giao diện web Proxmox trực tiếp từ CLI Proxmox. Lệnh pvesh hoạt động như một vỏ lệnh (shell) cho API REST của Proxmox VE, cho phép bạn thực hiện các yêu cầu 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 thành phần khác của hạ tầng ảo Proxmox.
Cú pháp:
pvesh <command> [options]
Danh sách tài nguyên hoặ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 hoặc tài nguyên có sẵ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ữ.
Lấy thông tin
Lệnh get lấy thông tin từ một điểm cuối API cụ thể. Lệnh này được sử dụng để truy vấn chi tiết về một tài nguyên.
pvesh get /path
Trong đó path là đường dẫn API mà bạn muốn lấy thông tin.
Ví dụ: để lấy thông tin trạng thái cho nút pve-node1, chẳng hạn 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

Sửa đổi cấu hình
Lệnh set được sử dụng để sửa đổi hoặc cập nhật cấu hình của một tài nguyên. Điều này tương đương với việc thực hiện yêu cầu POST hoặc PUT trong API REST.
Cú pháp:
pvesh set /path --key value [--key value ...]
--key value là các cặp khóa-giá trị của các thiết lập 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 (VM) 100 trên nút pve-node1 thành new-vm-name.
Tạo tài nguyên
Lệnh create cho phép bạn tạo một tài nguyên mới, chẳng hạn như một máy ảo (VM) hoặc khối lưu trữ mới.
Cú pháp:
pvesh create /path --key value [--key value ...]
Ví dụ, bạn tạo một máy ảo (VM) mới với các thông 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 một máy ảo (VM) mới với ID 106 trên nút pve-node1, có tên new-vm-name, 2 GB RAM và 2 nhân CPU.
Khởi động máy ảo
Có một lệnh để khởi động máy ảo hoặc container với pvesh:
pvesh start /path
Ví dụ: để khởi động máy ảo với 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 stop, lệnh shutdown tắt máy ảo hoặc container một cách trơn tru:
pvesh shutdown /path
Ví dụ: để tắt máy ảo với ID 101 trên máy chủ Proxmox, có tên là pve-node1, hãy 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, di chuyển máy ảo trực tiếp, lưu trữ dùng chung, v.v.
Cú pháp:
pvecm <command> [options]
Để xem tất cả các lệnh pvecm được hỗ trợ, 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 để 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 của một 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 đó <nodename> là tên của nút mà bạn muốn chỉ định làm nút chủ.
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 để đạ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 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 cụm khác nhau 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 Tính sẵn sàng cao (HA) cho các máy ảo sau khi tạo cụm Proxmox. Tiện ích dòng lệnh này cho phép bạn định cấu hình Tính sẵn sàng cao cho các máy ảo quan trọng và thiết lập cách khởi động lại chúng trong cụm nếu nút mà chúng đang chạy gặp sự cố. Công cụ hamanager trong Proxmox CLI tương tác với Trình quản lý Tính sẵn sàng cao Proxmox.
Cú pháp:
ha-manager <command> [options]
Xem trạng thái
Để xem trạng thái hiện tại của các 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 máy ảo (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 (đang chạy, đã dừng), bao gồm trạng thái HA và trạng thái chuyển đổi dự phòng, cũng như nút mà chúng đang chạy trên.
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 đó:
<vmid> là ID của VM hoặc CT mà bạn muốn thêm vào HA.
--group <groupname> là nhóm HA mà tài nguyên sẽ được thêm vào (tùy chọn).
--max-restarts <n> là số lần khởi động lại tối đa nếu tài nguyên gặp sự cố.
--max-migrate-tries <n> là số lần di chuyển tối đa sang nút khác nếu tài nguyên không thể khởi động lại.
Ví dụ:
Thêm một máy ảo (VM) với ID 105 vào trình quản lý HA với tối đa 3 lần thử khởi động lại và 1 lần di chuyển trong trường hợp xảy ra lỗi:
ha-manager add 105 --max-restarts 3 --max-migrate-tries 1
Vô hiệu hóa trạng thái HA của một máy ảo (VM)
Sử dụng lệnh remove để vô hiệu hóa trạng thái khả dụng cao của một máy ảo và loại bỏ máy ảo khỏi trình quản lý HA.
ha-manager remove <vmid>
Ví dụ: để vô hiệu hóa trạng thái HA cho máy ảo với ID 105, hãy chạy lệnh:
ha-manager remove 105
Sau khi chạy lệnh, máy ảo sẽ không còn được quản lý như một tài nguyên có khả năng sẵn sàng cao.
Di chuyển VM
Bạn có thể di chuyển thủ công một VM có tính sẵn sàng cao sang một nút khác trong cụm bằng lệnh migrate :
ha-manager migrate <vmid> <targetnode>
Ví dụ: để di chuyển một VM có địa chỉ ID 106 sang nút có tên 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 bản sao lưu trong Proxmox VE bằng các công cụ gốc của Proxmox. Lệnh này hỗ trợ sao lưu VM và container. Bản sao lưu có thể được lưu ở định dạng .vma, .tgz or .lzo .
Cú pháp:
vzdump [options] <vmid> [<vmid2> ...]
Trong đó:
vmid là ID của máy ảo (VM) hoặc container mà bạn muốn sao lưu.
--mode <mode> xác định chế độ sao lưu. Có ba chế độ sao lưu được hỗ trợ:
snapshot– tạo bản sao lưu trực tiếp (live snapshot) của máy ảo Proxmox hoặc container. Chế độ này được sử dụng theo mặc định và cho phép bạn thực hiện sao lưu khi máy ảo (VM) hoặc container đang chạy. Chế độ tạm dừng (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 đảm bảo tính nhất quán của dữ liệu. Thời gian ngừng hoạt động 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 duy trì tính nhất quán của dữ liệu sao lưu nhưng yêu cầu thời gian ngừng hoạt động kéo 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 yêu cầu 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> xác định đích lưu trữ cho tệp sao lưu. Đây có thể là một thư mục cục bộ, một chia sẻ NFS hoặc một nhóm lưu trữ Proxmox.
--maxfiles <n> giới hạn số lượng tệp sao lưu cần giữ lại. Các bản sao lưu cũ sẽ bị xóa tự động khi đạt đến giới hạn.
--remove <mode> tự động xóa các tệp sao lưu theo chế độ đã chỉ định. Các chế độ bao gồm:
old– xóa các bản sao lưu cũ khi tạo bản sao lưu mới.fail– chỉ xóa các bản sao lưu bị lỗi.
Sao lưu nhiều máy ảo
Sao lưu các máy ảo với các tùy chọn IDs 101, 102, và 103 theo thứ tự:
vzdump 101 102 103
Lưu bản 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 bản sao lưu của
VM 101vào kho lưu trữ có tên local. Kho lưu trữ cục bộ có thể là một thư mục cục bộ trên máy chủ Proxmox hoặc một kho lưu trữ. - Sử dụng nén
gzip. Tạo bản sao lưu được mã hóa bằng néngzipcó thể mất nhiều thời gian hơn, nhưng bạn sẽ có được tệp sao lưu nhỏ hơn. - Chỉ giữ lại 3 bản sao lưu gần đây nhất, trong khi các bản cũ hơn sẽ bị xóa tự động.
Bỏ qua tệp nhật ký
vzdump 102 --exclude-path /var/log
Sao lưu máy ảo 102 nhưng loại trừ tệp /var/log directory, giúp giảm kích thước bản sao lưu bằng cách bỏ qua các tệp nhật ký.
Xóa các bản sao lưu cũ
vzdump 101 --storage nfs-backup --maxfiles 5 --remove old
Đây là bản sao lưu tự động kèm theo việc xóa các bản sao lưu cũ. Nó sao lưu máy ảo 101, lưu trữ bản sao lưu trong kho lưu trữ nfs-backup và chỉ giữ lại 5 bản sao lưu gần đây nhất, tự động xóa các bản sao lưu cũ hơn.
Sao lưu ở chế độ ảnh chụp nhanh
vzdump --all --mode snapshot --storage nfs-backup --bwlimit 20480 --remove old --maxfiles 7
Tạo bản sao lưu (chẳng hạn như sao lưu hàng đêm) cho tất cả các máy ảo và container bằng chế độ sao lưu ảnh chụp nhanh. Các bản sao lưu được lưu vào một thư mục chia sẻ NFS có tên là nfs-backup. Băng thông được giới hạn ở 20480 Kbytes mỗi giây (20 MBps) để ngăn chặn 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 sẽ bị xóa tự động.
9. qmrestore
Lệnh qmrestore được sử dụng để khôi phục máy ảo từ các bản sao lưu được tạo bằng lệnh vzdump trong môi trường ảo Proxmox. Các lệnh vzdump và qmrestore là các công cụ gốc của Proxmox dành cho sao lưu và khôi phục máy ảo. Bản sao lưu có thể được khôi phục vào một máy ảo mới hoặc hiện có.
Cú pháp:
qmrestore [options] <backupfile> <vmid>
Trong đó:
<backupfile> là đường dẫn đến tệp sao lưu mà bạn muốn khôi phục. Tệp này thường được tạo bởi lệnh và được lưu trữ trong một thư mục hoặc trên thiết bị lưu trữ mạng.vzdump
<vmid> là ID của máy ảo mà bạn muốn khôi phục. Nếu ID máy ảo đã tồn tại, máy ảo hiện có sẽ bị ghi đè trừ khi sử dụng các tùy chọn cụ thể để ngăn chặn điều này.
Tùy chọn lệnh: `
--force ` được sử dụng để ghi đè lên một VM hiện có có cùng ID, và không có câu hỏi xác nhận. Bạn có thể sử dụng tùy chọn này để khôi phục một VM khi không quan tâm đến việc mất trạng thái hiện tại của máy ảo có cùng ID. `
--unique ` được sử dụng để tạo một ID VM mới và duy nhất cho VM được khôi phục. Hãy cân nhắc sử dụng tùy chọn này để khôi phục bản sao lưu bằng cách tạo một máy ảo mới mà không ghi đè lên bất kỳ máy ảo hiện có nào.
--storage <storage> chỉ định vị trí lưu trữ đích cho các hình ảnh đĩa ảo của máy ảo được khôi phục. Nếu tùy chọn này không được chỉ định, máy ảo sẽ được khôi phục về vị trí lưu trữ ban đầu hoặc vị trí lưu trữ mặc định.
--pool <pool> cho phép bạn gán máy ảo được khôi phục vào một nhóm tài nguyên cụ thể trong môi trường ảo Proxmox. Nhóm tài nguyên được sử dụng để nhóm các máy ảo nhằm quản lý dễ dàng hơn.
--hostname <name> đặt tên máy chủ (hostname) cho máy ảo đã khôi phục. Tùy chọn này hữu ích nếu bạn muốn đặt tên máy chủ khác cho máy ảo đã khôi phục so với tên máy chủ gốc.
--name <name> đặt tên tùy chỉnh cho máy ảo đã khôi phục (tên hiển thị trong giao diện người dùng Proxmox), khác với tên máy ảo gốc đã được sao lưu.
Khôi phục máy ảo về ID gốc
Khôi phục máy ảo về ID gốc: 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 vào máy ảo có địa chỉ ID 101. Nếu đã tồn tại một máy ảo có địa chỉ ID 101 , máy ảo đó sẽ bị ghi đè.
Khôi phục sao lưu vào máy ảo mới
Khôi phục sao lưu vào một máy ảo 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 sao lưu vào một máy ảo mới có địa chỉ ID 102, lưu trữ các hình ảnh đĩa của nó trên kho lưu trữ local-lvm .
Khôi phục và thay đổi tên máy chủ và tên máy ảo
Khôi phục bản sao lưu và thay đổi tên máy chủ và tên máy ảo:
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 vào một máy ảo mới với ID 103, đổi tên máy ảo thành MyRestoredVM và đặt tên máy chủ của nó thành restored-vm.
10. proxmox-backup-client
Lệnh proxmox-backup-client là một tiện ích dòng lệnh được sử dụng cùng với Proxmox Backup Server, một giải pháp sao lưu gốc của Proxmox, dùng cho các thao tác 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ý các 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 kho lưu trữ sao lưu.
<path> xác định đường dẫn đến thư mục hoặc tệp bạn muốn sao lưu.
--repository <repository> là kho lưu trữ đích trên máy chủ sao lưu Proxmox, thường có 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 vào thư mục datastore1 trên máy chủ sao lưu Proxmox tại địa chỉ 10.10.10.101. Bản sao lưu được lưu trữ dưới dạng tệp lưu trữ có tên etc.pxar.
Cú pháp cơ bản của lệnh khôi phục
Lệnh khôi phục cho các công cụ dòng lệnh proxmox-backup-client được sử dụng để khôi phục dữ liệu từ máy chủ sao lưu Proxmox về hệ thống cục bộ.
proxmox-backup-client restore <archive-name> <path> --repository <repository> [options]
Trong đó:
<archive-name> là tên của tệp lưu trữ mà bạn muốn khôi phục.
<path> là đường dẫn nơi dữ liệu sẽ được khôi phục.
--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 lưu trữ etc.pxar từ datastore1 trên máy chủ sao lưu Proxmox tại 10.10.10.101 vào thư mục cục bộ /restore/etc.
Kết luận
Các lệnh CLI của Proxmox là một bộ 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 máy chủ, sao lưu máy ảo, v.v. Nếu bạn muốn triển khai một chiến lược sao lưu máy ảo toàn diện, hãy cài đặt NAKIVO Backup & Replication và sử dụng tính năng sao lưu không cần cài đặt phần mềm cho các máy ảo Proxmox VE.