Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

什么是高可用性LVM(HA-LVM)配置以及如何实现它?

Solution Unverified - Updated -

Environment

  • 红帽企业版 (RHEL); 包含
    • Red Hat Enterprise Linux 4.5 and later
    • Red Hat Enterprise Linux Server 5 (with the High Availability or Resilient Storage Add Ons)
    • Red Hat Enterprise Linux Server 6 (with the High Availability or Resilient Storage Add Ons)
  • Red Hat High Availability Cluster with 2 or more nodes.
  • rgmanager or Pacemaker 集群资源管理器
  • LVM是在主动/被动方式使用 (在同一时间只有一个节点的特定卷被访问)

Issue

  • 如何配置我的群集服务或资源来激活和监控共享LVM卷?

  • 不受控制的同时访问共享存储可能会导致数据损坏。存储访问必须像任何其他的主动/被动服务管理 - 它只能在同一时间在一台机器上被激活。

  • 有没有一种方法来配置一个高可用性集群LVM卷的主动/被动用法?

Resolution

  • 可以使用以下两种方法为来为HA LVM实现独占任务.

1. HA-LVM CLVM 变体

注意: 在使用Pacemakerclvmd 不支持 HA-LVM. 有关使用HA-LVM与Pacemaker的介绍请参阅下述说明:

  • 方法: RHEL6 文档 || RHEL5.6+ documentation
  • CLVM 变体可用于 RHEL5.6+ 和 RHEL6.
  • 该方法具有易于安装和更好的预防管理失误(如像删除正在使用中的逻辑卷).
  • 你必须有Resilient Storage Add on 的权利来访问CLVM和所有使用这种方法的集群LVM软件包.
  • 这个方法不能用于 伸展集群.
  • 如果你不能使用HA-LVM的CLVM变种,那么可以用 HA-LVM 标记法 (见下)来代替.

2. HA-LVM 标记变种

原来的方法是使用本地计算机锁定和LVM标记,以防止从多个节点同时访问:

With rgmanager

  • 方法: RHEL6 文档 || RHEL4.5+ and RHEL5 Documentation:
  • 这种方法适用于 RHEL4.5+, RHEL5, and RHEL6.
  • 更多的配置步骤和类似的保护作为CLVM变种.但是并不防止从非活动节点的逻辑卷意外删除.
  • 可以用 High Availability Add onResilient Storage Add on 的权利作为 lvm2-cluster (clvmd) 是没有要求的.
  • 这种方法用[伸展集群]兼容(https://access.redhat.com/knowledge/articles/27136).

请查阅 这个文档来得到关于HA-LVM更多的信息.

Pacemaker

  • 方法:
    1) 在每一个集群节点, 在/etc/lvm/lvm.conf中配置一个 volume_list 只包含不是由群集节点共享本地卷组. 没有必要对包含作为被要求为rgmanager配置相匹配的节点名称的标签。配置示例:

    volume_list = [ "VolGroup00" ]
    

    2) 在每一个集群节点, 确认在 /etc/lvm/lvm.conflocking_type=1,并且该卷组没有启用“集群”属性 (可以用 vgchange -cn <volume group>禁用). clvmd 不支持LVM的独家资源

    3) 在每一个集群节点, 为当前内核重建 initramfs

    4) 在集群的一个节点, 用 pcs创建独家LVM资源. 例如:

    # pcs resource create my_vg LVM volgrpname=my_vg exclusive=true
    
  • Pacemaker 只支持 某些RHEL 6发行版本

  • 此方法可以防止共享卷的任何修改或操作除了Pacemaker.
  • 可以用 High Availability Add onResilient Storage Add on 的权利作为 lvm2-cluster (clvmd) 是不需要的.
  • 可用于PacemakerLVM 资源代理只能管理整个卷组,而不是单个逻辑卷.作为LVM代理rgmanager可以.

Root Cause

  • 作为红帽企业版4和5, 有一个在故障转移(主动/被动)配置支持在rgmanager的高可用性LVM卷.
    • 当需要时,可以由集群逻辑卷管理器(CLVM)启用主动/主动配置.
  • 主动/被动HA-LVM或主动/主动CLVM的选择应基于正在部署的应用程序或服务的需求.
    • 如果应用程序是在全局可识别,并已调整为每次同时在多台机器中运行,那就应该使用 CLVM.
    • 如果应用程序以最佳的 active/passive(故障切换)配置运行, 那么 HA-LVM 是最佳选择.
      -HA-LVM 和 CLVM 相似,它们都可以防止 LVM 元数据及其逻辑卷崩溃;反之,如果允许多台机器执行互相可覆盖的更改,则会发生数据和逻辑卷崩溃.
    • HA-LVM 强制限制只能单独激活逻辑卷,即一次只能在一台机器中激活。
    • CLVM 没有这些强制限制,用户可以随意在集群的所有机器中激活逻辑卷。这样就强制使用集群可识别存储驱动器,即允许将集群可识别文件系统和应用程序放在顶层.
  • 支持HA-LVM的CLVM变体中添加到了RHEL5.6和RHEL 6中的每个版本.
  • 支持HA-LVM的标记变体中添加到了RHEL4.5,并且RHEL5和RHEL 6中的每一个版本.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments