搜索

A.10. 在 Red Hat Enterprise Linux 7 主机上关闭 Red Hat Enterprise Linux 6 虚拟机

download PDF
使用 Minimal 安装选项安装 Red Hat Enterprise Linux 6 虚拟机不会安装 acpid (acpi 守护进程)。Red Hat Enterprise Linux 7 不再需要这个软件包,因为它被 systemd 接管。但是,在 Red Hat Enterprise Linux 7 主机上运行的 Red Hat Enterprise Linux 6 客户机虚拟机仍需要它。
如果没有 acpid 软件包,在执行 virsh shutdown 命令时,Red Hat Enterprise Linux 6 客户机虚拟机不会关闭。virsh shutdown 命令旨在正常关闭 guest 虚拟机。
使用 virsh shutdown 命令更容易且更安全地进行系统管理。如果没有通过 virsh shutdown 命令正常关闭,系统管理员必须手动登录到客户机虚拟机,或者向每个 guest 虚拟机发送 Ctrl-Alt-Del 组合键。
注意
其他虚拟化操作系统可能会受到此问题的影响。virsh shutdown 命令要求将客户机虚拟机操作系统配置为处理 ACPI 关闭请求。许多操作系统需要在客户端虚拟机操作系统中附加配置,以便接受 ACPI 关闭请求。

过程 A.4. Red Hat Enterprise Linux 6 客户端临时解决方案

  1. 安装 acpid 软件包

    acpid 服务侦听和处理 ACPI 请求。
    登录到客户机虚拟机并在客户机虚拟机上安装 acpid 软件包:
    # yum install acpid
  2. 在客户端中启用 acpid 服务

    acpid 服务设置为在客户机虚拟机启动序列中启动,并启动该服务:
    # chkconfig acpid on
    # service acpid start
  3. 准备客户机域 XML

    编辑域 XML 文件以包含下列元素:将 virtio serial 端口替换为 org.qemu.guest_agent.0,并使用您的客户机的名称而不是显示的端口。在本例中,guest 是 guest1。记得保存文件。

    图 A.1. 虚拟机 XML 替换

    
    <channel type='unix'>
       <source mode='bind' path='/var/lib/libvirt/qemu/guest1.agent'/>
       <target type='virtio' name='org.qemu.guest_agent.0'/>
    </channel>
        
    
    
  4. 安装 QEMU 客户机代理

    安装 QEMU 客户机代理(QEMU-GA),并以 Red Hat Enterprise Linux 6 虚拟化管理指南 中的指示启动该服务。
  5. 关闭客户端

    1. 列出已知客户机虚拟机,以便可以检索您要关闭的名称。
      # virsh list --all
         Id Name              State
      ----------------------------------
        14 guest1             running
      
    2. 关闭客户机虚拟机。
      # virsh shutdown guest1
      
      guest virtual machine guest1 is being shutdown
      
    3. 等待几秒钟,让 guest 虚拟机关闭。验证它是否已关闭。
      # virsh list --all
       Id Name                 State
      ----------------------------------
       14 guest1               shut off
      
    4. 使用您编辑的 XML 文件,启动名为 guest1 的客户机虚拟机。
      # virsh start guest1
    5. 关闭 guest1 客户机虚拟机中的 acpi。
      # virsh shutdown --mode acpi guest1
    6. 再次列出所有 guest 虚拟机,guest1 仍应在列表中,并且应指明它已关闭。
      #  virsh list --all
         Id Name                 State
      ----------------------------------
         14 guest1               shut off
      
    7. 使用您编辑的 XML 文件,启动名为 guest1 的客户机虚拟机。
      # virsh start guest1
    8. 关闭 guest1 客户机虚拟机客户机代理。
      # virsh shutdown --mode agent guest1
    9. 列出客户机虚拟机。guest1 应该仍位于列表中,并且应指明它已关闭。
      # virsh list --all
         Id Name                 State
      ----------------------------------
         guest1                shut off
      
客户机虚拟机将使用 virsh shutdown 命令进行连续关闭,而无需使用上述临时解决方案。
除了上述方法外,还可以通过停止 libvirt-guests 服务来自动关闭 guest。有关这个方法的更多信息,请参阅 第 A.11 节 “允许 Graceful Shutdown 的可选临时解决方案”
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.