Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 14 章 使用 virsh 管理 guest 虚拟机

virsh 是用于管理 guest 虚拟机和 hypervisor 的命令行工具。virsh 命令行工具在 libvirt 管理 API 上构建,并作为 qemu-kvm 命令和图形 virt-manager 应用程序的替代操作。virsh 命令可在只读模式下供非特权用户使用,也可以使用 root 访问权限、完整的管理功能。virsh 命令是编写虚拟化管理脚本的理想选择。

14.1. 通用命令

本节中的命令是通用的,因为它们不特定于任何域。

14.1.1. 帮助

$ virsh help [command|group] help 命令可与 或不使用选项一起使用。当在没有选项的情况下使用时,将列出所有命令,每行一个。与选项一起使用时,它将分组为不同的类别,显示每个组的关键字。
要显示只针对特定选项的命令,您需要为该组提供关键字作为选项。例如:
$ virsh help pool
 Storage Pool (help keyword 'pool'):
    find-storage-pool-sources-as   find potential storage pool sources
    find-storage-pool-sources      discover potential storage pool sources
    pool-autostart                 autostart a pool
    pool-build                     build a pool
    pool-create-as                 create a pool from a set of args
    pool-create                    create a pool from an XML file
    pool-define-as                 define a pool from a set of args
    pool-define                    define (but don't start) a pool from an XML file
    pool-delete                    delete a pool
    pool-destroy                   destroy (stop) a pool
    pool-dumpxml                   pool information in XML
    pool-edit                      edit XML configuration for a storage pool
    pool-info                      storage pool information
    pool-list                      list pools
    pool-name                      convert a pool UUID to pool name
    pool-refresh                   refresh a pool
    pool-start                     start a (previously defined) inactive pool
    pool-undefine                  undefine an inactive pool
    pool-uuid                      convert a pool name to pool UUID
使用与命令选项相同的命令,提供该特定命令的帮助信息。例如:
$ virsh help vol-path
  NAME
    vol-path - returns the volume path for a given volume name or key

  SYNOPSIS
    vol-path <vol> [--pool <string>]

  OPTIONS
    [--vol] <string>  volume name or key
    --pool <string>  pool name or uuid

14.1.2. 退出并退出

quit 命令和 exit 命令将关闭终端。例如:
$ virsh exit
$ virsh quit

14.1.3. version

version 命令显示当前 libvirt 版本,并显示有关构建位置的信息。例如:
$ virsh version
Compiled against library: libvirt 1.1.1
Using library: libvirt 1.1.1
Using API: QEMU 1.1.1
Running hypervisor: QEMU 1.5.3

14.1.4. 参数显示

virsh echo [--shell][--xml][arg] 命令回显或显示指定的参数。调用的每个参数都将一个空格分开。通过使用 --shell 选项,输出将根据需要进行单引号,以便其适合在 shell 命令中重复使用。如果使用 --xml 选项,则输出将适合用于 XML 文件。例如,命令 virsh echo --shell "hello world" 将发送输出 'hello world'

14.1.5. connect

连接到管理程序会话.当 shell 首次启动时,该命令会在 -c 命令请求 URI 参数时自动运行。URI 指定如何连接到虚拟机监控程序。最常用的 URI 是:
  • Xen:/// - 连接到本地 Xen 管理程序.
  • QEMU :///system - 以 root 身份从本地连接守护进程,可打开 QEMU 和 KVM 域。
  • Xen:///session - 以用户身份本地连接到用户一组 QEMU 和 KVM 域。
  • lxc:/// - 连接到本地 Linux 容器。
libvirt 的网站 http://libvirt.org/uri.html 提供了其他值。
该命令可以按如下方式运行:
$ virsh connect {name|URI}
其中 {name} 是 hypervisor 的机器名称(主机名)或 URL( virsh uri 命令的输出)。要启动只读连接,请使用 --readonly 附加上述命令。如需有关 URI 的更多信息,请参阅 远程 URI。如果您不确定 URI,则 virsh uri 命令将显示它:
$ virsh uri
qemu:///session

14.1.6. 显示基本信息

以下命令可以用来显示基本信息:
  • $ hostname - 显示虚拟机监控程序的主机名
  • $ sysinfo - 显示管理程序系统信息的 XML 表(如果可用)

14.1.7. 注入 NMI

$ virsh inject-nmi [domain] 将 NMI(不可屏蔽中断)信息注入给客户机虚拟机。这在响应时间至关重要时使用,如不可恢复的硬件错误。要运行这个命令:
$ virsh inject-nmi guest-1