Pacemaker : GFS2 ファイルシステムを設定する2021/06/11 |
クラスターに GFS2 ファイルシステムを設定します。
+--------------------+ | [ ISCSI Target ] | | dlp.srv.world | +---------+----------+ 10.0.0.30| | +----------------------+ | +----------------------+ | [ Cluster Node#1 ] |10.0.0.51 | 10.0.0.52| [ Cluster Node#2 ] | | node01.srv.world +----------+----------+ node02.srv.world | | | | | +----------------------+ +----------------------+ |
[1] |
こちらを参考に、ISCSI ターゲット サーバーに共有ストレージを作成しておきます。
当例では、IQN (iSCSI Qualified Name) を [iqn.2021-06.world.srv:dlp.target03] として [10G] のストレージを設定しています。 |
[2] |
こちらを参考に、クラスターを構成する全ノードで、ISCSI ターゲット サーバーにログインしておきます。
(ログインまでで OK)
|
[3] | クラスターを構成する全ノードで、必要なパッケージをインストールして LVM の設定を変更します。 |
# [HighAvailability, ResilientStorage] リポジトリを有効にしてインストール (デフォルトは無効) [root@node01 ~]# dnf --enablerepo=ha,resilientstorage -y install lvm2-lockd gfs2-utils dlm
[root@node01 ~]#
vi /etc/lvm/lvm.conf # 1178行目 : 変更 use_lvmlockd = 1
|
[4] | クラスターのいずれかのノード上で、GFS2 ファイルシステムに必要な DLM リソースを設定します。 |
# GFS2 では [no-quorum-policy=freeze] [root@node01 ~]# pcs property set no-quorum-policy=freeze
# controld リソース作成 # [dlm] ⇒ 任意の名称 # [--group] ⇒ 任意のグループ名 [root@node01 ~]# pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence --group locking
# クラスター内の全ノードでリソースがアクティブになるよう [locking] のクローンを作成 [root@node01 ~]# pcs resource clone locking interleave=true
# lvmlockd リソース作成 # [lvmlockdd] ⇒ 任意の名称 # [--group] ⇒ controld リソースと同じグループ [root@node01 ~]# pcs resource create lvmlockdd ocf:heartbeat:lvmlockd op monitor interval=30s on-fail=fence --group locking
# ステータス確認 # 全て [Started] であれば OK [root@node01 ~]# pcs status --full Cluster name: ha_cluster Cluster Summary: * Stack: corosync * Current DC: node01.srv.world (1) (version 2.1.2-4.el8-ada5c3b36e2) - partition with quorum * Last updated: Wed Mar 9 15:25:26 2022 * Last change: Wed Mar 9 15:25:07 2022 by root via cibadmin on node01.srv.world * 2 nodes configured * 5 resource instances configured Node List: * Online: [ node01.srv.world (1) node02.srv.world (2) ] Full List of Resources: * scsi-shooter (stonith:fence_scsi): Started node01.srv.world * Clone Set: locking-clone [locking]: * Resource Group: locking:0: * dlm (ocf::pacemaker:controld): Started node01.srv.world * lvmlockdd (ocf::heartbeat:lvmlockd): Started node01.srv.world * Resource Group: locking:1: * dlm (ocf::pacemaker:controld): Started node02.srv.world * lvmlockdd (ocf::heartbeat:lvmlockd): Started node02.srv.world Migration Summary: Fencing History: * unfencing of node02.srv.world successful: delegate=node02.srv.world, client=pacemaker-controld.188120, origin=node02.srv.world, completed='2022-03-09 17:15:21 +09:00' * unfencing of node01.srv.world successful: delegate=node01.srv.world, client=pacemaker-controld.188120, origin=node02.srv.world, completed='2022-03-09 17:15:21 +09:00' Tickets: PCSD Status: node01.srv.world: Online node02.srv.world: Online Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled |
[5] | クラスターのいずれかのノード上で、共有ストレージ上に 共有ボリュームグループ を設定します。 下例の [sdb] は ISCSI ターゲット サーバーの共有ストレージです。 |
# 共有ストレージに LVM タイプをセット [root@node01 ~]# parted --script /dev/sdb "mklabel gpt" [root@node01 ~]# parted --script /dev/sdb "mkpart primary 0% 100%" [root@node01 ~]# parted --script /dev/sdb "set 1 lvm on"
# 物理ボリューム作成 [root@node01 ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created. # 共有ボリュームグループ作成 [root@node01 ~]# vgcreate --shared vg_gfs2 /dev/sdb1 Volume group "vg_gfs2" successfully created VG vg_gfs2 starting dlm lockspace Starting locking. Waiting until locks are ready... |
[6] | [5] で 共有ボリュームグループ を設定していない方のノード上で、共有ボリュームグループのロックマネージャーを起動します。 |
[root@node02 ~]# vgs VG #PV #LV #SN Attr VSize VFree cs 1 2 0 wz--n- <29.00g 0 vg_gfs2 1 0 0 wz--ns <9.98g <9.98g[root@node02 ~]# vgchange --lock-start vg_gfs2 VG vg_gfs2 starting dlm lockspace Starting locking. Waiting until locks are ready... |
[7] | 共有ボリュームグループを作成したノードに戻って、論理ボリュームを作成し GFS2 ファイルシステムを設定します。 |
# 論理ボリューム作成 [root@node01 ~]# lvcreate -l 100%FREE -n lv_gfs2 vg_gfs2 Logical volume "lv_gfs2" created. # GFS2 でフォーマット [root@node01 ~]# mkfs.gfs2 -j2 -p lock_dlm -t ha_cluster:gfs2-01 /dev/vg_gfs2/lv_gfs2
This will destroy any data on /dev/dm-2
Are you sure you want to proceed? [y/n] y
Discarding device contents (may take a while on large devices): Done
Adding journals: Done
Building resource groups: Done
Creating quota file: Done
Writing superblock and syncing: Done
Device: /dev/vg_gfs2/lv_gfs2
Block size: 4096
Device size: 9.98 GB (2615296 blocks)
Filesystem size: 9.98 GB (2615293 blocks)
Journals: 2
Journal size: 32MB
Resource groups: 42
Locking protocol: "lock_dlm"
Lock table: "ha_cluster:gfs2-01"
UUID: 599ad893-7251-4281-beee-fb02d1
# LVM-activate リソース作成 # [shared_lv] ⇒ 任意の名称 # [--group] ⇒ 任意のグループ名 [root@node01 ~]# pcs resource create shared_lv ocf:heartbeat:LVM-activate lvname=lv_gfs2 vgname=vg_gfs2 activation_mode=shared vg_access_mode=lvmlockd --group shared_vg
# [LVM-activate] リソースのクローンを作成 [root@node01 ~]# pcs resource clone shared_vg interleave=true
# [locking] → [shared_vg] の起動順序に設定 [root@node01 ~]# pcs constraint order start locking-clone then shared_vg-clone Adding locking-clone shared_vg-clone (kind: Mandatory) (Options: first-action=start then-action=start) # [shared_vg] と [locking] が同一ノードで起動するように設定 [root@node01 ~]# pcs constraint colocation add shared_vg-clone with locking-clone
# Filesystem リソース作成 # [shared_fs] ⇒ 任意の名称 # [device] ⇒ GFS2 でフォーマットしたデバイス # [directory] ⇒ GFS2 をマウントしたい任意のディレクトリ # [--group] ⇒ LVM-activate リソースと同じグループ [root@node01 ~]# pcs resource create shared_fs ocf:heartbeat:Filesystem device="/dev/vg_gfs2/lv_gfs2" directory="/home/gfs2-share" fstype="gfs2" options=noatime op monitor interval=10s on-fail=fence --group shared_vg
# ステータス確認 # 全て [Started] であれば OK [root@node01 ~]# pcs status --full Cluster name: ha_cluster Cluster Summary: * Stack: corosync * Current DC: node02.srv.world (2) (version 2.1.2-4.el8-ada5c3b36e2) - partition with quorum * Last updated: Wed Mar 9 17:24:51 2022 * Last change: Wed Mar 9 17:24:34 2022 by root via cibadmin on node01.srv.world * 2 nodes configured * 9 resource instances configured Node List: * Online: [ node01.srv.world (1) node02.srv.world (2) ] Full List of Resources: * scsi-shooter (stonith:fence_scsi): Started node01.srv.world * Clone Set: locking-clone [locking]: * Resource Group: locking:0: * dlm (ocf::pacemaker:controld): Started node01.srv.world * lvmlockdd (ocf::heartbeat:lvmlockd): Started node01.srv.world * Resource Group: locking:1: * dlm (ocf::pacemaker:controld): Started node02.srv.world * lvmlockdd (ocf::heartbeat:lvmlockd): Started node02.srv.world * Clone Set: shared_vg-clone [shared_vg]: * Resource Group: shared_vg:0: * shared_lv (ocf::heartbeat:LVM-activate): Started node01.srv.world * shared_fs (ocf::heartbeat:Filesystem): Started node01.srv.world * Resource Group: shared_vg:1: * shared_lv (ocf::heartbeat:LVM-activate): Started node02.srv.world * shared_fs (ocf::heartbeat:Filesystem): Started node02.srv.world Migration Summary: Fencing History: * unfencing of node02.srv.world successful: delegate=node02.srv.world, client=pacemaker-controld.188120, origin=node02.srv.world, completed='2022-03-09 17:15:21 +09:00' * unfencing of node01.srv.world successful: delegate=node01.srv.world, client=pacemaker-controld.188120, origin=node02.srv.world, completed='2022-03-09 17:15:21 +09:00' Tickets: PCSD Status: node01.srv.world: Online node02.srv.world: Online Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled # 両方のノードで設定したディレクトリに GFS2 ファイルシステムがマウントされていれば OK [root@node01 ~]# df -hT /home/gfs2-share Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg_gfs2-lv_gfs2 gfs2 10G 67M 10G 1% /home/gfs2-share[root@node02 ~]# df -hT /home/gfs2-share Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg_gfs2-lv_gfs2 gfs2 10G 67M 10G 1% /home/gfs2-share |
Sponsored Link |