KVM 虚拟化(libvirt / virsh)常用命令清单
下面按生产运维常用频率,系统性整理 KVM 虚拟化(libvirt / virsh)常用命令清单。内容以 Linux 服务器环境(Ubuntu / CentOS / Rocky) 为基准,适合你这种长期做虚拟化与运维的场景。
一、基础环境与服务状态
1️⃣ 检查是否支持虚拟化
egrep -c '(vmx|svm)' /proc/cpuinfo
返回 ≥1 即支持 VT-x / AMD-V
lsmod | grep kvm
2️⃣ libvirt 服务管理
systemctl status libvirtd
systemctl start libvirtd
systemctl enable libvirtd
systemctl restart libvirtd
二、虚拟机(Domain)管理 —— 核心命令
1️⃣ 查看虚拟机列表
virsh list # 运行中的 VM
virsh list --all # 所有 VM
2️⃣ 启动 / 关闭 / 重启
virsh start vm1
virsh shutdown vm1 # 正常关机
virsh reboot vm1
virsh destroy vm1 # 强制断电(慎用)
3️⃣ 自动启动控制
virsh autostart vm1
virsh autostart --disable vm1
4️⃣ 删除虚拟机
virsh undefine vm1
⚠️ 仅删除定义,不删除磁盘
删除磁盘:
rm -f /var/lib/libvirt/images/vm1.qcow2
三、虚拟机配置与信息查看
1️⃣ 查看详细信息
virsh dominfo vm1
2️⃣ 查看 XML 配置(非常关键)
virsh dumpxml vm1
编辑配置:
virsh edit vm1
3️⃣ 查看 CPU / 内存
virsh vcpuinfo vm1
virsh vcpucount vm1
virsh dommemstat vm1
四、磁盘管理(生产常用)
1️⃣ 查看磁盘挂载
virsh domblklist vm1
2️⃣ 在线扩容磁盘(qcow2)
qemu-img resize vm1.qcow2 +50G
让 VM 识别:
virsh blockresize vm1 vda 100G
3️⃣ 创建磁盘
qemu-img create -f qcow2 vm2.qcow2 50G
查看磁盘信息:
qemu-img info vm1.qcow2
五、快照管理(qcow2)
1️⃣ 创建快照
virsh snapshot-create-as vm1 snap1 "before update"
2️⃣ 查看快照
virsh snapshot-list vm1
3️⃣ 回滚快照
virsh snapshot-revert vm1 snap1
4️⃣ 删除快照
virsh snapshot-delete vm1 snap1
六、网络管理(libvirt)
1️⃣ 查看网络
virsh net-list --all
2️⃣ 启动 / 停止网络
virsh net-start default
virsh net-autostart default
3️⃣ 查看网络配置
virsh net-dumpxml default
七、控制台与远程访问
1️⃣ 控制台登录
virsh console vm1
退出:
Ctrl + ]
2️⃣ VNC/SPICE 信息
virsh vncdisplay vm1
virsh domdisplay vm1
八、资源热调整(在线)
1️⃣ CPU 热调整
virsh setvcpus vm1 8 --live
2️⃣ 内存热调整
virsh setmem vm1 16G --live
永久生效:
virsh setmem vm1 16G --config
九、宿主机层面(排障必会)
1️⃣ 查看 qemu 进程
ps -ef | grep qemu
2️⃣ 查看 VM 日志
/var/log/libvirt/qemu/vm1.log
3️⃣ 查看宿主资源
virsh nodeinfo
free -h
lsblk
十、批量与自动化常用
1️⃣ 批量关机
for vm in $(virsh list --name); do
virsh shutdown $vm
done
2️⃣ 批量启动
virsh list --all | awk '/shut off/ {print $2}' | xargs -n1 virsh start
十一、virt-install(创建虚拟机)
virt-install \
--name vm1 \
--memory 8192 \
--vcpus 4 \
--disk path=/var/lib/libvirt/images/vm1.qcow2,size=50 \
--os-variant ubuntu20.04 \
--network bridge=br0 \
--graphics vnc \
--cdrom ubuntu-20.04.iso
十二、运维级建议(给你这种场景)
-
日常必会 10 个命令:
virsh list virsh start / shutdown / destroy virsh dumpxml / edit virsh domblklist qemu-img info / resize virsh snapshot-* virsh console -
生产建议:
-
统一使用 qcow2 + snapshot
-
VM XML 做版本备份
-
禁止直接 kill qemu
-
网络桥接优先 br0
-
如果你需要,我可以进一步给你:
-
KVM 运维速查表(Markdown / PDF)
-
Hyper-V vs KVM 运维命令对照表
-
高性能 KVM 调优清单(NUMA / hugepage / IO)
-
libvirt + Ansible 批量管理模板
你直接告诉我下一步想深入哪一块即可。
No Comments