第5章 クラスターでの GFS2 ファイルシステムの設定

以下に、GFS2 ファイルシステムを含むクラスターの設定に必要な手順の概要を示します。
クラスターソフトウェア、GFS2、および LVM パッケージのインストール後に、クラスターソフトウェアを起動し、クラスターを作成します。クラスターにはフェンシングを設定する必要があります。この作業後に、以下の手順を実行します。
  1. グローバル Pacemaker パラメーター no_quorum_policyfreeze に設定します。

    注記

    no-quorum-policy の値は、デフォルトでは stop に設定され、定足数を失うと、残りのパーティション上の全リソースが直ちに停止されます。一般的には、このデフォルト値が最も安全で最適なオプションですが、ほとんどのリソースとは異なり、GFS2 が正しく機能するには定足数が必要です。定足数を失うと、GFS2 マウントを使用しているアプリケーションと GFS2 マウント自体の両方が正しく停止できなくなります。定足数がないままこうしたリソースを停止しようとすると、停止に失敗し、最終的に定足数を失う度にクラスター全体がフェンシングされます。
    このような状況に対処するために、GFS2 を使用している場合は no-quorum-policy=freeze を設定できます。この場合は、定足数が失われると、定足数を取り戻すまで残りのパーティションで何の処理も行われなくなります。
    # pcs property set no-quorum-policy=freeze
  2. dlm リソースをセットアップします。これは、clvmd および GFS2 に必要な依存関係です。
    # pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true
  3. クラスター化ロックを有効にするために、クラスターの各ノードで以下のコマンドを実行します。このコマンドを実行すると、/etc/lvm/lvm.conf ファイルの locking_type パラメーターが 3 に設定されます。
    # /sbin/lvmconf --enable-cluster
  4. clvmd をクラスターリソースとしてセットアップします。
    # pcs resource create clvmd ocf:heartbeat:clvm op monitor interval=30s on-fail=fence clone interleave=true ordered=true
  5. clvmd および dlmの依存関係をセットアップし、順番に起動します。clvmddlm の後に起動し、dlm と同じノードで実行する必要があります。
    # pcs constraint order start dlm-clone then clvmd-clone
    # pcs constraint colocation add clvmd-clone with dlm-clone
  6. クラスター化論理ボリュームを作成し、そのボリュームを GFS2 ファイルシステムでフォーマットします。クラスター内の各ノードには必ず十分なジャーナルを作成してください。
    # pvcreate /dev/vdb
    # vgcreate -Ay -cy cluster_vg /dev/vdb
    # lvcreate -L5G -n cluster_lv cluster_vg
    # mkfs.gfs2 -j2 -p lock_dlm -t rhel7-demo:gfs2-demo /dev/cluster_vg/cluster_lv
  7. 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
  8. 予想どおり GFS2 がマウントされていることを確認します。
    # mount |grep /mnt/gfs2-demo
    /dev/mapper/cluster_vg-cluster_lv on /mnt/gfs2-demo type gfs2 (rw,noatime,seclabel)
  9. GFS2 と clvmd の依存関係をセットアップし、順番に起動します。GFS2 は clvmd の後に起動し、clvmd と同じノードで実行する必要があります。
    # pcs constraint order start clvmd-clone then clusterfs-clone
    # pcs constraint colocation add clusterfs-clone with clvmd-clone