virsh 是用于管理基于 KVM hypervisor 的虚拟机的接口或者命令。
在 virsh 接口上,虚拟机由它们的域名标识,因此 virsh 通常用于列出当前域,创建、暂停和关闭域。
Virsh 采用 GNU 宽松通用公共许可证,支持 Xen、QEmu、KVM、LXC、OpenVZ、VirtualBox 和 VMware ESX。
在本教程中,我们将讨论 virsh 命令的实际示例:
示例 1:获取安装在主机上的 KVM 版本。
# virsh version Compiled against library: libvir 0.9.4 Using library: libvir 0.9.4 Using API: QEMU 0.9.4 Running hypervisor: QEMU 0.12.1
示例 2:获取 KVM 管理程序(主机)内存信息。
# virsh nodememstats total : 65979984 kB free : 44783040 kB buffers: 604388 kB cached : 16473328 kB
示例 3:获取 KVM 管理程序 CPU 信息。
# virsh nodecpustats user: 122779270000000 system: 1304262720000000 idle: 470011564690000000 iowait: 110371800000000
示例 4:获取一些访客虚拟机,而不考虑运行、保存、关闭等状态。
# virsh list --all Id Name State --------------------------------- 3 test running
示例 5:获取可用于 KVM 管理程序的所有网络。
# virsh net-list Name State Autostart ---------------------------------------- default active yes
示例 6:获取 KVM 客户机的硬件信息。
语法:
# virsh dominfo BaseMachine
例子:
# virsh dominfo test Id: 3 Name: test UUID: 9ae96029-6c3d-8bd1-6e19-926183f89074 OS Type: hvm State: running CPU(s): 4 CPU time: 26862.0s Max memory: 4194304 kB Used memory: 4194304 kB Persistent: yes Autostart: disable Managed save: no
示例 7:关闭虚拟机。
# virsh shutdown machine_name
示例 8:重新启动虚拟机。
# virsh reboot machine_name
示例 9:强制关闭或者销毁机器。
# virsh destroy machine_name
示例 10:启动虚拟机。
# virsh start machine_name
示例 11:使用 virt-viewer 连接到特定的虚拟机。
语法:
# virt-viewer -c qemu:///system machine_name
例子:
# virt-viewer -c qemu:///system test
示例 12:使用 virt-install 创建新的虚拟机。
假设我想在 10GB 空间上安装 Centos 6.X,然后首先使用以下命令创建一个 img 文件:
# dd if=/dev/zero of=/var/lib/libvirt/images/centos-linux.img bs=1M count=10240
然后运行 virt-install 命令:
# virt-install --virt-type kvm --name CentOS-Linux --ram 2048 --vcpus=2 --disk path=/var/lib/libvirt/images/centos-linux.img --network bridge=br0 --graphics vnc --cdrom /root/CentOS-6.2-x86_64-bin-DVD1.iso --os-variant=RHEL6
当我们运行上面的命令时会出现下面的屏幕:
示例 13:使用 virsh 命令将虚拟机从一个管理程序实时迁移到另一个管理程序。
实时迁移的基本要求:
- 来宾镜像必须位于共享存储上,并且必须可以使用 iSCSI、NFS、GFS2 或者光纤通道进行访问。
- 共享存储必须安装在两台主机的相同路径上。
- 两个来宾必须运行相同版本的 KVM。
- 两个来宾必须具有相同的网络配置和桥接配置(它们的 IP 必须不同)
# virsh migrate --live machine_name qemu+ssh://destination_server/system
日期:2020-09-17 00:16:29 来源:oir作者:oir