CentOS 8
Sponsored Link

Pacemaker : クラスターリソースを設定する (NFS)2020/02/21

 
クラスターリソースに NFS サーバーを設定して、アクティブ/パッシブ 構成の NFS サーバーを構築します。
当例では以下のような環境で設定します。事前に下記の項目を設定済みであることが前提です。
  1) クラスターの基本構成を設定済み
  2) フェンスデバイスを設定済み
  3) LVM 共有ストレージを設定済み
                       +--------------------+
                       | [  ISCSI Target  ] |
                       |  storage.srv.world |
                       +----------+---------+
                         10.0.0.50|
                                  |
+----------------------+          |          +----------------------+
| [  Cluster Node#1  ] |10.0.0.51 | 10.0.0.52| [  Cluster Node#2  ] |
|   node01.srv.world   +----------+----------+   node02.srv.world   |
|      NFS Server      |          |          |      NFS Server      |
+----------------------+          |          +----------------------+
                            vip:10.0.0.100
                                  |
                       +----------+---------+
                       | [   NFS Clients  ] |
                       |                    |
                       +--------------------+

[1] クラスターを構成する全ノードで、Firewalld を有効にしている場合は、NFS サービスの許可が必要です。
[root@node01 ~]#
firewall-cmd --add-service=nfs --permanent

success
# NFSv3 も許可する場合は以下

[root@node01 ~]#
firewall-cmd --add-service={nfs3,mountd,rpc-bind} --permanent

success
[root@node01 ~]#
firewall-cmd --reload

success
[2] クラスターのいずれかのノード上で、NFS リソースを追加します。
以下で Filesystem に設定しているデバイス [/dev/vg_ha/lv_ha] は事前に作成した LVM 共有ストレージです。
# 現在の状態

[root@node01 ~]#
pcs status

Cluster name: ha_cluster
Stack: corosync
Current DC: node01.srv.world (version 2.0.2-3.el8_1.2-744a30d655) - partition with quorum
Last updated: Fri Feb 20 01:51:35 2020
Last change: Fri Feb 20 01:50:18 2020 by root via cibadmin on node01.srv.world

2 nodes configured
2 resources configured

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 node01.srv.world

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

# NFS ファイルシステム用ディレクトリ作成

[root@node01 ~]#
mkdir /home/nfs-share
# Filesystem リソース設定

# [nfs_share] ⇒ 任意の名称

# [device=***] ⇒ 共有ストレージ

# [directory=***] ⇒ マウントポイント

# [--group ***] ⇒ 共有ストレージと同じグループに設定

[root@node01 ~]#
pcs resource create nfs_share ocf:heartbeat:Filesystem device=/dev/vg_ha/lv_ha directory=/home/nfs-share fstype=ext4 --group ha_group
[root@node01 ~]#
pcs status

Cluster name: ha_cluster
Stack: corosync
Current DC: node01.srv.world (version 2.0.2-3.el8_1.2-744a30d655) - partition with quorum
Last updated: Fri Feb 20 01:31:41 2020
Last change: Fri Feb 20 01:31:35 2020 by root via cibadmin on node02.srv.world

2 nodes configured
3 resources configured

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 node01.srv.world
     nfs_share  (ocf::heartbeat:Filesystem):    Started node01.srv.world

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

# リソースが開始した側のノードで自動マウントされる

[root@node01 ~]#
df -hT /home/nfs-share

Filesystem              Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg_ha-lv_ha ext4  9.8G   37M  9.3G   1% /home/nfs-share

# nfsserver リソース設定

# [nfs_daemon] ⇒ 任意の名称

# [nfs_shared_infodir=***] ⇒ NFS サーバー関連情報の保管ディレクトリ指定 (自動生成)

[root@node01 ~]#
pcs resource create nfs_daemon ocf:heartbeat:nfsserver nfs_shared_infodir=/home/nfs-share/nfsinfo nfs_no_notify=true --group ha_group
# IPaddr2 リソース設定

# クライアントからの NFS アクセスに使用する仮想 IP アドレス

[root@node01 ~]#
pcs resource create nfs_vip ocf:heartbeat:IPaddr2 ip=10.0.0.100 cidr_netmask=24 --group ha_group
# nfsnotify リソース設定

# [source_host=***] ⇒ 仮想 IP アドレスと同じ IP アドレス

[root@node01 ~]#
pcs resource create nfs_notify ocf:heartbeat:nfsnotify source_host=10.0.0.100 --group ha_group
[root@node01 ~]#
pcs status

Cluster name: ha_cluster
Stack: corosync
Current DC: node01.srv.world (version 2.0.2-3.el8_1.2-744a30d655) - partition with quorum
Last updated: Fri Feb 20 01:50:55 2020
Last change: Fri Feb 20 01:50:36 2020 by root via cibadmin on node01.srv.world

2 nodes configured
6 resources configured

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 node01.srv.world
     nfs_share  (ocf::heartbeat:Filesystem):    Started node01.srv.world
     nfs_daemon (ocf::heartbeat:nfsserver):     Started node01.srv.world
     nfs_vip    (ocf::heartbeat:IPaddr2):       Started node01.srv.world
     nfs_notify (ocf::heartbeat:nfsnotify):     Started node01.srv.world

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled
[3] NFS ファイルシステムがマウントされているアクティブなノード上で、エクスポートの設定をします。
# エクスポート用ディレクトリ作成

[root@node01 ~]#
mkdir -p /home/nfs-share/nfs-root/share01
# exportfs リソース設定

# [nfs_root] ⇒ 任意の名称

# [clientspec=*** options=*** directory=***] ⇒ エクスポートの設定

# [fsid=0] ⇒ NFSv4 でのルートポイントとなる

[root@node01 ~]#
pcs resource create nfs_root ocf:heartbeat:exportfs clientspec=10.0.0.0/255.255.255.0 options=rw,sync,no_root_squash directory=/home/nfs-share/nfs-root fsid=0 --group ha_group

# exportfs リソース設定

[root@node01 ~]#
pcs resource create nfs_share01 ocf:heartbeat:exportfs clientspec=10.0.0.0/255.255.255.0 options=rw,sync,no_root_squash directory=/home/nfs-share/nfs-root/share01 fsid=1 --group ha_group
[root@node01 ~]#
pcs status

Cluster name: ha_cluster
Stack: corosync
Current DC: node01.srv.world (version 2.0.2-3.el8_1.2-744a30d655) - partition with quorum
Last updated: Fri Feb 20 01:51:48 2020
Last change: Fri Feb 20 01:51:42 2020 by root via cibadmin on node01.srv.world

2 nodes configured
8 resources configured

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 node01.srv.world
     nfs_share  (ocf::heartbeat:Filesystem):    Started node01.srv.world
     nfs_daemon (ocf::heartbeat:nfsserver):     Started node01.srv.world
     nfs_vip    (ocf::heartbeat:IPaddr2):       Started node01.srv.world
     nfs_notify (ocf::heartbeat:nfsnotify):     Started node01.srv.world
     nfs_root   (ocf::heartbeat:exportfs):      Started node01.srv.world
     nfs_share01        (ocf::heartbeat:exportfs):      Started node01.srv.world

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

[root@node01 ~]#
showmount -e

Export list for node01.srv.world:
/home/nfs-share/nfs-root         10.0.0.0/255.255.255.0
/home/nfs-share/nfs-root/share01 10.0.0.0/255.255.255.0
[4] 任意のクライアントコンピューターで、設定した仮想 IP アドレス宛に NFS アクセスして動作確認します。
また、マウントした状態でフェイルオーバー等も試してみるとよいでしょう。
# NFSv4 でマウント

[root@client ~]#
mount -t nfs4 10.0.0.100:share01 /mnt

[root@client ~]#
df -hT /mnt

Filesystem          Type  Size  Used Avail Use% Mounted on
10.0.0.100:/share01 nfs4  9.8G   36M  9.3G   1% /mnt

# NFSv3 でマウント

[root@client ~]#
mount -t nfs 10.0.0.100:/home/nfs-share/nfs-root/share01 /mnt

[root@client ~]#
df -T /mnt

Filesystem                                  Type 1K-blocks  Used Available Use% Mounted on
10.0.0.100:/home/nfs-share/nfs-root/share01 nfs   10239488 36864   9662464   1% /mnt
関連コンテンツ