1.4. 红帽高可用性集群中的 LVM 逻辑卷

红帽高可用性附加组件以两个不同的集群配置为 LVM 卷提供支持。

您可以选择的集群配置如下:

  • 带有主动/被动故障转换配置的高可用性 LVM 卷(HA-LVM),在任何一个时间点上,集群中只能有一个节点访问存储。
  • 使用 lvmlockd 守护进程管理主动/主动配置中的存储设备的 LVM 卷,在任何一个时间点上,集群中可以有多个节点同时访问存储。lvmlockd 守护进程是 Resilient Storage 附加组件的一部分。

1.4.1. 选择 HA-LVM 或者共享卷

使用 HA-LVM 或者使用由 lvmlockd 守护进程管理的共享逻辑卷,应该根据要部署的应用程序或服务的要求来决定。

  • 如果集群的多个节点需要同步对 active/active 系统中的 LVM 卷进行读/写访问,则必须使用 lvmlockd 守护进程并将您的卷配置为共享卷。lvmlockd 守护进程提供了一个系统,用于协调集群节点间 LVM 卷的激活和更改。lvmlockd 守护进程的锁定服务为 LVM 元数据提供了保护,因为集群的不同节点与卷交互并更改其布局。这种保护取决于将同时在多个群集节点间作为共享卷激活的卷组。
  • 如果将高可用性集群配置为以主动/被动方式管理共享资源,同时只有一个成员需要访问给定 LVM 卷,那么您可以在没有 lvmlockd 锁定服务的情况下使用 HA-LVM。

因为大多数应用程序没有为与其他实例同时运行而设计或进行优化,所有它们以主动/被动配置的模式运行更佳。选择在共享逻辑卷上运行不是集群感知的应用程序可能会导致性能下降。这是因为,在这些情况下逻辑卷本身需要有集群通信的额外开销。针对集群设计的应用程序所获得的性能提高幅度必须大于因为集群文件系统和针对集群的逻辑卷所造成的性能降低的幅度。一些应用程序和工作负载会比其他应用程序和工作负载更容易实现这一点。确定集群的要求以及是否要为活跃/主动集群进行优化,从而在两个 LVM 配置间进行选择。大多数用户使用 HA-LVM 一般会获得最佳的 HA 结果。

HA-LVM 和使用 lvmlockd 的共享逻辑卷类似,它们可防止 LVM 元数据及其逻辑卷崩溃,否则在允许多个机器进行重叠更改时会出现这种情况。HA-LVM 会限制在一个时间点上只能有一个逻辑卷被激活,也就是说一次只在一个机器中激活。这意味着,只使本地(非集群)实现的存储驱动被使用。使用这种方法可以避免用于集群协调的额外开销,以提高性能。使用 lvmlockd 的共享卷不会强制实施这些限制,用户可以自由地在集群的所有机器上激活逻辑卷。这会强制使用支持集群功能的存储驱动,以允许支持集群功能的文件系统在上面运行。

1.4.2. 在集群中配置 LVM 卷

集群通过 Pacemaker 管理。只有与 Pacemaker 集群联合支持 HA-LVM 和共享逻辑卷,且必须配置为集群资源。

注意

如果 Pacemaker 集群使用的 LVM 卷组包含位于远程块存储(如 iSCSI 目标)上的一个或多个物理卷,则红帽建议您为目标配置一个 systemd resource-agents-deps 目标和一个 systemd 置入单元,以确保服务在 Pacemaker 启动之前启动。有关配置 systemd resource-agents-deps 目标的详情,请参阅 为不由 Pacemaker 管理的资源依赖项配置启动顺序