Ubuntu 22.04
Sponsored Link

Pacemaker : LVM 共有ストレージを設定する2022/09/15

 
クラスターに アクティブ/パッシブ 構成の HA-LVM (High Availability LVM) ボリュームを設定します。
当例では以下のような環境で設定します。
事前に クラスターの基本構成を設定していること および フェンスデバイスを設定していることが前提です。
                        +--------------------+
                        | [  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.2022-01.world.srv:dlp.target02] として [10G] のストレージを設定しています。
[2] クラスターを構成する全ノードで、LVM システム ID の設定を変更します。
root@node01:~#
vi /etc/lvm/lvm.conf
# 1227行目 : コメント解除して変更

system_id_source = "
uname
"
[3] クラスターのいずれかのノード上で、[1] で作成した共有ストレージ上に LVM を設定します。
下例の [sdb] は [1] で作成した ISCSI ターゲット サーバーの共有ストレージです。
# 現在のセッション

root@node01:~#
iscsiadm -m session -o show

tcp: [1] 10.0.0.30:3260,1 iqn.2022-01.world.srv:dlp.target01 (non-flash)
# ディスカバー

root@node01:~#
iscsiadm -m discovery -t sendtargets -p 10.0.0.30

10.0.0.30:3260,1 iqn.2022-01.world.srv:dlp.target01
10.0.0.30:3260,1 iqn.2022-01.world.srv:dlp.target02
# ログイン

root@node01:~#
iscsiadm -m node --login --target iqn.2022-01.world.srv:dlp.target02
root@node01:~#
iscsiadm -m session -o show

tcp: [1] 10.0.0.30:3260,1 iqn.2022-01.world.srv:dlp.target01 (non-flash)
tcp: [2] 10.0.0.30:3260,1 iqn.2022-01.world.srv:dlp.target02 (non-flash)
# 共有ストレージに 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 vg_ha /dev/sdb1

  Volume group "vg_ha" successfully created with system ID node01.srv.world

# [System ID] 値が [$ uname -n] と同じ値になっているか確認

root@node01:~#
vgs -o+systemid

  VG              #PV #LV #SN Attr   VSize    VFree    System ID
  ubuntu-vg         1   1   0 wz--n-  <28.00g 1020.00m
  vg_ha             1   0   0 wz--n-   <9.98g   <9.98g node01.srv.world

# 論理ボリューム作成

root@node01:~#
lvcreate -l 100%FREE -n lv_ha vg_ha

  Logical volume "lv_ha" created.

# ext4 でフォーマット

root@node01:~#
mkfs.ext4 /dev/vg_ha/lv_ha
[4] [3] で LVM を設定したノード以外のノード上で、作成した LVM ボリュームを認識させておきます。
root@node02:~#
iscsiadm -m session -o show

tcp: [1] 10.0.0.30:3260,1 iqn.2022-01.world.srv:dlp.target01 (non-flash)
root@node02:~#
iscsiadm -m discovery -t sendtargets -p 10.0.0.30

10.0.0.30:3260,1 iqn.2022-01.world.srv:dlp.target01
10.0.0.30:3260,1 iqn.2022-01.world.srv:dlp.target02
root@node02:~#
iscsiadm -m node --login --target iqn.2022-01.world.srv:dlp.target02
root@node02:~#
iscsiadm -m session -o show

tcp: [1] 10.0.0.30:3260,1 iqn.2022-01.world.srv:dlp.target01 (non-flash)
tcp: [2] 10.0.0.30:3260,1 iqn.2022-01.world.srv:dlp.target02 (non-flash)
root@node02:~#
lvm pvscan --cache --activate ay

  pvscan[1150] PV /dev/sda1 ignore foreign VG.
  pvscan[1150] PV /dev/vda3 online, VG ubuntu-vg is complete.
  pvscan[1150] PV /dev/vdb1 online, VG ceph-5464aa8c-7249-47e7-a37b-d24e10457f0f is complete.
  pvscan[1150] VG ubuntu-vg run autoactivation.
[5] [3] で LVM を設定したノード上で、共有ストレージをクラスターリソースとして設定します。
# [lvm_ha] : 任意の名称
# [vgname=***] : ボリュームグループ名
# [--group] : 任意のグループ名

root@node01:~#
pcs resource create lvm_ha ocf:heartbeat:LVM-activate vgname=vg_ha vg_access_mode=system_id --group ha_group

# ステータス確認
# 設定した LVM リソースが [Started] であれば OK

root@node01:~#
pcs status

Cluster name: ha_cluster
Cluster Summary:
  * Stack: corosync
  * Current DC: node01.srv.world (version 2.1.2-ada5c3b36e2) - partition with quorum
  * Last updated: Thu Sep 15 01:30:33 2022
  * Last change:  Thu Sep 15 01:30:21 2022 by root via cibadmin on node01.srv.world
  * 2 nodes configured
  * 2 resource instances configured

Node List:
  * Online: [ node01.srv.world node02.srv.world ]

Full List of Resources:
  * scsi-shooter        (stonith:fence_scsi):    Started node01.srv.world
  * Resource Group: ha_group:
    * lvm_ha    (ocf:heartbeat:LVM-activate):    Started node02.srv.world

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled
関連コンテンツ