Red Hat Training

A Red Hat training course is available for RHEL 8

5.2. 确保卷组没有在多个集群节点上激活(RHEL 8.4 及更早版本)

您可以按照以下流程确保集群中 Pacemaker 管理的卷组不会在启动时自动激活。如果某个卷组在启动时自动激活,而不是由 Pacemaker 激活,则卷组可能会同时在多个节点上激活,这可能会破坏卷组的元数据。

注意

对于 RHEL 8.5 及之后的版本,您可以通过为 vgcreate 命令指定 --setautoactivation n 标志,在创建卷组时对卷组禁用自动激活,如在 在 Pacemaker 集群中使用 XFS 文件系统配置一个 LVM 卷 中所述。

此流程修改 /etc/lvm/lvm.conf 配置文件中的 auto_activation_volume_list 条目。auto_activation_volume_list 条目用于将自动激活限制为特定的逻辑卷。将 auto_activation_volume_list 设置为空列表可完全禁用自动激活。

任何未被共享且不由 Pacemaker 管理的本地卷都应包含在 auto_activation_volume_list 条目中,包括与节点本地根和主目录相关的卷组。由群集管理器管理的所有卷组都必须从 auto_activation_volume_list 条目中排除。

流程

在集群的每个节点中执行以下步骤。

  1. 使用以下命令,确定您的本地存储上当前已配置哪些卷组。这将输出当前配置的卷组的列表。如果您在单独的卷组中为 root 和此节点上的主目录分配了空间,您会在输出中看到这些卷,如下例所示。

    # vgs --noheadings -o vg_name
      my_vg
      rhel_home
      rhel_root
  2. my_vg 之外的卷组(您刚刚为群集定义的卷组)作为条目添加到 /etc/lvm/lvm.conf 配置文件中的 auto_activation_volume_list

    例如,如果您在单独的卷组中为 root 和主目录分配了空间,您可以取消注释 lvm.conf 文件的 auto_activation_volume_list 行,并将这些卷组作为条目添加到 auto_activation_volume_list,如下所示:请注意,您刚才为群集定义的卷组(本例中为 my_vg )不在此列表中。

    auto_activation_volume_list = [ "rhel_root", "rhel_home" ]
    注意

    如果节点上没有要在群集管理器外激活的本地卷组,您仍需要将 auto_activation_volume_list 条目初始化为 auto_activation_volume_list = []

  3. 重建 initramfs 引导映像,以确保引导映像不会尝试激活由群集控制的卷组。使用以下命令更新 initramfs 设备:此命令最多可能需要一分钟完成。

    # dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
  4. 重新引导节点。

    注意

    如果您自引导引导镜像后安装了一个新的 Linux 内核,则新 initrd 镜像将适用于您在创建引导镜像时运行的内核,而不是重新引导该节点时运行的新内核。您可以通过在重启前后运行 uname -r 命令来确保使用正确的 initrd 设备,以确定正在运行的内核版本。如果发行版不同,请在使用新内核重启后更新 initrd 文件,然后重新引导节点。

  5. 节点重新引导后,通过在该节点上执行 pcs cluster status 命令,检查群集服务是否已在该节点上再次启动。如果这会产生 Error: cluster 当前没有在此节点上运行的信息,请输入以下命令。

    # pcs cluster start

    另外,您可以等待直到您重新引导集群中的每个节点,并使用以下命令在集群中的所有节点上启动集群服务。

    # pcs cluster start --all