KVM 常用命令大全
KVM 常用命令大全
2025-01-07 16:44
KVM 常用命令大全
查看虚拟机列表
在KVM环境下,可以使用 virsh 命令来管理虚拟机。以下命令会列出所有虚拟机的状态,包括正在运行和停止的虚拟机:
virsh list --all
1
启动虚拟机
要启动某个已经定义的虚拟机,可以使用以下命令:
virsh start <虚拟机名称>
1
如果需要指定虚拟机名为 ubuntu-vm 的虚拟机:
virsh start ubuntu-vm
1
关闭虚拟机
正常关闭虚拟机可以使用 shutdown 命令,这类似于在虚拟机内部运行关机命令:
virsh shutdown <虚拟机名称>
1
如果虚拟机无响应,可以使用强制关闭命令 destroy,这相当于直接切断电源:
virsh destroy <虚拟机名称>
1
暂停与恢复虚拟机
可以通过以下命令暂停运行中的虚拟机(将其放置在冻结状态):
virsh suspend <虚拟机名称>
1
要恢复暂停的虚拟机:
virsh resume <虚拟机名称>
1
删除虚拟机
删除虚拟机的定义文件,但保留磁盘文件:
virsh undefine <虚拟机名称>
1
如果要删除虚拟机的同时清理磁盘文件,可以手动删除虚拟机镜像文件:
rm -f /var/lib/libvirt/images/<虚拟机名称>.qcow2
1
克隆虚拟机
在KVM中,可以通过 virt-clone 来克隆已有的虚拟机:
virt-clone \
--original <原虚拟机名称> \
--name <新虚拟机名称> \
--file /var/lib/libvirt/images/<新虚拟机名称>.qcow2
1
2
3
4
例如,将名为 ubuntu-vm 的虚拟机克隆为 ubuntu-vm-clone:
virt-clone --original ubuntu-vm --name ubuntu-vm-clone --file /var/lib/libvirt/images/ubuntu-vm-clone.qcow2
1
虚拟机快照
快照功能可以用于保存虚拟机的当前状态,便于在需要时回滚:
创建快照:
virsh snapshot-create-as --domain <虚拟机名称> <快照名称> "快照描述"
1
查看虚拟机快照:
virsh snapshot-list <虚拟机名称>
1
恢复到指定快照:
virsh snapshot-revert --domain <虚拟机名称> <快照名称>
1
查看虚拟机状态与信息
查看某个虚拟机的详细信息(如内存、CPU等):
virsh dominfo <虚拟机名称>
1
查看虚拟机的资源使用情况:
virsh domstats <虚拟机名称>
1
连接虚拟机控制台
使用 virsh 连接到虚拟机的文本控制台,可以直接对虚拟机进行命令行操作:
virsh console <虚拟机名称>
1
*修改虚拟机配置
在KVM中,虚拟机的配置文件是以XML格式存储的。可以通过以下命令编辑某个虚拟机的配置文件:
virsh edit <虚拟机名称>
1
编辑时注意保持 XML 格式正确。
常见问题及解决方案
虚拟机无法启动
有时启动虚拟机会出现错误提示,例如:“虚拟化未启用”。这可能是由于硬件虚拟化未在主机的 BIOS 中启用。解决方法:
检查虚拟化是否启用:
egrep -c '(vmx|svm)' /proc/cpuinfo
1
返回值大于 0 表示支持虚拟化。
启用BIOS中的虚拟化支持:
重新启动主机,进入 BIOS,确保启用了 Intel VT-x 或 AMD-V。
虚拟机无法访问外部网络
默认情况下,KVM 使用 virbr0 虚拟网络桥接。若虚拟机无法访问外网,可能是网络桥接配置有误:
检查网络桥接是否启用:
virsh net-list --all
1
重启网络服务:
sudo systemctl restart libvirtd
sudo virsh net-start default
1
2
或者配置桥接网络,使用主机的物理网卡来为虚拟机提供网络连接:
virsh net-edit default
1
虚拟机性能较低
KVM 虚拟机性能较低可能与多个因素有关,如过度分配资源、磁盘IO瓶颈、虚拟化技术未开启等。以下是优化性能的一些建议:
分配适当的CPU和内存:
确保虚拟机分配的CPU核心和内存合理,避免资源竞争。
启用CPU穿透(CPU Passthrough):
允许虚拟机直接使用主机的CPU特性,提升性能:
virsh edit <虚拟机名称>
1
修改 <cpu mode='custom'> 为 <cpu mode='host-passthrough'>。
优化磁盘性能:
使用 virtio 驱动提高磁盘访问速度:
virsh edit <虚拟机名称>
1
在磁盘部分添加 driver type='qcow2' cache='none',提高磁盘I/O性能。
虚拟机无法挂载光驱或ISO文件
如果尝试挂载 ISO 文件失败,可以检查以下内容:
ISO路径是否正确:确保 ISO 文件路径无误并且主机具有读取权限。
虚拟机的 CDROM 配置:使用以下命令挂载 ISO 文件到虚拟机:
virsh attach-disk <虚拟机名称> /path/to/iso.iso hda --type cdrom
1
快照问题:虚拟机恢复后崩溃
当从快照恢复虚拟机时,可能会遇到虚拟机无法启动或崩溃的问题。原因可能是快照与当前虚拟机状态不一致。为避免这种情况,可以:
确保虚拟机在一致状态下创建快照:在虚拟机运行或暂停时创建快照。
更新快照后立即备份重要数据:快照恢复后,建议检查虚拟机状态,并在必要时创建新的快照。
总结
KVM 提供了强大的虚拟化功能,结合 virsh 等命令行工具,用户可以灵活高效地管理虚拟机。本文重点介绍了 KVM 常用命令及其使用示例,涵盖了虚拟机的创建、管理、快照等功能,同时针对常见问题提供了详细的解决方案。在实际操作中,合理使用这些命令和技巧,不仅可以提高工作效率,还能有效解决虚拟化环境中的常见问题。
————————————————