5.5. 在集群中创建镜像 LVM 逻辑卷

在集群中创建镜像 LVM 逻辑卷与在单一节点中使用 mirror 片段类型创建镜像 LVM 逻辑卷所使用的命令和过程相同。但要在集群中创建镜像 LVM 逻辑卷,该集群和集群镜像必须处于运行状态,该集群必须可以仲裁,且必须在 lvm.conf 文件中正确设定锁定类型以便启用集群锁定,可以是直接锁定,也可以如 第 3.1 节 “在集群中创建 LVM 卷” 所述使用 lvmconf 命令锁定。
在 Red Hat Enterprise Linux 7 中使用 Pacermaker 管理集群。只有与 Pacemaker 集群联合使用方可支持集群的 LVM 逻辑卷,且必须将其配置为集群资源。
下面是在集群中创建镜像 LVM 卷的步骤。
  1. 安装集群软件及 LVM 软件包,启动该集群软件,并创建该集群。必须为该集群配置 fencing。文档《高可用附加组件管理》中提供了创建集群及为集群中的节点配置 fencing 的步骤示例。文档《高可用附加组件管理》还提供更多有关集群组件配置的详情。
  2. 要创建可为集群中所有节点共享的镜像逻辑卷,则必须在该集群每个节点的 lvm.conf 文件中正确设定锁定类型。默认情况下是将锁定类型设定为 local。要更改这个设置,请在集群的每个节点中执行以下命令启用集群的锁定:
    # /sbin/lvmconf --enable-cluster
  3. 为集群设定 dlm 资源。将该资源作为克隆的资源创建,以便其可在该集群的每个节点中运行。
    # pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true
  4. clvmd 配置为集群资源。创建资源时只将 dlm 资源作为克隆资源创建,以便其可在该集群的所有节点中运行。注:必须设定 with_cmirrord=true 参数,以便在所有运行 clvmd 的节点中启用 cmirrord 守护进程。
    # pcs resource create clvmd pcf:heartbeat:clvm with_cmirrord=true op monitor interval=30s on-fail=fence clone interleave=true ordered=true
    如果已配置 clvmd 资源,但没有指定 with_cmirrord=true 参数,则可以使用下面的命令更新该资源以便其包含该参数:
    # pcs resource update clvmd with_cmirrord=true
  5. 设定 clvmddlm 相依性及启动顺序。必须在 dlm 之后启动clvmd,且必须在 dlm 所在的同一节点中运行。
    # pcs constraint order start dlm-clone then clvmd-clone
    # pcs constraint colocation add clvmd-clone with dlm-clone
  6. 创建镜像。第一步是创建物理卷。下面的命令创建三个物理卷,其中两个物理卷将作为镜像的分支,第三个物理卷将包含镜像日志。
    # pvcreate /dev/xvdb1
      Physical volume "/dev/xvdb1" successfully created
    [root@doc-07 ~]# pvcreate /dev/xvdb2
      Physical volume "/dev/xvdb2" successfully created
    [root@doc-07 ~]# pvcreate /dev/xvdc1
      Physical volume "/dev/xvdc1" successfully created
  7. 创建卷组。这个示例创建了由前一步创建的三个物理卷组成的卷组 vg001
    # vgcreate vg001 /dev/xvdb1 /dev/xvdb2 /dev/xvdc1
      Clustered volume group "vg001" successfully created
    请注意:vgcreate 命令的输出结果表示卷组是集群的。可以使用 vgs 命令确认卷组是集群的,该命令可显示卷组属性。如果卷组是集群的,它会显示 c 属性。
     vgs vg001
      VG       #PV #LV #SN Attr   VSize  VFree
      vg001      3   0   0 wz--nc 68.97G 68.97G
  8. 创建镜像逻辑卷。这个示例在卷组 vg001 中创建逻辑卷 mirrorlv。这个卷有一个镜像分支。这个示例指定使用物理卷的哪些扩展作为逻辑卷。
    # lvcreate --type mirror -l 1000 -m 1 vg001 -n mirrorlv /dev/xvdb1:1-1000 /dev/xvdb2:1-1000 /dev/xvdc1:0
      Logical volume "mirrorlv" created
    可以使用 lvs 命令显示创建镜像的过程。以下示例显示 47% 的镜像被同步,然后是 91%,当镜像完成时为 100%。
    # lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog     47.00
    [root@doc-07 log]# lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog     91.00   
    [root@doc-07 ~]#  lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog    100.00
    在系统日志中会记录镜像完成:
    May 10 14:52:52 doc-07 [19402]: Monitoring mirror device vg001-mirrorlv for events
    May 10 14:55:00 doc-07 lvm[19402]: vg001-mirrorlv is now in-sync
  9. 可以使用 lvs 命令的 -o +devices 选项显示镜像的配置,其中包括组成镜像分支的设备。可以看到在这个示例中逻辑卷是由两个线性映像和一个日志组成。
    # lvs -a -o +devices
      LV                  VG         Attr   LSize  Origin Snap%  Move Log           Copy%  Convert Devices                                  
      mirrorlv            vg001      mwi-a-  3.91G                    mirrorlv_mlog 100.00         mirrorlv_mimage_0(0),mirrorlv_mimage_1(0)
      [mirrorlv_mimage_0] vg001      iwi-ao  3.91G                                                 /dev/xvdb1(1)                            
      [mirrorlv_mimage_1] vg001      iwi-ao  3.91G                                                 /dev/xvdb2(1)                            
      [mirrorlv_mlog]     vg001      lwi-ao  4.00M                                                 /dev/xvdc1(0)
    可以使用 lvs 命令的 seg_pe_ranges 选项显示数据布局。可以使用这个选项验证您的布局是正确的冗余。这个命令的输出会显示 PE 范围,格式与 lvcreatelvresize 命令的输入格式相同。
    # lvs -a -o +seg_pe_ranges --segments
      PE Ranges                                      
      mirrorlv_mimage_0:0-999 mirrorlv_mimage_1:0-999
      /dev/xvdb1:1-1000                              
      /dev/xvdb2:1-1000                              
      /dev/xvdc1:0-0

注意

有关从 LVM 镜像卷的一个分支失败中恢复的详情请参考 第 6.3 节 “恢复 LVM 镜像错误”

为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。