DRBD + GFS2 + PaceMaker + cLVM構成を構築する

今回もLPIC/Lunuc304勉強がてら構築しました。 以下を参考にしたのですが、そのままやるとどハマりポイントが2点あります。このどハマりポイントでかなりの時間を浪費しました。。。

CentOS 7 : Pacemaker : CLVM + GFS2 設定 : Server World

Redhat公式:

第5章 クラスターでの GFS2 ファイルシステムの設定 Red Hat Enterprise Linux 7 | Red Hat Customer Portal

構成

iSCSIターゲット名:

  • iqn.2020-07.mukkun.test:storage.target01(ストレージデバイス用)

  • iqn.2020-07.mukkun.test:storage.target02(フェンスデバイス用)

iSCSIイニシエータ名:

  • iqn.2020-07.mukkun.test:www.mukkun-clvm1

  • iqn.2020-07.mukkun.test:www.mukkun-clvm2

+--------------+                                 +---------------+
| mukkun-clvm1 |192.168.0.75/24|192.168.0.180/24 |  mukkun-clvm2 |
|   pacemaker  +---------------+-----------------+  pacemaker    |
|    clvm      |eth0           |            eth0 |    clvm       |
+--------------+               |                 +---------------+
                               |
                               |
+------------+                 |                 +------------+
|  mukkun-   |                 |                 |  mukkun-   |
|  backend-1 |192.168.0.62/24  | 192.168.0.243/24|  backend-2 |
|  DRBD Pri  +-----------------+-----------------+  DRBD Sec  |
|            |eth0                        eth0   |            |
+------------+                                   +------------+

どハマりポイント

どハマりポイント(1)

iSCSIの設定でtargetcliで設定するのですが、何度やってもaclの認証のところが突破できず、iscsiログインしたデバイスがRead Onlyになってしまいました。 泣く泣く今回はauthのところを飛ばして対応しました。

コンフィグファイルのIDとパスワードはあっているはずなのに謎でした。

どハマりポイント(2)

私は CentOS Linux release 7.8.2003 (Core) の環境で試したのですが、参考リンクの、フェンスデバイスを作成するコマンドが利用できないということに気がつかず、 何回やり直してもNo Such Device のエラーが出て、フェンスデバイスのstonithのリソースがエラーで立ち上がらないという現象が起きました。

参考サイトのようにノード名を入れないとエラーになります。この pcmk_host_list= が超重要です。ちなみにRedhatの公式ドキュメントにも書いてません。

pcs stonith create scsi-shooter fence_scsi devices=/dev/disk/by-id/wwn-[uuid] meta provides=unfencing pcmk_host_list='mukkun-clvm1 mukkun-clvm2' meta provides=unfencing

正しいコマンドは以下です。

pcs stonith create scsi-shooter fence_scsi devices=/dev/disk/by-id/wwn-[uuid] meta provides=unfencing

DRBDの設定

[root@mukkun-backend-2 ~]# drbdmanage add-resource resource02
Operation completed successfully
[root@mukkun-backend-2 ~]# drbdmanage add-volume resource02 22GB
Operation completed successfully
[root@mukkun-backend-2 ~]# drbdmanage list-resources
+------------------------------------------------------------------------------------------------------------+
| Name       |                                                                                       | State |
|------------------------------------------------------------------------------------------------------------|
| resource01 |                                                                                       |    ok |
| resource02 |                                                                                       |    ok |
+------------------------------------------------------------------------------------------------------------+
[root@mukkun-backend-2 ~]# drbdmanage list-volumes
+------------------------------------------------------------------------------------------------------------+
| Name       | Vol ID |      Size | Minor |                                                          | State |
|------------------------------------------------------------------------------------------------------------|
| resource01 |      0 |  1.86 GiB |   100 |                                                          |    ok |
| resource02 |      0 | 20.49 GiB |   101 |                                                          |    ok |
+------------------------------------------------------------------------------------------------------------+
[root@mukkun-backend-2 ~]#
[root@mukkun-backend-2 ~]# drbdmanage deploy-resource resource02 2
Operation completed successfully

