Red Hat Training

A Red Hat training course is available for RHEL 8

7.2. 在集群中配置加密的 GFS2 文件系统(RHEL 8.4 及更新的版本)

这个过程创建一个 Pacemaker 集群,其中包含 LUKS 加密的 GFS2 文件系统。这个示例在逻辑卷中创建了一个 GFS2 文件系统并加密文件系统。使用 crypt 资源代理支持加密的 GFS2 文件系统,该代理提供对 LUKS 加密的支持。

此流程有三个部分:

  • 在 Pacemaker 集群中配置共享逻辑卷
  • 加密逻辑卷并创建 加密 资源
  • 使用 GFS2 文件系统格式化加密逻辑卷并为集群创建文件系统资源

7.2.1. 在 Pacemaker 集群中配置共享逻辑卷

先决条件

  • 在所有节点上安装并启动群集软件,并创建一个基本的双节点群集。
  • 为群集配置隔离。

有关创建 Pacemaker 集群并为集群配置隔离的详情,请参考使用 Pacemaker 创建红帽高可用性集群

流程

  1. 在群集的两个节点上,安装 lvm2-lockdgfs2-utilsdlm 软件包。要支持这些软件包,您必须订阅 AppStream 频道和 Resilient Storage 频道。

    # yum install lvm2-lockd gfs2-utils dlm
  2. 将全局 Pacemaker 参数 no-quorum-policy 设置为 冻结

    注意

    默认情况下,no -quorum-policy 的值被设置为 stop,这表示一旦 quorum 丢失,剩余分区上的所有资源都会立即停止。通常,这个默认行为是最安全、最优的选项,但与大多数资源不同,GFS2 要求使用 quorum 才可以正常工作。当使用 GFS2 挂载的应用程序和 GFS2 挂载都丢失时,就无法正确停止 GFS2 挂载。任何在没有 quorum 的情况下停止这些资源的尝试都会失败,并最终会在每次 quorum 都丢失时保护整个集群。

    要解决这个问题,请在使用 GFS2 时将 no-quorum-policy 设置为 冻结。这意味着,当 quorum 丢失时,剩余的分区将不会进行任何操作,直到 quorum 功能被恢复。

    # pcs property set no-quorum-policy=freeze
  3. 设置 dlm 资源。这是在集群中配置 GFS2 文件系统所需的依赖软件包。本例创建 dlm 资源作为名为 locking 的资源组的一部分。

    [root@z1 ~]# pcs resource create dlm --group locking ocf:pacemaker:controld op monitor interval=30s on-fail=fence
  4. 克隆 锁定 资源组,以便资源组可以在集群的两个节点上都活跃。

    [root@z1 ~]# pcs resource clone locking interleave=true
  5. lvmlockd 资源设置为组 锁定 的一部分。

    [root@z1 ~]# pcs resource create lvmlockd --group locking ocf:heartbeat:lvmlockd op monitor interval=30s on-fail=fence
  6. 检查集群的状态,以确保在集群的两个节点上启动了 锁定 资源组。

    [root@z1 ~]# pcs status --full
    Cluster name: my_cluster
    [...]
    
    Online: [ z1.example.com (1) z2.example.com (2) ]
    
    Full list of resources:
    
     smoke-apc      (stonith:fence_apc):    Started z1.example.com
     Clone Set: locking-clone [locking]
         Resource Group: locking:0
             dlm    (ocf::pacemaker:controld):      Started z1.example.com
             lvmlockd       (ocf::heartbeat:lvmlockd):      Started z1.example.com
         Resource Group: locking:1
             dlm    (ocf::pacemaker:controld):      Started z2.example.com
             lvmlockd       (ocf::heartbeat:lvmlockd):      Started z2.example.com
         Started: [ z1.example.com z2.example.com ]
  7. 在集群的一个节点中创建一个共享卷组。

    以下命令在 /dev/sda 1 上创建共享卷组 shared_vg 1

    [root@z1 ~]# vgcreate --shared shared_vg1 /dev/sda1
      Physical volume "/dev/sda1" successfully created.
      Volume group "shared_vg1" successfully created
      VG shared_vg1 starting dlm lockspace
      Starting locking.  Waiting until locks are ready...
  8. 在集群的第二个节点中,启动共享卷组的锁定管理器。

    [root@z2 ~]# vgchange --lock-start shared_vg1
      VG shared_vg1 starting dlm lockspace
      Starting locking.  Waiting until locks are ready...
    [root@z2 ~]# vgchange --lock-start shared_vg2
      VG shared_vg2 starting dlm lockspace
      Starting locking.  Waiting until locks are ready...
  9. 在集群的一个节点中,创建共享逻辑卷。

    [root@z1 ~]# lvcreate --activate sy -L5G -n shared_lv1 shared_vg1
      Logical volume "shared_lv1" created.
  10. 为逻辑卷创建一个 LVM 激活资源,以便在所有节点上自动激活逻辑卷。

    以下命令在卷组 shared_ vg1 中为逻辑卷 shared _lv1 创建名为 sharedlv1 的 LVM 激活资源此命令还会创建包含该资源的资源组 shared_vg1。在这个示例中,资源组的名称与包含逻辑卷的共享卷组的名称相同。

    [root@z1 ~]# pcs resource create sharedlv1 --group shared_vg1 ocf:heartbeat:LVM-activate lvname=shared_lv1 vgname=shared_vg1 activation_mode=shared vg_access_mode=lvmlockd
  11. 克隆新资源组。

    [root@z1 ~]# pcs resource clone shared_vg1 interleave=true
  12. 配置排序限制,以确保首先启动包含 dlmlvmlockd 资源的 锁定 资源组。

    [root@z1 ~]# pcs constraint order start locking-clone then shared_vg1-clone
    Adding locking-clone shared_vg1-clone (kind: Mandatory) (Options: first-action=start then-action=start)
  13. 配置共存限制,以确保 vg1vg2 资源组在与 锁定 资源组相同的节点上启动。

    [root@z1 ~]# pcs constraint colocation add shared_vg1-clone with locking-clone

验证步骤

在集群的两个节点上,验证逻辑卷是否活跃。这可能会延迟几秒钟。

[root@z1 ~]# lvs
  LV         VG          Attr       LSize
  shared_lv1 shared_vg1  -wi-a----- 5.00g

[root@z2 ~]# lvs
  LV         VG          Attr       LSize
  shared_lv1 shared_vg1  -wi-a----- 5.00g