virsh
是 Libvirt 提供的命令行工具,用于管理虚拟机。它支持与 KVM/QEMU 等虚拟化技术一起使用,能够执行虚拟机的创建、启动、停止、快照、迁移等操作。以下是一些常用的 virsh
命令分类及其功能。
1. 虚拟机基本操作
命令 | 功能 |
---|
virsh list | 列出当前运行的虚拟机 |
virsh list --all | 列出所有虚拟机(包括未运行的虚拟机) |
virsh start <vm-name> | 启动指定的虚拟机 |
virsh shutdown <vm-name> | 关闭指定的虚拟机(优雅关机) |
virsh destroy <vm-name> | 强制关闭虚拟机(类似断电) |
virsh reboot <vm-name> | 重启虚拟机 |
virsh autostart <vm-name> | 设置虚拟机开机自启动 |
virsh autostart --disable <vm-name> | 取消虚拟机开机自启动 |
virsh suspend <vm-name> | 挂起(暂停)虚拟机 |
virsh resume <vm-name> | 恢复挂起的虚拟机 |
virsh undefine <vm-name> | 删除虚拟机配置文件(不删除磁盘文件) |
2. 虚拟机信息查询
命令 | 功能 |
---|
virsh dominfo <vm-name> | 查看虚拟机详细信息(CPU、内存等) |
virsh domstate <vm-name> | 查看虚拟机状态 |
virsh domuuid <vm-name> | 查看虚拟机的 UUID |
virsh domiflist <vm-name> | 查看虚拟机的网络接口信息 |
virsh domblklist <vm-name> | 查看虚拟机的磁盘设备信息 |
virsh cpu-stats <vm-name> | 查看虚拟机的 CPU 使用情况 |
virsh memtune <vm-name> | 查看虚拟机的内存资源限制 |
3. 虚拟机资源管理
命令 | 功能 |
---|
virsh attach-disk <vm-name> <source> <target> | 动态挂载磁盘到虚拟机 |
virsh detach-disk <vm-name> <target> | 动态卸载虚拟机磁盘 |
virsh attach-interface | 动态添加网络接口 |
virsh detach-interface | 动态移除网络接口 |
virsh setmem <vm-name> <size> | 动态调整虚拟机内存大小(前提支持热插拔) |
virsh setvcpus <vm-name> <num> | 动态调整虚拟机 CPU 数量 |
4. 网络管理
命令 | 功能 |
---|
virsh net-list | 列出所有网络 |
virsh net-start <network> | 启动网络 |
virsh net-destroy <network> | 停止网络 |
virsh net-autostart <network> | 设置网络开机自启动 |
virsh net-edit <network> | 编辑网络配置 |
virsh net-define <file.xml> | 定义新的网络 |
virsh net-undefine <network> | 删除网络(不可恢复) |
5. 存储池管理
命令 | 功能 |
---|
virsh pool-list | 列出所有存储池 |
virsh pool-start <pool-name> | 启动存储池 |
virsh pool-destroy <pool-name> | 停止存储池 |
virsh pool-define <file.xml> | 定义新的存储池 |
virsh pool-undefine <pool-name> | 删除存储池(不可恢复) |
virsh vol-list <pool-name> | 列出存储池中的所有卷 |
virsh vol-create <file.xml> | 在存储池中创建新卷 |
virsh vol-delete <vol-name> | 删除存储池中的指定卷 |
6. 快照管理
命令 | 功能 |
---|
virsh snapshot-list <vm-name> | 查看虚拟机的快照 |
virsh snapshot-create <vm-name> | 创建虚拟机快照 |
virsh snapshot-revert <vm-name> <snapshot-name> | 恢复到指定快照 |
virsh snapshot-delete <vm-name> <snapshot-name> | 删除指定快照 |
7. 虚拟机迁移
命令 | 功能 |
---|
virsh migrate <vm-name> <destination> | 将虚拟机迁移到指定的主机 |
virsh migrate --live <vm-name> <destination> | 在线迁移虚拟机(无中断) |
8. 虚拟机 XML 配置管理
命令 | 功能 |
---|
virsh edit <vm-name> | 编辑虚拟机的 XML 配置文件 |
virsh dumpxml <vm-name> | 导出虚拟机的 XML 配置文件 |
virsh define <file.xml> | 使用 XML 配置文件定义虚拟机 |
virsh dumpxml <vm-name> > <file.xml> | 保存虚拟机配置到 XML 文件 |
9. 其他常用命令
命令 | 功能 |
---|
virsh version | 查看 libvirt 和 virsh 的版本信息 |
virsh hostname | 查看主机名 |
virsh nodeinfo | 查看宿主机的硬件信息 |
virsh freecell | 查看宿主机的 CPU 和内存使用情况 |
示例:常见操作
启动虚拟机并查看状态:
virsh list --all # 列出所有虚拟机
virsh start my-vm # 启动虚拟机
virsh dominfo my-vm # 查看虚拟机信息
强制关闭虚拟机:
virsh destroy my-vm # 强制关闭虚拟机
导出虚拟机配置并重新定义:
virsh dumpxml my-vm > my-vm.xml # 导出虚拟机配置
virsh define my-vm.xml # 使用导出的配置重新定义虚拟机
动态挂载磁盘:
virsh attach-disk my-vm /path/to/disk vdb --persistent
virsh
是功能非常强大的虚拟机管理工具,熟悉其命令可以极大提高虚拟化环境的管理效率。如果需要高级功能(如热迁移、快照等),需要确保宿主机和虚拟机的配置支持相关功能。