Show Table of Contents
第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:heartbeat: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 cluster_vg /dev/vdb
#lvcreate -L5G -n cluster_lv cluster_vg
警告
CLVM を使用して共有ストレージ上にボリュームグループを作成する際には、クラスター内のすべてのノードが、ボリュームグループを構成する物理ボリュームに確実にアクセスできるようにする必要があります。ストレージにアクセスできるノードとできないノードが混在する、非対称型のクラスター構成はサポートされていません。複数のノードにわたるボリュームを同時に有効にできるようにするために、CLVMD を使用してボリュームグループを管理する場合は、そのボリュームグループでクラスター化フラグを有効している必要があります。このフラグにより、CLVMD は管理する必要のあるボリュームを識別できるようになり、CLVMD が LVM メタデータの連続性を維持することができるようになります。この設定を行わないと、Red Hat サポート対象外の環境となり、ストレージが破損したり、データが失われたりすることがあります。 - GFS2 ファイルシステムで論理ボリュームをフォーマットします。クラスター内の各ノードには必ず十分なジャーナルを作成してください。
#
mkfs.gfs2 -j2 -p lock_dlm -t rhel7-demo:gfs2-demo /dev/cluster_vg/cluster_lv
警告
GFS2 ファイルシステムを作成する場合は、-t LockTableName
オプションに対して正しい値を指定することが重要です。適切な形式は、ClusterName:FSName です。正しい値を指定しないと、ファイルシステムのマウントができなくなり、破損することがあります。mkfs.gfs2
コマンドのオプションの説明は、「ファイルシステムの作成」 を参照してください。 clusterfs
リソースを設定します。このファイルシステムは Pacemaker のクラスターリソースとして管理されるため、/etc/fstab
ファイルには追加しないでください。マウントオプションは、options=options
を使用してリソース設定の一部として指定できます。すべての設定オプションを確認する場合は、pcs resource describe Filesystem
コマンドを実行します。以下のクラスターリソース作成コマンドでは、noatime
マウントオプションが指定されています。#
pcs resource create clusterfs Filesystem device="/dev/cluster_vg/cluster_lv" directory="/var/mountpoint" 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 /mnt/gfs2-demo
/dev/mapper/cluster_vg-cluster_lv on /mnt/gfs2-demo type gfs2 (rw,noatime,seclabel)