50.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 is not currently running on this node
,请输入以下命令。# pcs cluster start
另外,您可以等待,直到集群中的每个节点都重启了,然后使用以下命令在集群中的所有节点上启动集群服务。
# pcs cluster start --all