2.3. 在集群中禁用卷组激活
下面的步骤配置卷组的方式是,确保只有集群可以激活卷组,且在启动时不会在集群外激活卷组。如果卷组由集群外的系统激活,则有破坏卷组元数据的风险。
此流程修改
/etc/lvm/lvm.conf
配置文件中的 volume_list
条目。volume_list
条目中列出的卷组可以在集群管理器控制之外的本地节点中自动激活。与节点本地根目录和主目录相关的卷组应包含在此列表中。由集群管理器管理的所有卷组都必须从 volume_list
条目中排除。请注意,这个过程不需要使用 clvmd。
在集群的每个节点上执行以下步骤。
- 执行以下命令,确保
locking_type
在/etc/lvm/lvm.conf
文件中被设置为 1,且use_lvmetad
被设置为 0。这个命令还会立即禁用和停止任何 lvmetad 进程。#
lvmconf --enable-halvm --services --startstopservices
- 使用以下命令确定当前在本地存储中配置哪些卷组。这会输出当前配置的卷组列表。如果您在单独的卷组中为 root 分配了空间,并且为这个节点的主目录分配了空间,您会在输出中看到这些卷,如下例所示。
#
vgs --noheadings -o vg_name
my_vg rhel_home rhel_root - 将
my_vg
以外的卷组(您刚刚为集群定义的卷组)添加为/etc/lvm/lvm.conf
配置文件中的volume_list
的条目。例如:如果您在单独的卷组中为 root 和您的主目录分配了空间,您可以取消对lvm.conf
文件的volume_list
行的注释,并将这些卷组作为条目添加到volume_list
中,如下所示。请注意,您刚刚为集群定义的卷组(本例中为(my_vg
)没有在这个列表中。volume_list = [ "rhel_root", "rhel_home" ]
注意如果节点上没有在集群管理器之外激活的本地卷组,您仍需要将volume_list
条目初始化为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