CentOS 和 RHEL 上的 KVM Virsh 命令示例

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