virsh 是一个用于管理虚拟机的命令行工具,它与 libvirt 服务配合使用,支持对虚拟机的创建、配置、启动、停止等操作。
1、列出虚拟机
列出正在运行的虚拟机:
bash
virsh list
列出所有虚拟机(包括未启动的):
bash
virsh list --all
2、启动和关闭虚拟机
启动虚拟机:
bash
virsh start <vm_name or id>
停止虚拟机(通过发送ACPI关机信号):
bash
virsh shutdown <vm_name or id>
强制关闭虚拟机(类似于拔掉电源):
bash
virsh destory <vm_name or id>
重启虚拟机
bash
virsh reboot <vm_name or id>
3、创建和删除虚拟机
创建虚拟机(从xml配置文件):
bash
virsh create <config_file.xml>
定义虚拟机(从xml配置文件,定义虚拟机但不启动):
bash
virsh define <config_file.xml>
删除虚拟机(仅删除虚拟机定义,不删除磁盘文件):
bash
virsh undefine <vm_name or id>
删除虚拟机及其磁盘文件:
bash
virsh undefine <vm_name or id> --remove-all-storage
4、修改虚拟机配置
编辑虚拟机配置(打开xml编译器):
bash
virsh edit <vm_name or id>
查看虚拟机xml配置
bash
virsh dumpxml <vm_name or id>
5、管理虚拟机快照
列出虚拟机的快照:
bash
virsh snapshot-list <vm_name or id>
创建虚拟机快照
bash
virsh snapshot-create-as <vm_name or id> <snapshot_name> --description "Snapshot description"
恢复虚拟机快照
bash
virsh snapshot-revert <vm_name or id> <snapshot_name>
删除虚拟机快照
bash
virsh snapshot-delete <vm_name or id> <snapshot_name>
6、虚拟机信息
查看虚拟机详细信息
bash
virsh dominfo <vm_name or id>
查看虚拟机的CPu使用情况
bash
virsh cpu-stats <vm_name or id>
7、网络和存储管理
列出虚拟网络
bash
virsh net-list --all
启动/停止虚拟网络
bash
virsh net-start <network_name>
virsh net-stop <network_name>
列出存储池
bash
virsh pool-list --all
启动/停止存储池
bash
virsh pool-start <pool_name>
virsh pool_stop <pool_name>
8、监控和调试
监控虚拟机的实时状态
bash
virsh list --state-running
查看虚拟机的详细日志(可能需要访问虚拟机的日志文件):
bash
virsh log <vm_name or id>