10.14. 配置 ACPI 以用于集成的隔离设备

如果您的集群使用集成的隔离设备,必须配置 ACPI(高级配置和电源界面)以保证迅速和完全的隔离。

如果将集群节点配置为使用集成的隔离设备保护,则为该节点禁用 ACPI Soft-Off。禁用 ACPI Soft-Off 允许集成的隔离设备立即并完全关闭节点,而不是尝试彻底关闭(例如,shutdown -h now)。否则,如果启用了 ACPI Soft-Off,集成的隔离设备可能需要 4 秒以上的时间来关闭节点(请参阅下面的备注)。另外,如果启用了 ACPI Soft-Off,且在关闭过程中有一个节点 panic 或停滞,则集成的保护设备可能无法关闭该节点。在这些情况下,隔离会被延迟或者失败。因此,当使用集成隔离设备隔离节点并启用 ACPI Soft-Off时,集群恢复会很慢,或者需要管理员进行干预才能恢复。

注意

保护节点所需时间取决于所使用的集成的保护设备。有些集成的保护设备性能与按住电源按钮相当,因此隔离设备可在 4-5 秒内关闭该节点。其他集成的隔离设备性能与按电源开关一致,依靠操作系统关闭该节点,因此隔离设备关闭该节点的时间要大大超过 4-5 秒。

  • 禁用 ACPI Soft-Off 的首选方法是将 BIOS 设置改为 "instant-off" 或一个在不延迟关闭该节点的对等设置,如下为 "Disabling ACPI Soft-Off"。

使用 BIOS 禁用 ACPI Soft-Off 可能不适用于某些系统。如果无法使用 BIOS 禁用 ACPI Soft-Off,您可以使用以下备选方法之一禁用 ACPI Soft-Off:

  • /etc/systemd/logind.conf 文件中设置 HandlePowerKey=ignore,并在隔离时验证节点节点立即关闭,如 logind.conf 文件中的"Disabling ACPI Soft-Off"中所述。这是禁用 ACPI Soft-Off 的第一个替代方法。
  • 在内核引导命令行中附加 acpi=off,如"在 GRUB 2 文件中完全禁用 ACPI"中所述。这是禁用 ACPI Soft-Off 的第二个替代方法,如果首选方法或第一个替代方法不可用。

    重要

    这个方法可完全禁用 ACPI。当 ACPI 被完全禁用时,以下计算机可能无法正确引导。只有在其他方法无法在您的集群中使用时,才使用这个方法。

10.14.1. 使用 BIOS 禁用 ACPI Soft-Off

您可以按照以下步骤配置每个集群节点的 BIOS 来禁用 ACPI Soft-Off。

注意

使用 BIOS 禁用 ACPI Soft-Off 的步骤可能因服务器系统而异。您应该在您的硬件文档中验证此步骤。

步骤

  1. 重启节点,并启动 BIOS CMOS 设置工具 程序。
  2. 进入 Power 菜单(或者对等的电源管理菜单)。
  3. 在 Power 菜单中,将 Soft-Off by PWR-BTTN 功能(或等效的功能)设置为 Instant-Off(或使用无延迟电源按钮关闭节点的对等设置)。以下 BIOS CMOS Setup Utiliy 示例显示 ACPI Function 设置为 EnabledSoft-Off by PWR-BTTN 设置为 Instant-Off

    注意

    ACPI Function 等效,Soft-Off by PWR-BTTNInstant-Off 可能因计算机而异。但这个过程的目的是配置 BIOS,以便计算机能无延迟地关闭电源按钮。

  4. 退出 BIOS CMOS 设置工具 程序,保存 BIOS 配置。
  5. 验证在隔离时该节点是否立即关闭。有关测试隔离设备的详情,请参考 测试隔离设备

BIOS CMOS 设置实用程序

`Soft-Off by PWR-BTTN` set to
`Instant-Off`

+---------------------------------------------|-------------------+
|    ACPI Function             [Enabled]      |    Item Help      |
|    ACPI Suspend Type         [S1(POS)]      |-------------------|
|  x Run VGABIOS if S3 Resume   Auto          |   Menu Level   *  |
|    Suspend Mode              [Disabled]     |                   |
|    HDD Power Down            [Disabled]     |                   |
|    Soft-Off by PWR-BTTN      [Instant-Off   |                   |
|    CPU THRM-Throttling       [50.0%]        |                   |
|    Wake-Up by PCI card       [Enabled]      |                   |
|    Power On by Ring          [Enabled]      |                   |
|    Wake Up On LAN            [Enabled]      |                   |
|  x USB KB Wake-Up From S3     Disabled      |                   |
|    Resume by Alarm           [Disabled]     |                   |
|  x  Date(of Month) Alarm       0            |                   |
|  x  Time(hh:mm:ss) Alarm       0 :  0 :     |                   |
|    POWER ON Function         [BUTTON ONLY   |                   |
|  x KB Power ON Password       Enter         |                   |
|  x Hot Key Power ON           Ctrl-F1       |                   |
|                                             |                   |
|                                             |                   |
+---------------------------------------------|-------------------+

本例展示了 ACPI Function 设置为 Enabled Soft-Off by PWR-BTTN 设置为 Instant-Off

10.14.2. 在 logind.conf 文件中禁用 ACPI Soft-Off

要禁用 /etc/systemd/logind.conf 文件中的 电源密钥处理,请使用以下流程。

步骤

  1. /etc/systemd/logind.conf 文件中定义以下配置:

    HandlePowerKey=ignore
  2. 重启 systemd-logind 服务:

    # systemctl restart systemd-logind.service
  3. 验证在隔离时该节点是否立即关闭。有关测试隔离设备的详情,请参考 测试隔离设备

10.14.3. 在 GRUB 2 文件中完全禁用 ACPI

您可以通过在内核的 GRUB 菜单条目中添加 acpi=off 来禁用 ACPI Soft-Off。

重要

这个方法可完全禁用 ACPI。当 ACPI 被完全禁用时,以下计算机可能无法正确引导。只有在其他方法无法在您的集群中使用时,才使用这个方法。

步骤

在 GRUB 2 文件中使用以下步骤禁用 ACPI:

  1. --args 选项与 grubby 工具的 --update-kernel 选项结合使用,来更改每个集群节点的 grub.cfg 文件,如下所示:

    # grubby --args=acpi=off --update-kernel=ALL
  2. 重新引导节点。
  3. 验证在隔离时该节点是否立即关闭。有关测试隔离设备的详情,请参考 测试隔离设备