OndrejHome.ha-cluster-lvm
ha-cluster-lvm
这是一个用于在 Pacemaker 集群中启用高度可用 LVM(HA-LVM)配置的角色。该角色也可以为标记和 clvm 变体创建逻辑卷(LV)和卷组(VG),请参阅示例了解如何操作。
与 rgmanager 相关的代码已从该角色中移除并转移到一个独立角色 - ondrejhome.ha_cluster_lvm_rgmanager。
要求
RHEL:预期机器已注册并订阅了“高可用性”或“弹性存储”频道。
角色变量
HA-LVM 的类型:
- (EL6, EL7)可选项为“tagging”或“clvm”
- (EL8, EL9)可选项为“systemid”或“lvmlockd”
- 默认值为“tagging”
HALVMtype: 'tagging'
(可选)- 仅在选择“tagging”模式时应用。应包括在“volume_list”中的 VG 列表,除此之外还包括根文件系统所在的 VG。默认情况下,此列表为空,下面的示例展示了如何指定 VG 列表。
local_vg_list: [ 'vg1', 'vg2' ]
(仅限 RHEL)启用包含所需软件包的仓库:
- 在 RHEL6 中启用
rhel-rs-for-rhel-6-server-rpms
- 在 RHEL7 中启用
rhel-rs-for-rhel-7-server-rpms
- 在 RHEL8 中启用
rhel-8-for-x86_64-resilientstorage-rpms
- 在 RHEL9 中启用
rhel-9-for-x86_64-resilientstorage-rpms
enable_repos: true
- 在 RHEL6 中启用
(仅限 RHEL)启用包含所需软件包的扩展更新(EUS)仓库:
- 在 RHEL6 中启用
rhel-rs-for-rhel-6-server-eus-rpms
- 在 RHEL7 中启用
rhel-rs-for-rhel-7-server-eus-rpms
- 在 RHEL8 中启用
rhel-8-for-x86_64-resilientstorage-eus-rpms
- 在 RHEL9 中启用
rhel-9-for-x86_64-resilientstorage-eus-rpms
enable_eus_repos: false
- 在 RHEL6 中启用
示例剧本
用于标记 HA-LVM 的示例剧本。
- hosts: servers
roles:
- { role: 'ondrejhome.ha-cluster-lvm' }
用于标记 HA-LVM 的示例剧本,额外的本地 VG 名称为 'vg_local'。
- hosts: servers
roles:
- { role: 'ondrejhome.ha-cluster-lvm', local_vg_list: [ 'vg_local' ] }
用于 clvm 变体的 HA-LVM 示例剧本。
- hosts: servers
roles:
- { role: 'ondrejhome.ha-cluster-lvm', HALVMtype: 'clvm' }
用于 systemid 变体的 HA-LVM 示例剧本。
- hosts: servers
roles:
- { role: 'ondrejhome.ha-cluster-lvm', HALVMtype: 'systemid' }
用于 lvmlockd 变体的 HA-LVM 示例剧本。
- hosts: servers
roles:
- { role: 'ondrejhome.ha-cluster-lvm', HALVMtype: 'lvmlockd' }
一个示例剧本,标记变体有一个 VG 和一个在整个 VG 上的 LV。
- hosts: servers
vars:
tagging_vgs:
- name: 'vg_shared'
pvs: '/dev/sdb'
lvs:
- name: 'lv_name5'
size: '200M'
roles:
- { role: 'ondrejhome.ha-cluster-lvm' }
结合了 clvm 变体和 tagging 变体的示例剧本,并创建了用于集群和标记 VG 的 VGs/LVs。
- hosts: servers
vars:
local_vg_list:
- 'vg_clvm'
clvm_vgs:
- name: 'vg_clvm'
pvs: '/dev/sdb2'
lvs:
- name: 'lv_name1'
size: '200M'
- name: 'lv_name2'
size: '100M'
tagging_vgs:
- name: 'vg_shared'
pvs: '/dev/sdb1'
lvs:
- name: 'lv_name3'
size: '200M'
- name: 'lv_name4'
size: '100M'
roles:
- { role: 'ondrejhome.ha-cluster-lvm', HALVMtype: 'clvm' }
具有一个 VG 和一个在整个 VG 上的 LV 的 systemid 变体示例剧本。
- hosts: servers
vars:
systemid_vgs:
- name: 'vg_systemid'
pvs: '/dev/sdb'
lvs:
- name: 'lv_name5'
size: '200M'
roles:
- { role: 'ondrejhome.ha-cluster-lvm', HALVMtype: 'systemid' }
具有一个 VG 和一个在整个 VG 上的 LV 的 lvmlockd 变体示例剧本。
- hosts: servers
vars:
lvmlockd_vgs:
- name: 'vg_lvmlockd'
pvs: '/dev/sdb'
lvs:
- name: 'lv_name6'
size: '200M'
roles:
- { role: 'ondrejhome.ha-cluster-lvm', HALVMtype: 'lvmlockd' }
许可证
GPLv3
作者信息
此角色在有限数量的平台上进行了手动测试,可能无法覆盖所有边界情况。
- 2022-09 测试于:RHEL 8.2/8.6/9.0、AlmaLinux 8.6/9.0 使用 systemid 方法
- 2022-10 测试于:CentOS 6.10、RHEL 6.10 使用 tagging 和 clvm 方法
要与作者联系,可以使用电子邮件 ondrej-xa2iel8u@famera.cz 或在 GitHub 上创建一个问题以请求某个功能。
Setup HA-LVM (tagging/clvmd/systemid/lvmlockd) on pacemaker cluster on EL6/7/8/9
ansible-galaxy install OndrejHome.ha-cluster-lvm