[root@mukkun-backend-2 ~]# mkfs.xfs /dev/drbd104

[root@mukkun-backend-2 ~]# mkdir /drbd_disk1
[root@mukkun-backend-2 ~]# mount /dev/drbd104 /drbd_disk1
[root@mukkun-backend-2 ~]# df -TH
ファイルシス            タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs                devtmpfs   503M     0  503M    0% /dev
tmpfs                   tmpfs      515M     0  515M    0% /dev/shm
tmpfs                   tmpfs      515M  7.1M  508M    2% /run
tmpfs                   tmpfs      515M     0  515M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs         19G  2.7G   17G   15% /
/dev/xvda1              xfs        521M  230M  292M   45% /boot
tmpfs                   tmpfs      103M     0  103M    0% /run/user/0
/dev/drbd104            xfs         22G   34M   22G    1% /drbd_disk1

PaceMakerの設定

両方のノードで設定を行う

yum -y install pacemaker pcs
systemctl start pcsd
systemctl enable pcsd

systemctl stop firewalld.service
systemctl disable firewalld.service

cat << EOT >> /etc/hosts
192.168.0.75 mukkun-clvm1
192.168.0.180 mukkun-clvm2
EOT

いずれか一方のノードでクラスターの設定

pcs cluster auth mukkun-clvm1 mukkun-clvm2
Username: hacluster
Password:
mukkun-clvm2: Authorized
mukkun-clvm1: Authorized

[root@mukkun-clvm1 ~]# pcs cluster setup --name ha_cluster mukkun-clvm1 mukkun-clvm2
[root@mukkun-clvm1 ~]# pcs cluster start --all
[root@mukkun-clvm1 ~]# pcs cluster enable --all

[root@mukkun-clvm1 ~]# pcs status corosync

Membership information
----------------------
    Nodeid      Votes Name
         1          1 mukkun-clvm1 (local)
         2          1 mukkun-clvm2
[root@mukkun-clvm1 ~]# pcs status cluster
Cluster Status:
 Stack: corosync
 Current DC: mukkun-clvm1 (version 1.1.21-4.el7-f14e36fd43) - partition with quorum
 Last updated: Sun Aug  2 21:59:34 2020
 Last change: Sun Aug  2 21:59:05 2020 by hacluster via crmd on mukkun-clvm1
 2 nodes configured
 0 resources configured

PCSD Status:
  mukkun-clvm2: Online
  mukkun-clvm1: Online

iSCSIの設定(ターゲット側 )

mukkun-backend-1、mukkun-backend-2でインストールしておく

yum -y install targetcli

今ディスクがあるmukkun-backend-2でiSCSIの設定をする。まずはストレージボリューム用のディスク設定

[root@mukkun-backend-2 ~]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb49
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> cd backstores/fileio
/backstores/fileio> create disk00 /drbd_disk1/disk00.img 19G
Created fileio disk00 with size 20401094656
/backstores/fileio> create disk01 /drbd_disk1/disk01.img 1G
Created fileio disk01 with size 1073741824

/backstores/fileio> cd /iscsi
/iscsi> create iqn.2020-07.mukkun.test:storage.target01
Created target iqn.2020-07.mukkun.test:storage.target01.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi> cd iqn.2020-07.mukkun.test:storage.target01/tpg1/luns

/iscsi/iqn.20...t01/tpg1/luns> create /backstores/fileio/disk00
Created LUN 0.

/iscsi/iqn.20...t01/tpg1/luns> cd ../acls
/iscsi/iqn.20...t01/tpg1/acls> create iqn.2020-07.mukkun.test:www.mukkun-clvm1
Created Node ACL for iqn.2020-07.mukkun.test:www.mukkun-clvm1
Created mapped LUN 0.
/iscsi/iqn.20...t01/tpg1/acls> create iqn.2020-07.mukkun.test:www.mukkun-clvm2
Created Node ACL for iqn.2020-07.mukkun.test:www.mukkun-clvm2
Created mapped LUN 0.

