Red Hat Training

A Red Hat training course is available for RHEL 8

7.2. クラスターでの暗号化 GFS2 ファイルシステムの設定 (RHEL 8.4 以降)

この手順では、LUKS で暗号化した GFS2 ファイルシステムを含む Pacemaker クラスターを作成します。この例では、論理ボリュームに GFS2 ファイルシステムを作成し、そのファイルシステムを暗号化します。暗号化された GFS2 ファイルシステムは、LUKS 暗号化に対応する crypt リソースエージェントを使用してサポートされます。

この手順は、以下の 3 つの部分で構成されます。

  • Pacemaker クラスター内で共有論理ボリュームを設定する
  • 論理ボリュームを暗号化して crypt リソースを作成する
  • GFS2 ファイルシステムで暗号化された論理ボリュームをフォーマットしてクラスター用のファイルシステムリソースを作成する

7.2.1. Pacemaker クラスター内での共有論理ボリュームの設定

前提条件

  • すべてのノードでクラスターソフトウェアをインストールし、起動し、基本的な 2 ノードクラスターを作成している。
  • クラスターのフェンシングを設定している。

Pacemaker クラスターの作成およびクラスターのフェンシングの設定情報は「Pacemaker を使用した Red Hat High Availability クラスターの作成」を参照してください。

手順

  1. クラスターの両方のノードで、lvm2-lockd パッケージ、gfs2-utils パッケージ、および dlm パッケージをインストールします。AppStream チャンネルおよび Resilient Storage チャンネルにサブスクライブして、これらのパッケージをサポートする必要があります。

    # yum install lvm2-lockd gfs2-utils dlm
  2. グローバル Pacemaker パラメーター no-quorum-policyfreeze に設定します。

    注記

    デフォルトでは、no-quorum-policy の値は stop に設定され、定足数が失われると、残りのパーティションのリソースがすべて即座に停止されます。通常、このデフォルトは最も安全なオプションですが、ほとんどのリソースとは異なり、GFS2 ではクォーラムが機能する必要があります。GFS2 マウントを使用すると両方のアプリケーションでクォーラム (定足数) が失われ、GFS2 マウント自体が正しく停止できません。クォーラムなしでこれらのリソースの停止を試みると、クォーラムが失われるたびにクラスター全体がフェンシングされます。

    この状況に対処するには、GFS2 を使用している場合は no-quorum-policyフリーズ に設定します。つまり、クォーラムが失われると、クォーラムが回復するまで残りのパーティションで何も実行されません。

    # 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. リソースグループがクラスターの両方のノードでアクティブになるように、locking リソースグループのクローンを作成します。

    [root@z1 ~]# pcs resource clone locking interleave=true
  5. lvmlockd リソースを、locking グループに追加します。

    [root@z1 ~]# pcs resource create lvmlockd --group locking ocf:heartbeat:lvmlockd op monitor interval=30s on-fail=fence
  6. クラスターのステータスを確認し、クラスターの両方のノードで locking リソースグループが起動していることを確認します。

    [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. クラスターの 1 つのノードで、共有ボリュームグループを作成します。

    以下のコマンドは、共有ボリュームグループ shared_vg1/dev/sda1 に作成します。

    [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. クラスター内の 2 番目のノードで、共有ボリュームグループのロックマネージャーを起動します。

    [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. クラスター内の 1 つのノードで、共有論理ボリュームを作成します。

    [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. dlm および lvmlockd リソースを含む locking リソースグループが最初に起動するように、順序の制約を設定します。

    [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. コロケーション制約を設定して、vg1 および vg2 のリソースグループが locking リソースグループと同じノードで起動するようにします。

    [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