第5章 クラスターでの GFS2 ファイルシステムの設定
以下に、GFS2 ファイルシステムを含む Pacemaker クラスターの設定に必要な手順の概要を示します。
すべてのノードでのクラスターソフトウェアのインストールと起動が完了した後でクラスターを作成します。クラスターにはフェンスを設定する必要があります。Pacemaker クラスターの作成とクラスターのフェンシングの設定は、High Availability Add-On の管理 の Creating a Red Hat High-Availability Cluster with Pacemakerを参照してください。その後は、以下の手順を実行します。
- クラスターのすべてのノードで、Resilient Storage チャンネルから
lvm2-cluster
とgfs2-utils
パッケージをインストールします。#
yum install lvm2-cluster gfs2-utils
- グローバル Pacemaker パラメーター
no_quorum_policy
をfreeze
に設定します。注記デフォルトでは、no-quorum-policy
の値はstop
に設定されます。クォーラムが失われると、残りのパーティションのリソースがすべてすぐに停止します。通常、このデフォルト設定は最も安全なオプションで最適なおプションですが、ほとんどのリソースとは異なり、GFS2 が機能するにはクォーラムが必要です。クォーラムが失われると、GFS2 マウントを使用したアプリケーション、GFS2 マウント自体の両方が正しく停止できません。クォーラムなしでこれらのリソースを停止しようとすると失敗し、最終的にクォーラムが失われるたびにクラスター全体がフェンスされます。この状況に対処するには、GFS2 の使用時のno-quorum-policy
をfreeze
に設定します。この設定では、クォーラムが失われると、クォーラムが回復するまで残りのパーティションは何もしません。#
pcs property set no-quorum-policy=freeze
dlm
リソースをセットアップします。これは、clvmd
および GFS2 に必要な依存関係です。#
pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true
- クラスター化ロックを有効にするために、クラスターの各ノードで以下のコマンドを実行します。このコマンドを実行すると、
/etc/lvm/lvm.conf
ファイルのlocking_type
パラメーターが 3 に設定されます。#
/sbin/lvmconf --enable-cluster
clvmd
をクラスターリソースとしてセットアップします。#
pcs resource create clvmd ocf:heartbeat:clvm op monitor interval=30s on-fail=fence clone interleave=true ordered=true
clvmd
とcmirrord
は、ocf:heartbeat:clvm
リソースエージェントを使用して Pacemaker で起動と管理を行うことに注意してください。また、systemd
で起動中には、起動する必要はありません。さらに、起動手順の一部としてocf:odbc:clvm リソース
エージェントでは、/etc/lvm/lvm.conf
ファイルのlocking_type
パラメーターを 3 に設定し、lvmetad
デーモンを無効にします。clvmd
およびdlm
の依存関係をセットアップし、順番に起動します。clvmd
はdlm
の後に起動し、dlm
と同じノードで実行する必要があります。#
pcs constraint order start dlm-clone then clvmd-clone
#pcs constraint colocation add clvmd-clone with dlm-clone
- クラスター化論理ボリュームを作成します。
#
pvcreate /dev/vdb
#vgcreate -Ay -cy sasbin_vg /dev/vdb
#lvcreate -L5G -n sasbin_lv sasbin_vg
警告CLVM を使用して共有ストレージ上にボリュームグループを作成する際には、クラスター内のすべてのノードが、ボリュームグループを設定する物理ボリュームに確実にアクセスできるようにする必要があります。ストレージにアクセスできるノードとできないノードが混在する、非対称型のクラスター設定はサポートされていません。複数のノードにわたるボリュームを同時に有効にできるようにするために、CLVMD を使用してボリュームグループを管理する場合は、そのボリュームグループでクラスター化フラグを有効している必要があります。このフラグにより、CLVMD は管理する必要のあるボリュームを識別できるようになり、CLVMD が LVM メタデータの連続性を維持することができるようになります。この設定を行わないと、Red Hat サポート対象外の環境となり、ストレージが破損したり、データが失われたりすることがあります。 - GFS2 ファイルシステムで論理ボリュームをフォーマットします。ファイルシステムをマウントするノードごとに、ジャーナルが 1 つ必要になります。クラスター内の各ノードに十分なジャーナルを作成してください。
#
mkfs.gfs2 -j2 -p lock_dlm -t rhel7-demo:sasbin /dev/sasbin_vg/sasbin_lv
警告GFS2 ファイルシステムを作成する場合は、-t LockTableName オプションに対して正しい値を指定することが重要です。適切な形式は、ClusterName:FSName です。正しい値を指定しないと、ファイルシステムをマウントできなくなります。また、ファイルシステムの名前は固有である必要があります。mkfs.gfs2 コマンドのオプションの説明は、「GFS2 ファイルシステムの作成」 を参照してください。 clusterfs
リソースを設定します。このファイルシステムは Pacemaker のクラスターリソースとして管理されるため、/etc/fstab
ファイルには追加しないでください。マウントオプションは、options=options
を使用してリソース設定の一部として指定できます。すべての設定オプションを確認する場合は、pcs resource describe Filesystem コマンドを実行します。このクラスターリソースの作成コマンドは、noatime
マウントオプションを指定します。これは、アプリケーションが許可する GFS2 ファイルシステムで推奨されます。この例では、ファイルシステムの名前はマウントポイントと同じです。これは必須ではありませんが、ファイルシステムに問題が発生した場合のトラブルシューティングに役立つように、ファイルシステム名を実際の使用またはマウントポイントに関連付けることが推奨されます。#
# pcs resource create clusterfs Filesystem device="/dev/sasbin_vg/sasbin_lv" directory="/usr/local/sasbin" fstype="gfs2" options="noatime" op monitor interval=10s on-fail=fence clone interleave=true
- GFS2 と
clvmd
の依存関係をセットアップし、順番に起動します。GFS2 はclvmd
の後に起動し、clvmd
と同じノードで実行する必要があります。#
pcs constraint order start clvmd-clone then clusterfs-clone
#pcs constraint colocation add clusterfs-clone with clvmd-clone
- 予想どおり GFS2 がマウントされていることを確認します。
#
mount |grep sas
/dev/mapper/sasbin_vg-sasbin_lv on /usr/local/sasbin type gfs2 (rw,noatime,seclabel)