Pacemaker : CLVM + GFS22015/07/08 |
CLVM + GFS2 による共有ストレージを利用したクラスター環境の設定です。
ここでは例として、以下のようなクラスター環境を構築します。 +--------------------+ | [ Shared Storage ] | | ISCSI Target | +---------+----------+ 10.0.0.30| | +----------------------+ | +----------------------+ | [ Node01 ] |10.0.0.51 | 10.0.0.52| [ Node02 ] | | node01.srv.world +----------+----------+ node02.srv.world | | CLVM | | CLVM | +----------------------+ +----------------------+ |
[1] | |
[2] |
こちらを参考に、共有ストレージとするサーバーにストレージを作成しておきます。
ストレージは、通常のデータ共有用とフェンスデバイス用の 2デバイスを準備します。
当例では、データ共有に iqn.2015-07.world.srv:storage.target01 を 20G,
フェンスデバイスに iqn.2015-07.world.srv:fence.target00 を1G で作成しています。
さらにクラスターの各ノードがアクセスできるよう両デバイスに ACL を設定しています。
|
[3] |
こちらを参考に、クラスターの全ノードで ISCSI イニシエーターとしての設定を実施しておきます。
設定はターゲットへのログインまでで、ストレージサーバーからのデータ共有用デバイスとフェンスデバイスが認識できれば OK です。 |
[4] | クラスターの全ノードに追加で必要なパッケージをインストールします。 |
[root@node01 ~]#
[root@node01 ~]# yum -y install fence-agents-all lvm2-cluster gfs2-utils lvmconf --enable-cluster [root@node01 ~]# reboot |
[5] | フェンスデバイスを設定します。いずれかのノード上で設定すれば OK です。 なお、以下で設定している /dev/sda はストレージサーバーから提供されているフェンスデバイス用ディスクを指定しています。 |
# フェンスデバイス用ディスク確認 (当例では sda に割り当てられている) [root@node01 ~]# cat /proc/partitions major minor #blocks name ..... ..... 253 2 1048576 dm-2 8 0 1048576 sda 8 16 20971520 sdb # ディスクの ID を確認 [root@node01 ~]# ll /dev/disk/by-id | grep sda lrwxrwxrwx 1 root root 9 Jul 10 11:44 scsi-36001405189b893893594dffb3a2cb3e9 -> ../../sda lrwxrwxrwx 1 root root 9 Jul 10 11:44 wwn-0x6001405189b893893594dffb3a2cb3e9 -> ../../sda
[root@node01 ~]#
[root@node01 ~]# pcs stonith create scsi-shooter fence_scsi devices=/dev/disk/by-id/wwn-0x6001405189b893893594dffb3a2cb3e9 meta provides=unfencing
pcs property set no-quorum-policy=freeze [root@node01 ~]# pcs stonith show scsi-shooter Resource: scsi-shooter (class=stonith type=fence_scsi) Attributes: devices=/dev/disk/by-id/wwn-0x6001405189b893893594dffb3a2cb3e9 Meta Attrs: provides=unfencing Operations: monitor interval=60s (scsi-shooter-monitor-interval-60s) |
[6] | 必要なリソースを追加します。いずれかのノード上で設定すれば OK です。 |
[root@node01 ~]# pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true [root@node01 ~]# pcs resource create clvmd ocf:heartbeat:clvm op monitor interval=30s on-fail=fence clone interleave=true ordered=true [root@node01 ~]# pcs constraint order start dlm-clone then clvmd-clone Adding dlm-clone clvmd-clone (kind: Mandatory) (Options: first-action=start then-action=start) [root@node01 ~]# pcs constraint colocation add clvmd-clone with dlm-clone [root@node01 ~]# pcs status resources Clone Set: dlm-clone [dlm] Started: [ node01.srv.world node02.srv.world ] Clone Set: clvmd-clone [clvmd] Started: [ node01.srv.world node02.srv.world ] |
[7] | 共有ストレージ用のデバイスにボリュームを作成し、GFS2 ファイルシステムでフォーマットします。いずれかのノード上で設定すれば OK です。 当例の場合、事前に sdb として認識されている共有ストレージ用デバイスに fdisk で パーティションを作成し、パーティションタイプを LVM に設定しています。 |
[root@node01 ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created # クラスター用ボリュームグループ作成 [root@node01 ~]# vgcreate -cy vg_cluster /dev/sdb1 Clustered volume group "vg_cluster" successfully created [root@node01 ~]# lvcreate -l100%FREE -n lv_cluster vg_cluster Logical volume "lv_cluster" created. [root@node01 ~]# mkfs.gfs2 -p lock_dlm -t ha_cluster:gfs2 -j 2 /dev/vg_cluster/lv_cluster /dev/vg_cluster/lv_cluster is a symbolic link to /dev/dm-3 This will destroy any data on /dev/dm-3 Are you sure you want to proceed? [y/n] y Device: /dev/vg_cluster/lv_cluster Block size: 4096 Device size: 0.99 GB (260096 blocks) Filesystem size: 0.99 GB (260092 blocks) Journals: 2 Resource groups: 5 Locking protocol: "lock_dlm" Lock table: "ha_cluster:gfs2" UUID: cdda1b15-8c57-67a1-481f-4ad3bbeb1b2f |
[8] | 共有ストレージをリソースに追加します。いずれかのノード上で設定すれば OK です。 |
[root@node01 ~]#
[root@node01 ~]# pcs resource create fs_gfs2 Filesystem \
device="/dev/vg_cluster/lv_cluster" directory="/mnt" fstype="gfs2" \ options="noatime,nodiratime" op monitor interval=10s on-fail=fence clone interleave=true pcs resource show Clone Set: dlm-clone [dlm] Started: [ node01.srv.world ] Stopped: [ node02.srv.world ] Clone Set: clvmd-clone [clvmd] Started: [ node01.srv.world ] Stopped: [ node02.srv.world ] Clone Set: fs_gfs2-clone [fs_gfs2] Started: [ node01.srv.world ][root@node01 ~]# pcs constraint order start clvmd-clone then fs_gfs2-clone Adding clvmd-clone fs_gfs2-clone (kind: Mandatory) (Options: first-action=start then-action=start) [root@node01 ~]# pcs constraint colocation add fs_gfs2-clone with clvmd-clone [root@node01 ~]# pcs constraint show Location Constraints: Ordering Constraints: start dlm-clone then start clvmd-clone (kind:Mandatory) start clvmd-clone then start fs_gfs2-clone (kind:Mandatory) Colocation Constraints: clvmd-clone with dlm-clone (score:INFINITY) fs_gfs2-clone with clvmd-clone (score:INFINITY) |
[9] | 以上で設定完了です。アクティブノード側で以下のように設定したデバイスが GFS2 でマウントされているか、アクティブノードをダウンさせるとマウントが別ノードに正常に切り替わるか 等々を確認しておきます。 |
[root@node01 ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 27G 1.1G 26G 4% / devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev tmpfs tmpfs 2.0G 76M 1.9G 4% /dev/shm tmpfs tmpfs 2.0G 8.4M 2.0G 1% /run tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/vda1 xfs 497M 126M 371M 26% /boot /dev/mapper/vg_cluster-lv_cluster gfs2 1016M 259M 758M 26% /mnt |
Sponsored Link |