8.2. クラスターでの暗号化 GFS2 ファイルシステムの設定
次の手順で、LUKS で暗号化した GFS2 ファイルシステムを含む Pacemaker クラスターを作成できます。この例では、論理ボリュームに 1 つの GFS2 ファイルシステムを作成し、そのファイルシステムを暗号化します。暗号化された GFS2 ファイルシステムは、LUKS 暗号化に対応する crypt リソースエージェントを使用してサポートされます。
この手順は、以下の 3 つの部分で設定されます。
- Pacemaker クラスター内で共有論理ボリュームを設定する
-
論理ボリュームを暗号化して
cryptリソースを作成する - GFS2 ファイルシステムで暗号化された論理ボリュームをフォーマットしてクラスター用のファイルシステムリソースを作成する
8.2.1. Pacemaker クラスター内での共有論理ボリュームの設定 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- 2 つのクラスターノードにクラスターソフトウェアをインストールして起動し、基本的な 2 ノードクラスターを作成している。
- クラスターのフェンシングを設定している。
Pacemaker クラスターの作成方法と、クラスターのフェンシングの設定方法については、Pacemaker を使用した Red Hat 高可用性クラスターの作成を 参照してください。
手順
クラスター内の両方のノードで、システムアーキテクチャーに対応する Resilient Storage のリポジトリーを有効にします。たとえば、x86_64 システムの Resilient Storage リポジトリーを有効にするには、以下の
subscription-managerコマンドを入力します。# subscription-manager repos --enable=rhel-9-for-x86_64-resilientstorage-rpmsResilient Storage リポジトリーは、High Availability リポジトリーのスーパーセットであることに注意してください。Resilient Storage リポジトリーを有効にする場合は、High Availability リポジトリーを有効にする必要はありません。
クラスターの両方のノードで、
lvm2-lockdパッケージ、gfs2-utilsパッケージ、およびdlmパッケージをインストールします。AppStream チャンネルおよび Resilient Storage チャンネルにサブスクライブして、これらのパッケージをサポートする必要があります。# dnf install lvm2-lockd gfs2-utils dlmクラスターの両方のノードで、
/etc/lvm/lvm.confファイルのuse_lvmlockd設定オプションをuse_lvmlockd=1に設定します。... use_lvmlockd = 1 ...グローバル Pacemaker パラメーター
no-quorum-policyをfreezeに設定します。注記デフォルトでは、
no-quorum-policyの値はstopに設定され、定足数が失われると、残りのパーティションのリソースがすべて即座に停止されます。通常、このデフォルト設定は最も安全なオプションで最適なおプションですが、ほとんどのリソースとは異なり、GFS2 が機能するにはクォーラムが必要です。クォーラムが失われると、GFS2 マウントを使用したアプリケーション、GFS2 マウント自体の両方が正しく停止できません。クォーラムなしでこれらのリソースを停止しようとすると失敗し、最終的にクォーラムが失われるたびにクラスター全体がフェンスされます。この状況に対処するには、GFS2 の使用時の
no-quorum-policyをfreezeに設定します。この設定では、クォーラムが失われると、クォーラムが回復するまで残りのパーティションは何もしません。[root@z1 ~]# pcs property set no-quorum-policy=freezedlmリソースをセットアップします。これは、クラスター内で GFS2 ファイルシステムを設定するために必要な依存関係です。この例では、dlmリソースを作成し、リソースグループlockingに追加します。[root@z1 ~]# pcs resource create dlm --group locking ocf:pacemaker:controld op monitor interval=30s on-fail=fenceリソースグループがクラスターの両方のノードでアクティブになるように、
lockingリソースグループのクローンを作成します。[root@z1 ~]# pcs resource clone locking interleave=truelvmlockdリソースを、lockingグループに追加します。[root@z1 ~]# pcs resource create lvmlockd --group locking ocf:heartbeat:lvmlockd op monitor interval=30s on-fail=fenceクラスターのステータスを確認し、クラスターの両方のノードで
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 ]クラスターの 1 つのノードで、共有ボリュームグループを作成します。
注記LVM ボリュームグループに、iSCSI ターゲットなど、リモートブロックストレージに存在する 1 つ以上の物理ボリュームが含まれている場合は、Red Hat は、Pacemaker が起動する前にサービスが開始されるように設定することを推奨します。Pacemaker クラスターで使用されるリモート物理ボリュームの起動順序の設定方法については、Pacemaker で管理されていないリソース依存関係の起動順序の設定を 参照してください。
以下のコマンドは、共有ボリュームグループ
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...クラスター内の 2 番目のノードで以下を実行します。
lvm.confファイルのuse_devicesfile = 1パラメーターでデバイスファイルの使用が有効になっている場合は、クラスター内の 2 番目のノードのデバイスファイルに共有デバイスを追加します。この機能はデフォルトで有効化されています。[root@z2 ~]# lvmdevices --adddev /dev/sda1共有ボリュームグループのロックマネージャーを起動します。
[root@z2 ~]# vgchange --lockstart shared_vg1 VG shared_vg1 starting dlm lockspace Starting locking. Waiting until locks are ready...
クラスター内の 1 つのノードで、共有論理ボリュームを作成します。
[root@z1 ~]# lvcreate --activate sy -L5G -n shared_lv1 shared_vg1 Logical volume "shared_lv1" created.すべてのノードで論理ボリュームを自動的にアクティブにするために、論理ボリュームに
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新しいリソースグループのクローンを作成します。
[root@z1 ~]# pcs resource clone shared_vg1 interleave=truedlmおよび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)コロケーション制約を設定して、
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