KVM 虚拟机 virsh 管理常用命令
目录
虚拟机基本操作
列出虚拟机
virsh list --all # 列出所有虚拟机
virsh dominfo kvm-1 # 显示虚拟机信息
virt-top # 显示虚拟机内存和 CPU 使用情况(需先 yum install virt-top)
virt-df kvm-1 # 显示虚拟机分区信息
虚拟机状态管理
virsh shutdown kvm-1 # 关闭虚拟机(ACPI 关机)
virsh start kvm-1 # 启动虚拟机
virsh autostart kvm-1 # 设置虚拟机跟随系统自启
virsh autostart --disable kvm-1 # 关闭虚拟机自启
virsh undefine kvm-1 # 删除虚拟机
virsh console kvm-1 # 通过控制窗口登录虚拟机
虚拟机存储管理
添加物理磁盘或 LVM 卷
# 添加物理磁盘或 USB
virsh attach-disk kvm-1 /dev/sdb vbd --driver qemu --mode shareable
# 卸载磁盘
virsh detach-disk kvm vdb
添加 LVM 卷并挂载
# 在宿主机创建 LVM 卷
lvcreate -n kvm-1-data -L 50G vg_shkvm1
# 添加到虚拟机
virsh attach-disk kvm-1 /dev/vg_shkvm1/kvm-1-data vdb --driver qemu --mode shareable
# 在虚拟机内查看
virsh console kvm-1
fdisk -l # 查看硬盘挂载情况
新磁盘格式化和 LVM 扩展
# 对新磁盘分区
fdisk /dev/vdb
# 创建物理卷
pvcreate /dev/vdb1
# 扩展逻辑卷组
vgextend VolGroup /dev/vdb1
# 查看逻辑卷组信息
vgs # 显示 VG 容量和可用空间
虚拟机参数调整
修改内存
# 查看当前内存
virsh dominfo kvm-1 | grep memory
# 动态设置内存为 512MB(单位必须是 KB)
virsh setmem kvm-1 524288
# 增加内存需要停止虚拟机
virsh shutdown kvm-1
virsh edit kvm-1 # 修改 <memory> 标签
virsh create /etc/libvirt/qemu/kvm-1/kvm-1.xml # 启动虚拟机
修改 CPU
修改 CPU 数需要停止虚拟机:
virsh shutdown kvm-1
virsh edit kvm-1 # 修改 <vcpu> 标签(如改成 4)
virsh create /etc/libvirt/qemu/kvm-1/kvm-1.xml
硬盘扩容
# 创建 10GB 新文件
dd if=/dev/zero of=/vm-images/vm1-add.img bs=1M count=10240
# 停止虚拟机
virsh shutdown vm1
# 编辑虚拟机配置,添加新硬盘(复制粘贴现有硬盘配置,修改 target 和 source)
virsh edit vm1
建议:使用 virsh attach-disk 命令动态添加硬盘更简便。
虚拟机删除
# 第一步:停掉虚拟机
virsh shutdown kvm-1
# 第二步:强制关闭(如果 shutdown 失败)
virsh destroy kvm-1
# 第三步:删除虚拟机配置
virsh undefine kvm-1
# 第四步:删除磁盘(可选,不建议自动删除以防数据丢失)
rm /dev/vg_shkvm1/kvm-1
常用命令速查
virsh list --all # 列出所有虚拟机
virsh dominfo <vm> # 显示虚拟机信息
virsh dumpxml <vm> # 导出虚拟机配置
virsh start <vm> # 启动虚拟机
virsh shutdown <vm> # 关闭虚拟机
virsh destroy <vm> # 强制关闭
virsh undefine <vm> # 删除虚拟机
virsh edit <vm> # 编辑虚拟机配置
virsh domstate <vm> # 显示虚拟机状态
virsh suspend <vm> # 暂停虚拟机
virsh resume <vm> # 恢复虚拟机
virsh console <vm> # 进入虚拟机控制台
virsh vncdisplay <vm> # 查看 VNC 端口
virsh snapshot-create-as --domain <vm> --name <name> # 创建快照