第 20 章 使用 virsh 管理客户机虚拟机
virsh 是用于管理客户机虚拟机的命令行界面工具,并可作为在 Red Hat Enterprise Linux 7 中控制虚拟化的主要方法。virsh 命令行工具在 libvirt 管理 API 上构建,可用于创建、部署和管理客户机虚拟机。virsh 实用程序是创建虚拟化管理脚本的理想选择,并且没有 root 特权的用户可在只读模式中使用它。virsh 软件包使用 yum 作为 libvirt-client 软件包的一部分安装。
注意
请注意,在使用帮助或读取 man page 时,将使用术语"domain" 而不是术语 guest 虚拟机。这是 libvirt 使用这一术语。如果显示屏幕输出以及使用 'domain' 的提示,则不会切换到 guest 或 guest 虚拟机。在所有示例中,将使用 guest 虚拟机 'guest1'。所有情况下,都应用 guest 虚拟机的名称替换它。当为客户机虚拟机创建名称时,您应该使用简短的方法来记住整数(0,1,2.))、文本字符串名称,或者在所有情况下,您也可以使用虚拟机的完整 UUID。
重要
请注意您使用的用户很重要。如果您使用一个用户创建客户机虚拟机,您将无法使用另一个用户检索有关它的信息。这在 virt-manager 中创建虚拟机时尤其重要。在这种情况下,默认用户为 root,除非另外指定。如果您无法使用 virsh list --all 命令列出虚拟机,则很可能是因为使用与您用于创建虚拟机的不同用户运行该命令。如需更多信息,请参阅 重要。
20.1. 虚拟机状态和类型
几个 virsh 命令受到客户机虚拟机状态的影响:
- 瞬态 - 临时客户机无法重新引导.
- persistent - 持久的 guest 虚拟机会重新引导,并在删除前最后。
在虚拟机生命周期中,libvirt 将把客户机指定为以下状态之一:
- undefined - 这是尚未定义或创建的客户机虚拟机。因此,libvirt 不了解此状态内的任何 guest,不会报告此状态下的客户机虚拟机。
- 关闭 - 这是一个已定义但未在运行的客户机虚拟机。只有持久的客户机可以考虑关闭。因此,当临时的 guest 虚拟机进入这个状态时,它就会存在。
- Running - 此状态下的客户机虚拟机已定义并且正在工作。此状态可用于持久和临时的客户机虚拟机。
- paused - 已暂停系统管理程序上的 guest 虚拟机执行,或者其状态已暂时存储,直到恢复为止。处于此状态的 guest 虚拟机不知道它们已被暂停,请注意在恢复后不会发现经过的时间。
- saved - 此状态与暂停状态类似,但客户机虚拟机的配置被保存到持久性存储。任何处于这个状态的客户机虚拟机都不知道它已被暂停,且不会注意到恢复后经过的时间。