Show Table of Contents
5.5. 在集群中创建镜像 LVM 逻辑卷
在集群中创建镜像 LVM 逻辑卷与在单一节点中使用
mirror 片段类型创建镜像 LVM 逻辑卷所使用的命令和过程相同。但要在集群中创建镜像 LVM 逻辑卷,该集群和集群镜像必须处于运行状态,该集群必须可以仲裁,且必须在 lvm.conf 文件中正确设定锁定类型以便启用集群锁定,可以是直接锁定,也可以如 第 3.1 节 “在集群中创建 LVM 卷” 所述使用 lvmconf 命令锁定。
在 Red Hat Enterprise Linux 7 中使用 Pacermaker 管理集群。只有与 Pacemaker 集群联合使用方可支持集群的 LVM 逻辑卷,且必须将其配置为集群资源。
下面是在集群中创建镜像 LVM 卷的步骤。
- 安装集群软件及 LVM 软件包,启动该集群软件,并创建该集群。必须为该集群配置 fencing。文档《高可用附加组件管理》中提供了创建集群及为集群中的节点配置 fencing 的步骤示例。文档《高可用附加组件管理》还提供更多有关集群组件配置的详情。
- 要创建可为集群中所有节点共享的镜像逻辑卷,则必须在该集群每个节点的
lvm.conf文件中正确设定锁定类型。默认情况下是将锁定类型设定为 local。要更改这个设置,请在集群的每个节点中执行以下命令启用集群的锁定:#
/sbin/lvmconf --enable-cluster - 为集群设定
dlm资源。将该资源作为克隆的资源创建,以便其可在该集群的每个节点中运行。#
pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true - 将
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 - 设定
clvmd和dlm相依性及启动顺序。必须在dlm之后启动clvmd,且必须在dlm所在的同一节点中运行。#
pcs constraint order start dlm-clone then clvmd-clone#pcs constraint colocation add clvmd-clone with dlm-clone - 创建镜像。第一步是创建物理卷。下面的命令创建三个物理卷,其中两个物理卷将作为镜像的分支,第三个物理卷将包含镜像日志。
#
pvcreate /dev/xvdb1Physical volume "/dev/xvdb1" successfully created [root@doc-07 ~]#pvcreate /dev/xvdb2Physical volume "/dev/xvdb2" successfully created [root@doc-07 ~]#pvcreate /dev/xvdc1Physical volume "/dev/xvdc1" successfully created - 创建卷组。这个示例创建了由前一步创建的三个物理卷组成的卷组
vg001。#
vgcreate vg001 /dev/xvdb1 /dev/xvdb2 /dev/xvdc1Clustered volume group "vg001" successfully created请注意:vgcreate命令的输出结果表示卷组是集群的。可以使用vgs命令确认卷组是集群的,该命令可显示卷组属性。如果卷组是集群的,它会显示 c 属性。vgs vg001VG #PV #LV #SN Attr VSize VFree vg001 3 0 0 wz--nc 68.97G 68.97G - 创建镜像逻辑卷。这个示例在卷组
vg001中创建逻辑卷mirrorlv。这个卷有一个镜像分支。这个示例指定使用物理卷的哪些扩展作为逻辑卷。#
lvcreate --type mirror -l 1000 -m 1 vg001 -n mirrorlv /dev/xvdb1:1-1000 /dev/xvdb2:1-1000 /dev/xvdc1:0Logical volume "mirrorlv" created可以使用lvs命令显示创建镜像的过程。以下示例显示 47% 的镜像被同步,然后是 91%,当镜像完成时为 100%。#
lvs vg001/mirrorlvLV 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/mirrorlvLV VG Attr LSize Origin Snap% Move Log Copy% Convert mirrorlv vg001 mwi-a- 3.91G vg001_mlog 91.00 [root@doc-07 ~]#lvs vg001/mirrorlvLV 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
- 可以使用
lvs命令的-o +devices选项显示镜像的配置,其中包括组成镜像分支的设备。可以看到在这个示例中逻辑卷是由两个线性映像和一个日志组成。#
lvs -a -o +devicesLV 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 范围,格式与lvcreate和lvresize命令的输入格式相同。#
lvs -a -o +seg_pe_ranges --segmentsPE 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 镜像错误”。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.