/iscsi/iqn.20...t01/tpg1/acls> cd ../
/iscsi/iqn.20...target01/tpg1> set attribute generate_node_acls=1
Parameter generate_node_acls is now '1'.


/backstores/fileio> cd /iscsi
/iscsi> create iqn.2020-07.mukkun.test:storage.target02
Created target iqn.2020-07.mukkun.test:storage.target02.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi> cd iqn.2020-07.mukkun.test:storage.target02/
/iscsi/iqn.20...rage.target02> cd tpg1/
tpg1/acls/     tpg1/luns/     tpg1/portals/
/iscsi/iqn.20...rage.target02> cd tpg1/luns
/iscsi/iqn.20...t02/tpg1/luns> create /backstores/fileio/disk01
Created LUN 0.
/iscsi/iqn.20...t02/tpg1/luns> cd ../acls
/iscsi/iqn.20...t02/tpg1/acls> create iqn.2020-07.mukkun.test:www.mukkun-clvm1
Created Node ACL for iqn.2020-07.mukkun.test:www.mukkun-clvm1
Created mapped LUN 0.
/iscsi/iqn.20...t02/tpg1/acls> create iqn.2020-07.mukkun.test:www.mukkun-clvm2
Created Node ACL for iqn.2020-07.mukkun.test:www.mukkun-clvm2
Created mapped LUN 0.
/iscsi/iqn.20...t02/tpg1/acls> cd ../
/iscsi/iqn.20...target02/tpg1> set attribute generate_node_acls=1
Parameter generate_node_acls is now '1'.
/iscsi/iqn.20...target02/tpg1> cd /

リッスンしているか確認、起動設定

[root@mukkun-backend-2 ~]# ss -napt | grep 3260
LISTEN     0      256          *:3260                     *:*
[root@mukkun-backend-2 ~]# systemctl enable target
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.

確認

