5.5. 在集群中创建镜像 LVM 逻辑卷
在集群中创建镜像 LVM 逻辑卷需要与在具有片段类型为
mirror
的单个节点上创建镜像 LVM 逻辑卷的命令和流程相同。但是,要在集群中创建镜像 LVM 卷:
- 集群和集群镜像基础架构必须正在运行
- 集群必须是 quorate
lvm.conf
文件中的锁定类型必须正确设置以启用集群锁定,use_lvmetad
设置应该是 0。但请注意,在 Red Hat Enterprise Linux 7 中,ocf:heartbeat:clvm
Pacemaker 资源代理本身,作为启动过程的一部分执行这些任务。
在 Red Hat Enterprise Linux 7 中,集群通过 Pacemaker 进行管理。集群式 LVM 逻辑卷只在与 Pacemaker 集群一起使用才被支持,且必须配置为集群资源。
以下流程在集群中创建镜像 LVM 卷。
- 安装集群软件和 LVM 软件包,启动集群软件并创建集群。您必须为集群配置隔离。文档 High Availability Add-On 管理 提供了创建集群并为集群中节点配置隔离的示例步骤。文档 High Availability Add-On 参考 提供有关集群配置组件的更多详情。
- 要创建由集群中所有节点共享的镜像逻辑卷,必须在集群的每个节点中的
lvm.conf
文件中正确设置锁定类型。默认情况下,锁定类型被设置为 local。要更改它,在集群的每个节点中执行以下命令以启用群集式锁定:/sbin/lvmconf --enable-cluster
# /sbin/lvmconf --enable-cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 为集群设置
dlm
资源。作为克隆的资源创建资源,以便在集群中的每个节点上运行。pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true
# pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将
clvmd
配置为集群资源。与dlm
资源一样,您可以将资源创建为克隆的资源,以便它将在集群的每个节点上运行。请注意,您必须设置with_cmirrord=true
参数,以便在clvmd
运行的所有节点上启用 cmirrord 守护进程。pcs resource create clvmd ocf:heartbeat:clvm with_cmirrord=true op monitor interval=30s on-fail=fence clone interleave=true ordered=true
# pcs resource create clvmd ocf:heartbeat:clvm with_cmirrord=true op monitor interval=30s on-fail=fence clone interleave=true ordered=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您已经配置了clvmd
资源,但没有指定with_cmirrord=true
参数,您可以使用以下命令更新资源使其包含参数。pcs resource update clvmd with_cmirrord=true
# pcs resource update clvmd with_cmirrord=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 设置
clvmd
和dlm
依赖项并启动顺序。clvmd
必须在dlm
后启动,且必须在与dlm
相同的节点上运行。pcs constraint order start dlm-clone then clvmd-clone pcs constraint colocation add clvmd-clone with dlm-clone
# pcs constraint order start dlm-clone then clvmd-clone # pcs constraint colocation add clvmd-clone with dlm-clone
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 创建镜像。第一步是创建物理卷。以下命令创建三个物理卷。两个物理卷将用于镜像分支,第三个物理卷将包含镜像日志。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 创建卷组。这个示例创建了一个卷组
vg001
,它由上一步中创建的三个物理卷组成。vgcreate vg001 /dev/sdb1 /dev/sdc1 /dev/sdd1
# vgcreate vg001 /dev/sdb1 /dev/sdc1 /dev/sdd1 Clustered volume group "vg001" successfully created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,vgcreate
命令的输出表示卷组是集群的。您可以使用 vgs 命令验证卷组是否已集群,该命令将显示卷组的属性。如果卷组已群集,它将显示 c 属性。vgs vg001
# vgs vg001 VG #PV #LV #SN Attr VSize VFree vg001 3 0 0 wz--nc 68.97G 68.97G
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 创建镜像的逻辑卷。这个示例从卷组
vg001
创建逻辑卷mirrorlv
。这个卷有一个镜像分支。这个示例指定将哪个物理卷扩展用于逻辑卷。lvcreate --type mirror -l 1000 -m 1 vg001 -n mirrorlv /dev/sdb1:1-1000 /dev/sdc1:1-1000 /dev/sdd1:0
# lvcreate --type mirror -l 1000 -m 1 vg001 -n mirrorlv /dev/sdb1:1-1000 /dev/sdc1:1-1000 /dev/sdd1:0 Logical volume "mirrorlv" created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用 lvs 命令显示创建镜像的进度。以下示例显示,镜像为 47% 同步,然后同步 91%,然后在镜像完成时 100% 同步。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在系统日志中记录了镜像完成: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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 您可以使用带有 -o +devices 选项的 lvs 命令显示镜像的配置,包括构成镜像 leg 的设备。您可以看到此示例中的逻辑卷由两个线性镜像和一个日志组成。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用 lvs 的seg_pe_ranges
选项来显示数据布局。您可以使用这个选项验证您的布局是否正确冗余。此命令的输出以与 lvcreate 和 lvresize 命令采用的格式显示 PE 范围。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注意
有关从 LVM 镜像卷的一个分支失败时恢复的详情,请参考 第 6.2 节 “从 LVM 镜像故障中恢复”。