4.2. GFS2 ファイルシステムでのクラスター化 LVM ボリュームの構成

このユースケースでは、クラスターのノード間で共有しているストレージにクラスター化 LVM 論理ボリュームを作成する必要があります。
本項では、クラスター化 LVM 論理ボリュームを GFS2 ファイルシステムでそのボリューム上に作成します。この例では /dev/vdb 共有パーティションを使って LVM 論理ボリュームの作成元となる LVM 物理ボリュームを格納します。

注記

LVM ボリューム、該当パーティション、クラスターノードで使用するデバイスなどはクラスターノード以外には接続しないでください。
この手順を始める前に、Resilient Storage チャンネルの lvm2-clustergfs2-utils パッケージをクラスターの両方のノードにインストールします。
# yum install lvm2-cluster gfs2-utils
/dev/vdb パーティションは共有させるストレージとなるため、この手順は 1 つのノードでのみ行います。
  1. グローバル Pacemaker パラメーターを no_quorum_policy から freeze に設定します。この設定により、クォーラムが失われるたびにクラスター全体にフェンシングが発生しなくなります。このポリシーの設定についての詳細は、『Global File System 2』 を参照してください。
    [root@z1 ~]# pcs property set no-quorum-policy=freeze
  2. dlm リソースを設定します。これは、clvmd サービスと GFS2 ファイルシステムに必要な依存関係です。
    [root@z1 ~]# pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true
  3. clvmd をクラスターリソースとしてセットアップします。
    [root@z1 ~]# pcs resource create clvmd ocf:heartbeat:clvm op monitor interval=30s on-fail=fence clone interleave=true ordered=true
    この開始手順の一環として、ocf:heartbeat:clvm リソースエージェントにより、/etc/lvm/lvm.conf ファイルの locking_type パラメーターが 3 に変更され、lvmetad デーモンが無効化されることに注意してください。
  4. clvmd および dlm の依存関係をセットアップし、順番に起動します。clvmd リソースは dlm の後に起動し、dlm と同じノードで実行する必要があります。
    [root@z1 ~]# pcs constraint order start dlm-clone then clvmd-clone
    Adding dlm-clone clvmd-clone (kind: Mandatory) (Options: first-action=start then-action=start)
    [root@z1 ~]# pcs constraint colocation add clvmd-clone with dlm-clone
  5. dlm および clvmd リソースが全てのノードで実行されていることを確認します。
    [root@z1 ~]# pcs status
    ...
    Full list of resources:
    ...
     Clone Set: dlm-clone [dlm]
         Started: [ z1 z2 ]
     Clone Set: clvmd-clone [clvmd]
         Started: [ z1 z2 ]
  6. クラスター化論理ボリュームの作成
    [root@z1 ~]# pvcreate /dev/vdb
    [root@z1 ~]# vgcreate -Ay -cy cluster_vg /dev/vdb
    [root@z1 ~]# lvcreate -L4G -n cluster_lv cluster_vg
  7. ボリュームが正しく作成されているかどうかを確認するには、論理ボリュームを表示する lvs コマンドを使用します。
    [root@z1 ~]# lvs
      LV         VG         Attr       LSize ...
      cluster_lv cluster_vg -wi-ao---- 4.00g
      ...
  8. GFS2 でボリュームをフォーマットします。この例では、my_cluster がクラスター名です。また、2 つのジャーナルを示すために -j 2 を指定しています。これは、ジャーナルの数が、クラスターのノードの数に一致する必要があるためです。
    [root@z1 ~]# mkfs.gfs2 -p lock_dlm -j 2 -t my_cluster:samba /dev/cluster_vg/cluster_lv
  9. ファイルシステムのマウントと管理を行うように Pacemaker を設定するための Filesystem リソースを作成します。この例では、fs という Filesystem リソースを作成し、両方のクラスターで /mnt/gfs2share を作成します。
    [root@z1 ~]# pcs resource create fs ocf:heartbeat:Filesystem device="/dev/cluster_vg/cluster_lv" directory="/mnt/gfs2share" fstype="gfs2" --clone
  10. GFS2 ファイルシステムと clvmd のサービスとの依存関係を構成し、順番に起動します。GFS2 は clvmd の後に起動し、clvmd と同じノードで実行する必要があります。
    [root@z1 ~]# pcs constraint order start clvmd-clone then fs-clone
    Adding clvmd-clone fs-clone (kind: Mandatory) (Options: first-action=start then-action=start)
    [root@z1 ~]# pcs constraint colocation add fs-clone with clvmd-clone
  11. 想定通りに GFS2 ファイルがマウントされていることを確認します。
    [root@z1 ~]# mount |grep /mnt/gfs2share
    /dev/mapper/cluster_vg-cluster_lv on /mnt/gfs2share type gfs2 (rw,noatime,seclabel)