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 常用命令及其使用示例,涵盖了虚拟机的创建、管理、快照等功能,同时针对常见问题提供了详细的解决方案。在实际操作中,合理使用这些命令和技巧,不仅可以提高工作效率,还能有效解决虚拟化环境中的常见问题。

————————————————