6.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
条目中排除。
流程
在集群的每个节点中执行以下步骤。
使用以下命令,确定您的本地存储上当前已配置哪些卷组。这将输出当前配置的卷组的列表。如果您在单独的卷组中为 root 和此节点上的主目录分配了空间,您会在输出中看到这些卷,如下例所示。
# vgs --noheadings -o vg_name my_vg rhel_home rhel_root
将
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 = []
。重建
initramfs
引导映像,以确保引导映像不会尝试激活由群集控制的卷组。使用以下命令更新initramfs
设备:此命令最多可能需要一分钟完成。# dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
重新引导节点。
注意如果您自引导引导镜像后安装了一个新的 Linux 内核,则新
initrd
镜像将适用于您在创建引导镜像时运行的内核,而不是重新引导该节点时运行的新内核。您可以通过在重启前后运行uname -r
命令来确保使用正确的initrd
设备,以确定正在运行的内核版本。如果发行版不同,请在使用新内核重启后更新initrd
文件,然后重新引导节点。节点重新引导后,通过在该节点上执行
pcs cluster status
命令,检查群集服务是否已在该节点上再次启动。如果这会产生Error: cluster 当前没有在此节点上运行的信息
,请输入以下命令。# pcs cluster start
另外,您可以等待直到您重新引导集群中的每个节点,并使用以下命令在集群中的所有节点上启动集群服务。
# pcs cluster start --all