22 KVM管理虚拟机-查询虚拟机信息
22.1 概述
管理员在管理虚拟机的过程中经常需要知道一些虚拟机信息,libvirt提供了一套命令行工具用于查询虚拟机的相关信息。本章介绍相关命令的使用方法,便于管理员来获取虚拟机的各种信息。
22.2 前提条件
查询虚拟机信息需要:
- libvirtd服务处于运行状态。
- 命令行操作需要拥有管理员权限。
22.3 查询主机上的虚拟机信息
-
查询主机上处于运行和暂停状态的虚拟机列表。
# virsh list
例如,下述回显说明当前主机上存在3台虚拟机,其中openEulerVM01、openEulerVM02处于运行状态,openEulerVM03处于暂停状态。
Id Name State ---------------------------------------------------- 39 openEulerVM01 running 40 openEulerVM02 running 69 openEulerVM03 paused
-
查询主机上已经定义的所有虚拟机信息列表。
# virsh list --all
例如,下述回显说明当前主机上定义了4台虚拟机,其中虚拟机openEulerVM01处于运行状态,openEulerVM02处于暂停状态,openEulerVM03和openEulerVM04处于关机状态。
Id Name State ---------------------------------------------------- 39 openEulerVM01 running 69 openEulerVM02 paused - openEulerVM03 shut off - openEulerVM04 shut off
22.4 查询虚拟机基本信息
Libvirt组件提供了一组查询虚拟机状态信息的命令,包括虚拟机运行状态、设备信息或者调度属性等,使用方法请参见表1。
表 1 查询虚拟机基本信息
查询的信息内容 | 命令行 | 说明 |
---|---|---|
基本信息 | virsh dominfo <VMInstance> | 包括虚拟机ID、UUID,虚拟机规格等信息。 |
当前状态 | virsh domstate <VMInstance> | 可以使用--reason选项查询虚拟机变为当前状态的原因。 |
调度信息 | virsh schedinfo <VMInstance> | 包括vCPU份额等信息。 |
vCPU数目 | virsh vcpucount <VMInstance> | 查询虚拟机vCPU的个数。 |
虚拟块设备状态 | virsh domblkstat <VMInstance> | 查询块设备名称可以使用virsh domblklist命令。 |
虚拟网卡状态 | virsh domifstat <VMInstance> | 查询网卡名称可以使用virsh domiflist命令。 |
I/O线程 | virsh iothreadinfo <VMInstance> | 查询虚拟机I/O线程及其CPU亲和性信息。 |
22.5 查询虚拟机基本信息示例
-
使用virsh dominfo查询一个创建好的虚拟机的基本信息,从查询结果可知,虚拟机ID为5,UUID为ab472210-db8c-4018-9b3e-fc5319a769f7,内存大小为8GiB,vCPU数目为4个等。
[root@superman-21 ~]# virsh dominfo openEulerVM Id: 5 Name: openEulerVM UUID: ab472210-db8c-4018-9b3e-fc5319a769f7 OS Type: hvm State: running CPU(s): 4 CPU time: 6.8s Max memory: 8388608 KiB Used memory: 8388608 KiB Persistent: no Autostart: disable Managed save: no Security model: none Security DOI: 0 [root@superman-21 ~]#
-
使用virsh domstate查询虚拟机的当前状态,从查询结果可知,虚拟机openEulerVM当前处于运行状态。
[root@superman-21 ~]# virsh domstate openEulerVM running [root@superman-21 ~]#
使用virsh schedinfo查询虚拟机的调度信息,从查询结果可知,虚拟机CPU预留份额为1024。
[root@superman-21 ~]# virsh schedinfo openEulerVM Scheduler : posix cpu_shares : 1024 vcpu_period : 100000 vcpu_quota : -1 emulator_period: 100000 emulator_quota : -1 global_period : 100000 global_quota : -1 iothread_period: 100000 iothread_quota : -1 [root@superman-21 ~]#
-
使用virsh vcpucount查询虚拟机的vCPU数目,从查询结构可知,虚拟机有4个CPU。
[root@superman-21 ~]# virsh vcpucount openEulerVM maximum live 4 current live 4 [root@superman-21 ~]#
-
使用virsh domblklist查询虚拟机磁盘设备信息,从查询结构可知,虚拟机有2个磁盘,sda是qcow2格式的虚拟磁盘,sdb是一个cdrom设备。
[root@superman-21 ~]# virsh domblklist openEulerVM Target Source --------------------------------------------------------------------- sda /home/openeuler/vm/openEuler_aarch64.qcow2 sdb /home/openeuler/vm/openEuler-20.09-aarch64-dvd.iso [root@superman-21 ~]#
-
使用virsh domiflist查询虚拟机网卡信息,从查询结果可知,虚拟机有1张网卡,对应的后端是vnet0在主机br0网桥上,MAC地址为00:05:fe:d4:f1:cc。
[root@superman-21 ~]# virsh domiflist openEulerVM Interface Type Source Model MAC ------------------------------------------------------- vnet0 bridge br0 virtio 00:05:fe:d4:f1:cc [root@superman-21 ~]#
-
使用virsh iothreadinfo查询虚拟机I/O线程信息,从查询结果可知虚拟机有5个I/O线程,在物理CPU7-10上进行调度。
[root@superman-21 ~]# virsh iothreadinfo openEulerVM IOThread ID CPU Affinity --------------------------------------------------- 3 7-10 4 7-10 5 7-10 1 7-10 2 7-10 [root@superman-21 ~]#
标签:21,22,虚拟机,KVM,查询,virsh,root,superman From: https://blog.51cto.com/u_237826/6293337