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 和内存使用情况

示例:常见操作

  1. 启动虚拟机并查看状态:

    virsh list --all                      # 列出所有虚拟机
    virsh start my-vm                     # 启动虚拟机
    virsh dominfo my-vm                   # 查看虚拟机信息
  2. 强制关闭虚拟机:

    virsh destroy my-vm                   # 强制关闭虚拟机
  3. 导出虚拟机配置并重新定义:

    virsh dumpxml my-vm > my-vm.xml       # 导出虚拟机配置
    virsh define my-vm.xml                # 使用导出的配置重新定义虚拟机
  4. 动态挂载磁盘:

    virsh attach-disk my-vm /path/to/disk vdb --persistent

virsh 是功能非常强大的虚拟机管理工具,熟悉其命令可以极大提高虚拟化环境的管理效率。如果需要高级功能(如热迁移、快照等),需要确保宿主机和虚拟机的配置支持相关功能。

标签: KVM

添加新评论