qm 命令:管理PVE虚拟机
qm 命令:管理PVE虚拟机
一、命令简介
qm是Proxmox Virtual Environment (PVE)中用于管理虚拟机的命令行工具。它允许用户创建、启动、停止、删除虚拟机,以及管理虚拟机的配置和状态。
介绍 PVE
Proxmox Virtual Environment (PVE)是一个开源的虚拟化管理平台,专为企业和开发者设计。它结合了KVM (Kernel-based Virtual Machine)和LXC (Linux Containers)的强大功能,提供了一套完整的解决方案,用于创建和管理虚拟机和容器。是虚拟机管理的主流方案之一。
PVE为使用者提供简单易上手的web页面,以及灵活的命令行工具。本文仅关注命令行工具。
二、命令参数
qm [COMMAND] [OPTIONS] [VMID]
COMMAND
:你要执行的操作,比如
start
、
stop
、
create
等。OPTIONS
:与操作相关的选项,控制执行行为。VMID
:虚拟机的ID,用来标识具体的虚拟机。
常用的
qm
命令和参数
- 创建虚拟机(
create
):
qm create VMID --name NAME --memory MEMORY --net0 NETWORK --sata0 STORAGE
VMID
:虚拟机的ID。--name
:虚拟机名称。--memory
:分配的内存 (MB)。--net0
:网络接口配置(比如
virtio,bridge=vmbr0
)。--sata0
:存储设备配置 (例如
local-lvm:vm-VMID-disk-1
)。启动虚拟机(
start
):
qm start VMID
VMID
:要启动的虚拟机ID。停止虚拟机(
stop
):
qm stop VMID
VMID
:要停止的虚拟机ID。重启虚拟机(
reset
):
qm reset VMID
VMID
:要重启的虚拟机ID。删除虚拟机(
destroy
):
qm destroy VMID
VMID
:要删除的虚拟机ID。克隆虚拟机(
clone
):
qm clone VMID NEWID --name NEWNAME --full
VMID
:要克隆的虚拟机ID。NEWID
:新虚拟机的ID。--name
:新虚拟机的名称。--full
:指定是否进行完整克隆。查看虚拟机状态(
status
):
qm status VMID
VMID
:要查看状态的虚拟机ID。导出虚拟机配置(
config
):
qm config VMID
- VMID
:要导出的虚拟机ID。
三、命令示例
3.1 创建虚拟机
创建一个 虚拟机:
ID 为 111
名称为
ubuntu-vmCPU
2
核心内存
2
GB网络
net0
通过
vmbr0
桥接硬盘类型
scsihw
,使用驱动
virtio-scsi-pci
qm create 111 --name ubuntu-vm --cores 2 --memory 2048 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci
创建硬盘 scsi0,从存储池 mydata 划分空间,将系统镜像导入 scsi0
qm set 111 --scsi0 mydata:0,import-from=/mnt/pve/mydata/template/iso/jammy-server-cloudimg-amd64.img
设置硬盘容量 20G
qm resize 111 scsi0 20G
设置 boot 第一启动顺序为硬盘 scsi0
qm set 111 --boot order=scsi0
添加屏幕串行输出(便于从 PVE 终端进入虚拟机终端)
qm set 111 --serial0 socket --vga serial0
查看当前配置
qm config 111
3.2 配置虚拟机
3.2.1 硬件规格
要修改、配置虚拟机的硬件规格,可以使用
qm set
命令:
qm set <vmid> <options>
例如,重新分配内存的大小(只能增加)
qm resize 111 scsi0 22G
或者添加虚拟机新的硬盘:
qm set 111 --scsi1 mydata:10
3.2.2 系统初始化
想要修改虚拟机系统,比如用户名、密码,必须用到
qm set
- cloud-init
:
添加 cloud-init
qm set 111 --ide2 mydata:cloudinit
现在 qm set 可以初始化系统配置
设置主机名
qm set 111 --name ubuntu-vm
将PVE公钥添加到虚拟机
qm set 111 --sshkey ~/.ssh/id_rsa.pub
设置静态网络
qm set 111 --ipconfig0 ip=192.168.10.123/24,gw=192.168.10.1
设置动态ip(DHCP)
qm set 111 --ipconfig0 ip=dhcp
设置用户名、密码
qm set 111 --ciuser 用户名 --cipassword 密码
根据需求添加配置。设置网络时,动、静仅需二选一。动态网络请照抄,静态网络请修改ip地址为你的信息。
3.4 启动虚拟机
qm start <vmid>
例如,启动 VM ID 为 111 的虚拟机:
qm start 111
3.5 列出所有虚拟机
qm list
你可以看到刚才启动的虚拟机正在运行
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
100 ubuntu running 1024 32.00 1051
...
111 ubuntu-vm running 2048 22.00 2150640
3.6 从 PVE 终端进入虚拟机终端
qm terminal <vmid>
例如进入 VM ID 为 111 的虚拟机终端
qm terminal 111
使用这个命令就不需要从 PVE 的管理网页进入终端,这也是创建虚拟机时为什么添加
屏幕串行输出
。
退出虚拟机终端,只用快捷键:ctl +o
3.7 重启虚拟机
qm reboot <vmid>
例如,重启 VM ID 为 111 的虚拟机:
qm reboot 100
3.8 停止虚拟机
qm stop <vmid>
例如,停止 VM ID 为 111 的虚拟机:
qm stop 111
3.9 查看虚拟机配置信息
qm config <vmid>
例如,显示 VM ID 为 111 的虚拟机配置:
qm config 111
3.10 克隆虚拟机
qm clone <vmid> <newid> --name <name>
例如,将 VM ID 为 111 的虚拟机克隆为新的 VM ID 为 112 的虚拟机:
qm clone 111 112 --name newvm
3.11 迁移虚拟机
qm migrate <vmid> <target_node>
例如,将 VM ID 为 111 的虚拟机迁移到节点
pve2
:
qm migrate 111 pve2
3.12 备份虚拟机
vzdump <vmid> --storage <storage_id> --mode <mode>
例如,将 VM ID 为 111 的虚拟机备份到
local
存储中:
vzdump 111 --storage local --mode snapshot
3.13 恢复虚拟机
qmrestore <backup_file> <vmid>
例如,将备份文件恢复为 VM ID 为 111 的虚拟机:
qmrestore /var/lib/vz/dump/vzdump-qemu-100-2023_06_01-00_00_00.vma.lzo 111
备份位置根据不同的存储,有所不同。
3.14 删除虚拟机
qm destroy <vmid>
例如,删除 VM ID 为 111 的虚拟机:
qm destroy 111
通过这些命令,你可以高效地管理 PVE 环境中的虚拟机。更多详细信息,可以参考 Proxmox VE 的官方文档或使用
qm help
命令查看帮助。