Menu

目录

查询虚拟机信息

概述

管理员在管理虚拟机的过程中经常需要知道一些虚拟机信息,libvirt提供了一套命令行工具用于查询虚拟机的相关信息。本章介绍相关命令的使用方法,便于管理员来获取虚拟机的各种信息。

前提条件

查询虚拟机信息需要:

  • libvirtd服务处于运行状态。

  • 命令行操作需要拥有管理员权限。

查询主机上的虚拟机信息

  • 查询主机上处于运行和暂停状态的虚拟机列表。

    # 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
    

查询虚拟机基本信息

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亲和性。

示例

  • 使用virsh dominfo查询一个定义好的虚拟机的基本信息,从查询结果可知,虚拟机ID为5,UUID为ab472210-db8c-4018-9b3e-fc5319a769f7,内存大小为8GiB,vCPU数目为4个等。

    # 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
    
  • 使用virsh domstate查询虚拟机的当前状态,从查询结果可知,虚拟机_openEulerVM_当前处于运行状态。

    # virsh domstate openEulerVM
    running
    
  • 使用virsh schedinfo查询虚拟机的调度信息,从查询结果可知,虚拟机CPU预留份额为1024。

    # 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
    
  • 使用virsh vcpucount查询虚拟机的vCPU数目,从查询结构可知,虚拟机有4个CPU。

    # virsh vcpucount openEulerVM
    maximum      live           4
    current      live           4
    
  • 使用virsh domblklist查询虚拟机磁盘设备信息,从查询结构可知,虚拟机有2个磁盘,sda是qcow2格式的虚拟磁盘,sdb是一个cdrom设备。

     # virsh domblklist openEulerVM
     Target   Source
    ---------------------------------------------------------------------
     sda      /home/openeuler/vm/centos76_aarch64.qcow2
     sdb      /home/openeuler/vm/CentOS-7-aarch64-Everything-1810.iso
    
  • 使用virsh domiflist查询虚拟机网卡信息,从查询结果可知,虚拟机有1张网卡,对应的后端是vnet0在主机br0网桥上,MAC地址为00:05:fe:d4:f1:cc。

    # virsh domiflist openEulerVM
    Interface  Type       Source     Model       MAC
    -------------------------------------------------------
    vnet0      bridge     br0        virtio      00:05:fe:d4:f1:cc
    
  • 使用virsh iothreadinfo查询虚拟机I/O线程信息,从查询结果可知虚拟机有5个I/O线程,在物理CPU7-10上进行调度。

    # virsh iothreadinfo openEulerVM
     IOThread ID     CPU Affinity
    ---------------------------------------------------
     3               7-10
     4               7-10
     5               7-10
     1               7-10
     2               7-10