[root@mukkun-backend-2 ~]# ls -lh /drbd_disk1/
合計 0
-rw-r--r-- 1 root root  19G  8月  5 09:28 disk00.img
-rw-r--r-- 1 root root 1.0G  8月  5 09:28 disk01.img
[root@mukkun-backend-2 ~]# targetcli
targetcli shell version 2.1.fb49
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 0]
  | o- fileio ................................................................................................. [Storage Objects: 2]
  | | o- disk00 ............................................................ [/drbd_disk1/disk00.img (19.0GiB) write-back activated]
  | | | o- alua ................................................................................................... [ALUA Groups: 1]
  | | |   o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | | o- disk01 ............................................................. [/drbd_disk1/disk01.img (1.0GiB) write-back activated]
  | |   o- alua ................................................................................................... [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | o- pscsi .................................................................................................. [Storage Objects: 0]
  | o- ramdisk ................................................................................................ [Storage Objects: 0]
  o- iscsi ............................................................................................................ [Targets: 2]
  | o- iqn.2020-07.mukkun.test:storage.target01 .......................................................................... [TPGs: 1]
  | | o- tpg1 .................................................................................................. [gen-acls, no-auth]
  | |   o- acls .......................................................................................................... [ACLs: 2]
  | |   | o- iqn.2020-07.mukkun.test:www.mukkun-clvm1 ............................................................. [Mapped LUNs: 1]
  | |   | | o- mapped_lun0 ............................................................................... [lun0 fileio/disk00 (rw)]
  | |   | o- iqn.2020-07.mukkun.test:www.mukkun-clvm2 ............................................................. [Mapped LUNs: 1]
  | |   |   o- mapped_lun0 ............................................................................... [lun0 fileio/disk00 (rw)]
  | |   o- luns .......................................................................................................... [LUNs: 1]
  | |   | o- lun0 ...................................................... [fileio/disk00 (/drbd_disk1/disk00.img) (default_tg_pt_gp)]
  | |   o- portals .................................................................................................... [Portals: 1]
  | |     o- 0.0.0.0:3260 ..................................................................................................... [OK]
  | o- iqn.2020-07.mukkun.test:storage.target02 .......................................................................... [TPGs: 1]
  |   o- tpg1 .................................................................................................. [gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 2]
  |     | o- iqn.2020-07.mukkun.test:www.mukkun-clvm1 ............................................................. [Mapped LUNs: 1]
  |     | | o- mapped_lun0 ............................................................................... [lun0 fileio/disk01 (rw)]
  |     | o- iqn.2020-07.mukkun.test:www.mukkun-clvm2 ............................................................. [Mapped LUNs: 1]
  |     |   o- mapped_lun0 ............................................................................... [lun0 fileio/disk01 (rw)]
  |     o- luns .......................................................................................................... [LUNs: 1]
  |     | o- lun0 ...................................................... [fileio/disk01 (/drbd_disk1/disk01.img) (default_tg_pt_gp)]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 0.0.0.0:3260 ..................................................................................................... [OK]
  o- loopback ......................................................................................................... [Targets: 0]
/>

iSCSIの設定(イニシエーター側)

clvm1、clvm2で双方で設定しておく

まずclvm1側

# yum -y install iscsi-initiator-utils

ターゲットで設定したiqnにする
[root@mukkun-clvm1 ~]# vi /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2020-07.mukkun.test:www.mukkun-clvm1


# iscsiadm -m discovery -t sendtargets -p 192.168.0.243
192.168.0.243:3260,1 iqn.2020-07.mukkun.test:storage.target01
192.168.0.243:3260,1 iqn.2020-07.mukkun.test:storage.target02

# iscsiadm -m node
192.168.0.243:3260,1 iqn.2020-07.mukkun.test:storage.target01
192.168.0.243:3260,1 iqn.2020-07.mukkun.test:storage.target02

# iscsiadm -m node -T iqn.2020-07.mukkun.test:storage.target01 --login
Logging in to [iface: default, target: iqn.2020-07.mukkun.test:storage.target01, portal: 192.168.0.243,3260] (multiple)
Login to [iface: default, target: iqn.2020-07.mukkun.test:storage.target01, portal: 192.168.0.243,3260] successful.

# iscsiadm -m node -T iqn.2020-07.mukkun.test:storage.target02 --login
Logging in to [iface: default, target: iqn.2020-07.mukkun.test:storage.target02, portal: 192.168.0.243,3260] (multiple)
Login to [iface: default, target: iqn.2020-07.mukkun.test:storage.target02, portal: 192.168.0.243,3260] successful.

[root@mukkun-clvm1 ~]# iscsiadm -m node
192.168.0.243:3260,1 iqn.2020-07.mukkun.test:storage.target01
[root@mukkun-clvm1 ~]# iscsiadm -m session
tcp: [7] 192.168.0.243:3260,1 iqn.2020-07.mukkun.test:storage.target01 (non-flash)
[root@mukkun-clvm1 ~]#
[root@mukkun-clvm1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   19G  0 disk
sdb               8:16   0    1G  0 disk
sr0              11:0    1 1024M  0 rom
xvda            202:0    0   20G  0 disk
├─xvda1         202:1    0  500M  0 part /boot
└─xvda2         202:2    0 19.5G  0 part
  ├─centos-root 253:0    0 17.5G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]

次にmukkun-clvm2側

[root@mukkun-clvm2 ~]# vi /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2020-07.mukkun.test:www.mukkun-clvm2

[root@mukkun-clvm2 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.243
192.168.0.243:3260,1 iqn.2020-07.mukkun.test:storage.target01
192.168.0.243:3260,1 iqn.2020-07.mukkun.test:storage.target02
[root@mukkun-clvm2 ~]# iscsiadm -m node
192.168.0.243:3260,1 iqn.2020-07.mukkun.test:storage.target01
192.168.0.243:3260,1 iqn.2020-07.mukkun.test:storage.target02
[root@mukkun-clvm2 ~]# iscsiadm -m node -T iqn.2020-07.mukkun.test:storage.target01 --login
Logging in to [iface: default, target: iqn.2020-07.mukkun.test:storage.target01, portal: 192.168.0.243,3260] (multiple)
Login to [iface: default, target: iqn.2020-07.mukkun.test:storage.target01, portal: 192.168.0.243,3260] successful.
[root@mukkun-clvm2 ~]# iscsiadm -m node -T iqn.2020-07.mukkun.test:storage.target02 --login
Logging in to [iface: default, target: iqn.2020-07.mukkun.test:storage.target02, portal: 192.168.0.243,3260] (multiple)
Login to [iface: default, target: iqn.2020-07.mukkun.test:storage.target02, portal: 192.168.0.243,3260] successful.
[root@mukkun-clvm2 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   19G  0 disk
sdb               8:16   0    1G  0 disk
sr0              11:0    1 1024M  0 rom
xvda            202:0    0   20G  0 disk
├─xvda1         202:1    0  500M  0 part /boot
└─xvda2         202:2    0 19.5G  0 part
  ├─centos-root 253:0    0 17.5G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]

PaceMaker + CLVM + GFS2の設定

パッケージインストール

mukkun-clvm1、mukkun-clvm2で実施

yum -y install fence-agents-all lvm2-cluster gfs2-utils
lvmconf --enable-cluster
reboot

フェンスデバイスの設定

フェンスデバイスを設定します。いずれかのノード上で設定すれば OK です。 なお、以下で設定している /dev/sdb はストレージサーバーから提供されているフェンスデバイス用ディスクを指定しています。

[root@mukkun-clvm1 ~]# cat /proc/partitions
major minor  #blocks  name

 202        0   20971520 xvda
 202        1     512000 xvda1
 202        2   20458496 xvda2
  11        0    1048575 sr0
 253        0   18317312 dm-0
 253        1    2097152 dm-1
   8        0   19922944 sda
   8        1   19918848 sda1
   8       16    1048576 sdb
   
[root@mukkun-clvm1 ~]# ll /dev/disk/by-id | grep sdb
lrwxrwxrwx 1 root root  9  8月  7 22:43 scsi-3600140518bf1f7824aa4844966dca55b -> ../../sdb
lrwxrwxrwx 1 root root  9  8月  7 22:43 wwn-0x600140518bf1f7824aa4844966dca55b -> ../../sdb
[root@mukkun-clvm1 ~]#
[root@mukkun-clvm1 ~]# pcs stonith create scsi-shooter fence_scsi devices=/dev/disk/by-id/wwn-0x600140518bf1f7824aa4844966dca55b pcmk_host_list='mukkun-clvm1 mukkun-clvm2' meta provides=unfencing
[root@mukkun-clvm1 ~]# pcs property set no-quorum-policy=freeze
[root@mukkun-clvm1 ~]# pcs stonith show scsi-shooter
 Resource: scsi-shooter (class=stonith type=fence_scsi)
  Attributes: devices=/dev/disk/by-id/wwn-0x600140518bf1f7824aa4844966dca55b pcmk_host_list="mukkun-clvm1 mukkun-clvm2"
  Meta Attrs: provides=unfencing
  Operations: monitor interval=60s (scsi-shooter-monitor-interval-60s)
[root@mukkun-clvm1 ~]#
[root@mukkun-clvm1 ~]# pcs status
Cluster name: ha_cluster
Stack: corosync
Current DC: mukkun-clvm2 (version 1.1.21-4.el7-f14e36fd43) - partition with quorum
Last updated: Fri Aug  7 22:45:45 2020
Last change: Fri Aug  7 22:45:16 2020 by root via cibadmin on mukkun-clvm1

2 nodes configured
1 resource configured

Online: [ mukkun-clvm1 mukkun-clvm2 ]

Full list of resources:

 scsi-shooter   (stonith:fence_scsi):   Started mukkun-clvm1

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

LVMの設定準備

当例の場合、事前に sda として認識されている共有ストレージ用デバイスに fdisk で パーティションを作成し、パーティションタイプを LVM に設定しています。backendサーバーで処理します。

[root@mukkun-clvm1 ~]# fdisk -l
(略)

Disk /dev/sda: 20.4 GB, 20401094656 bytes, 39845888 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 4194304 バイト


Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 4194304 バイト


[root@mukkun-clvm1 ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xf86fd8b3.

コマンド (m でヘルプ): p

Disk /dev/sda: 20.4 GB, 20401094656 bytes, 39845888 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 4194304 バイト
Disk label type: dos
ディスク識別子: 0xf86fd8b3

デバイス ブート      始点        終点     ブロック   Id  システム

コマンド (m でヘルプ): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
パーティション番号 (1-4, default 1):
最初 sector (8192-39845887, 初期値 8192):
初期値 8192 を使います
Last sector, +sectors or +size{K,M,G} (8192-39845887, 初期値 39845887):
初期値 39845887 を使います
Partition 1 of type Linux and of size 19 GiB is set

コマンド (m でヘルプ): p

Disk /dev/sda: 20.4 GB, 20401094656 bytes, 39845888 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 4194304 バイト
Disk label type: dos
ディスク識別子: 0xf86fd8b3

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1            8192    39845887    19918848   83  Linux

コマンド (m でヘルプ): t
Selected partition 1
Hex code (type L to list all codes): L

 0  空              24  NEC DOS         81  Minix / 古い Li bf  Solaris
 1  FAT12           27  Hidden NTFS Win 82  Linux スワップ  c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隠し C: ド c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 拡張領域  c7  Syrinx
 5  拡張領域        41  PPC PReP Boot   86  NTFS ボリューム da  非 FS データ
 6  FAT16           42  SFS             87  NTFS ボリューム db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux プレーン  de  Dell ユーティリ
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt
 9  AIX ブート可能  4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access
 a  OS/2 ブートマネ 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad ハ eb  BeOS fs
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT
 f  W95 拡張領域 (L 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC
11  隠し FAT12      56  Golden Bow      a8  Darwin UFS      f1  SpeedStor
12  Compaq 診断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor
14  隠し FAT16 <32M 61  SpeedStor       ab  Darwin ブート   f2  DOS セカンダリ
16  隠し FAT16      63  GNU HURD または af  HFS / HFS+      fb  VMware VMFS
17  隠し HPFS/NTFS  64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI スワップ   fd  Linux raid 自動
1b  隠し W95 FAT32  70  DiskSecure Mult bb  隠し Boot Wizar fe  LANstep
1c  隠し W95 FAT32  75  PC/IX           be  Solaris ブート  ff  BBT
1e  隠し W95 FAT16  80  古い Minix
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

コマンド (m でヘルプ): p

Disk /dev/sda: 20.4 GB, 20401094656 bytes, 39845888 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 4194304 バイト
Disk label type: dos
ディスク識別子: 0xf86fd8b3

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1            8192    39845887    19918848   8e  Linux LVM

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。


[root@mukkun-clvm1 ~]# fdisk -l /dev/sda

Disk /dev/sda: 20.4 GB, 20401094656 bytes, 39845888 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 4194304 バイト
Disk label type: dos
ディスク識別子: 0xf86fd8b3

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1            8192    39845887    19918848   8e  Linux LVM

リソースの追加

[root@mukkun-clvm1 ~]# pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true
[root@mukkun-clvm1 ~]# pcs resource create clvmd ocf:heartbeat:clvm op monitor interval=30s on-fail=fence clone interleave=true ordered=true
[root@mukkun-clvm1 ~]# pcs constraint order start dlm-clone then clvmd-clone
[root@mukkun-clvm1 ~]# pcs constraint colocation add clvmd-clone with dlm-clone

[root@mukkun-clvm1 ~]# pcs status resources
 Clone Set: dlm-clone [dlm]
     Started: [ mukkun-clvm1 mukkun-clvm2 ]
 Clone Set: clvmd-clone [clvmd]
     Started: [ mukkun-clvm1 mukkun-clvm2 ]
     

共有ストレージ用のデバイスにボリュームを作成し、GFS2 ファイルシステムでフォーマットします。いずれかのノード上で設定すれば OK です。

[root@mukkun-clvm1 ~]# pvcreate /dev/sda1
Physical volume "/dev/sda1" successfully created

[root@mukkun-clvm1 ~]# vgcreate -cy vg_cluster /dev/sda1
  Clustered volume group "vg_cluster" successfully created
[root@mukkun-clvm1 ~]# pvs
  PV         VG         Fmt  Attr PSize   PFree
  /dev/sda1  vg_cluster lvm2 a--   18.99g 18.99g
  /dev/xvda2 centos     lvm2 a--  <19.51g 40.00m
[root@mukkun-clvm1 ~]# vgs
  VG         #PV #LV #SN Attr   VSize   VFree
  centos       1   2   0 wz--n- <19.51g 40.00m
  vg_cluster   1   0   0 wz--nc  18.99g 18.99g
[root@mukkun-clvm1 ~]# lvcreate -l100%FREE -n lv_cluster vg_cluster
  Logical volume "lv_cluster" created.
[root@mukkun-clvm1 ~]# 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-2
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_cluster/lv_cluster
Block size:                4096
Device size:               18.99 GB (4978688 blocks)
Filesystem size:           18.99 GB (4978684 blocks)
Journals:                  2
Journal size:              64MB
Resource groups:           78
Locking protocol:          "lock_dlm"
Lock table:                "ha_cluster:gfs2"
UUID:                      36049878-bbf3-433a-8ed3-6366168efa55

共有ストレージをリソースに追加します。いずれかのノード上で設定すれば OK です。

[root@mukkun-clvm1 ~]# 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
Assumed agent name 'ocf:heartbeat:Filesystem' (deduced from 'Filesystem')
[root@mukkun-clvm1 ~]# pcs resource show
 Clone Set: dlm-clone [dlm]
     Started: [ mukkun-clvm1 mukkun-clvm2 ]
 Clone Set: clvmd-clone [clvmd]
     Started: [ mukkun-clvm1 mukkun-clvm2 ]
 Clone Set: fs_gfs2-clone [fs_gfs2]
     Started: [ mukkun-clvm1 mukkun-clvm2 ]
[root@mukkun-clvm1 ~]# 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@mukkun-clvm1 ~]# pcs constraint colocation add fs_gfs2-clone with clvmd-clone
[root@mukkun-clvm1 ~]# 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)
Ticket Constraints:

[root@mukkun-clvm1 ~]# pcs status
Cluster name: ha_cluster
Stack: corosync
Current DC: mukkun-clvm2 (version 1.1.21-4.el7-f14e36fd43) - partition with quorum
Last updated: Fri Aug  7 22:52:08 2020
Last change: Fri Aug  7 22:51:33 2020 by root via cibadmin on mukkun-clvm1

2 nodes configured
7 resources configured

Online: [ mukkun-clvm1 mukkun-clvm2 ]

Full list of resources:

 scsi-shooter   (stonith:fence_scsi):   Started mukkun-clvm1
 Clone Set: dlm-clone [dlm]
     Started: [ mukkun-clvm1 mukkun-clvm2 ]
 Clone Set: clvmd-clone [clvmd]
     Started: [ mukkun-clvm1 mukkun-clvm2 ]
 Clone Set: fs_gfs2-clone [fs_gfs2]
     Started: [ mukkun-clvm1 mukkun-clvm2 ]

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

設定確認

mukkun-clvm1側

[root@mukkun-clvm1 ~]# df -Th /mnt/
ファイルシス                      タイプ サイズ  使用  残り 使用% マウント位置
/dev/mapper/vg_cluster-lv_cluster gfs2      19G  131M   19G    1% /mnt

mukkun-clvm2側

ファイルシス                      タイプ サイズ  使用  残り 使用% マウント位置
/dev/mapper/vg_cluster-lv_cluster gfs2      19G  131M   19G    1% /mnt