第 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