CentOS7にて内容編集中
GlobalFileSystem2
CentOS 7にて gfs2 を構築してみる。

マシン名役割ip備考
gfsクラスタ管理ノード192.168.0.19luciを使う
n1クラスタメンバ192.168.0.14
n2192.168.0.15
n3192.168.0.16
qiSCSI-Target192.168.0.9QNAP4.2

2014y11m03d_162657910.png

参考先 http://blog.secaserver.com/2011/11/mount-same-partition-different-servers/

ストーレジデバイスを共有する各クライアントノード、それを管理する管理ノードはすべて最小構成で構築されているとします。

クライアントノードへのパッケージインストール

iscsiなストレージデバイスを共有するので、iSCSIイニシエータと、クラスタ関係、GFS2のパッケージをインストールします

[root@n1 ~]# yum -y install iscsi-initiator-utils ricci gfs2-utils
[root@n2 ~]# yum -y install iscsi-initiator-utils ricci gfs2-utils
[root@n3 ~]# yum -y install iscsi-initiator-utils ricci gfs2-utils

クラスタ管理ノードへのパッケージインストール

ricciを管理するluciをインストールします。

[root@gfs ~]# yum -y install luci

ストレージデバイスの追加

QNAPのiSCSI-Targetは既に構築済みで、パスワード認証なしで使える状態にしている。
各クライアントノードは、iSCSIイニシエータを使ってこのストレージデバイスを加える。

[root@n1 ~]# iscsiadm --mode=discovery --type=sendtargets --portal w.chaperone.jp --login
[root@n2 ~]# iscsiadm --mode=discovery --type=sendtargets --portal w.chaperone.jp --login
[root@n3 ~]# iscsiadm --mode=discovery --type=sendtargets --portal w.chaperone.jp --login
[root@n3 ~]# cat /proc/partitions
major minor  #blocks  name
 
   8        0    8388608 sda
   8        1     512000 sda1
   8        2    1048576 sda2
   8        3    6827008 sda3
   8       16   52428800 sdb
[root@n3 ~]#

もし追加したストレージデバイスを削除するには

[root@n3 ~]# iscsiadm --mode node  --logout
 
*もしくは target を求めて、削除する
[root@n3 ~]# iscsiadm -m node
192.168.0.9:3260,1 iqn.2004-04.com.qnap:ts-251:iscsi.share.e5d9aa
 
[root@n3 ~]# iscsiadm --mode node --targetname iqn.2004-04.com.qnap:ts-251:iscsi.share.e5d9aa --logout
[root@n3 ~]# cat /proc/partitions
major minor  #blocks  name
 
   8        0    8388608 sda
   8        1     512000 sda1
   8        2    1048576 sda2
   8        3    6827008 sda3
[root@n3 ~]#

とします。

GFS2フォーマット

これまでで、QNAPのストレージデバイスをシステムに認めさせ、/proc/partitions にも記載された。

次に、このストレージデバイスをGFS2でフォーマットします。
フォーマット操作は共有するノードのどれでも構いません。特定の1台で操作します。他のノードで再度フォーマットする必要はないです。
コマンドmake.gfs2の引数 -t は、LockTableNameを意図して、clustername:fsname として定義されます。
引数 -j は、このデバイスを利用するクライアントの数だけ指定します。ここでは3台で共有するので3としてます。

*あとでクラスタ管理ノードの設定で、この clustername は使用されます。

ここではn1.chaperone.jpで作業してます

[root@n1 ~]# mkfs.gfs2 -p lock_dlm -t chaperone:gfs -j 3 /dev/sdb
This will destroy any data on /dev/sdb.
It appears to contain: Linux GFS2 Filesystem (blocksize 4096, lockproto lock_dlm)
 
Are you sure you want to proceed? [y/n] y
 
Device:                    /dev/sdb
Blocksize:                 4096
Device Size                50.00 GB (13107200 blocks)
Filesystem Size:           50.00 GB (13107198 blocks)
Journals:                  3
Resource Groups:           200
Locking Protocol:          "lock_dlm"
Lock Table:                "chaperone:gfs"
UUID:                      dff2810f-5d4f-cbc5-5b9a-5aa96cac2e8e
 
[root@n1 ~]#

クライアントノードのricciユーザにパスワードを定義

全クライアントノードにricciユーザのパスワードを付与して、一度マシンを再起動します。
ricciの起動だけでも構わないのだが、GFS2フォーマットさせた/dev/sdbのUUIDを全マシンで共有するために再起動します。

[root@n1 ~]# passwd ricci
[root@n1 ~]# chkconfig ricci on && reboot
 
[root@n2 ~]# passwd ricci
[root@n2 ~]# chkconfig ricci on && reboot
 
[root@n3 ~]# passwd ricci
[root@n3 ~]# chkconfig ricci on && reboot

luci

クラスタ管理ノードで luci を稼働させます。

chkconfig luci on && /etc/init.d/luci start
 
Adding following auto-detected host IDs (IP addresses/domain names), corresponding to `gfs.chaperone.jp' (略
 
Generating a 2048 bit RSA private key
writing new private key to '/var/lib/luci/certs/host.pem'
saslauthd を起動中:                                        [  OK  ]
Start luci...                                              [  OK  ]
Point your web browser to https://gfs.chaperone.jp:8084 (or equivalent) to access luci
[root@gfs ~]#

ブラウザを立ち上げて、指定のURLに行くとLoginするためのUsernameとPasswordが聞かれます。
この値はクラスタ管理ノードの root とそのパスワードを入力します。
2014y11m03d_173457675.png
初回ログイン直後にWarningが表示されるが、気にせず閉じます。
そして、左縦項目に「Homebase」と「Manage Clusters」があります。この「Manage Clusters」をクリックして右側上部の「Create」をクリックします。
2014y11m03d_174041407.png
表れた「Create New Cluster」画面で、Cluster Nameは先ほど mkfs.gfs2 でフォーマット操作を行った際に使用した clustername を指定します。そして、クラスターに参加する全ノードを記入します。Password欄は、ricciのパスワードを記入します。もし全ノード同じパスワードなら、上部の「Use the Same Passowrd for All Nodes」を有効にします。そしてEnable Shared Storage Supportを有効にして、「Create Cluster」ボタンをクリックします。
2014y11m03d_174316523.png
すると処理が始まり、その途中経過が表示される。
2014y11m03d_174803268.png
*&size(10){なんか、ricciによって、cman,rgmanager,lvm2-cluster,sg3_utilsがインストールされる..}:
暫くすると完了して、左縦メニューの「Homebase」をクリックすると下記の様にクラスタ「chaperone」が追加された。
2014y11m03d_175742713.png
このクラスタ「chaperone」をクリックすると、参加しているノードと状況が見える。
2014y11m03d_175906667.png

ストレージデバイスをマウント

各クライアントノードでストレージデバイスをマウントします。

  • n1.chaperone.jp
    [root@n1 ~]# ls -l /dev/disk/by-uuid/
    合計 0
    lrwxrwxrwx 1 root root 10 11月  3 18:15 2014 61edaf05-323c-4ea3-b5fa-ad35505f8909 -> ../../sda2
    lrwxrwxrwx 1 root root 10 11月  3 18:15 2014 895f29c3-d08b-477c-b499-12be12a976be -> ../../sda1
    lrwxrwxrwx 1 root root 10 11月  3 18:15 2014 b206c0eb-ac76-498c-9d24-70fc0729289a -> ../../sda3
    lrwxrwxrwx 1 root root  9 11月  3 18:16 2014 dff2810f-5d4f-cbc5-5b9a-5aa96cac2e8e -> ../../sdb
    [root@n1 ~]#
    [root@n1 ~]# mkdir /gfs
    [root@n1 ~]# echo "UUID=dff2810f-5d4f-cbc5-5b9a-5aa96cac2e8e /gfs gfs2 noatime,nodiratime 0 0" >> /etc/fstab
    [root@n1 ~]# chkconfig gfs2 on && /etc/init.d/gfs2 start
    Mounting GFS2 filesystem (/gfs):                           [  OK  ]
    [root@n1 ~]#
  • n2.chaperone.jp
    [root@n2 ~]# ls -l /dev/disk/by-uuid/ |grep sdb
    lrwxrwxrwx 1 root root  9 11月  3 18:22 2014 dff2810f-5d4f-cbc5-5b9a-5aa96cac2e8e -> ../../sdb
    [root@n2 ~]#
    [root@n2 ~]# mkdir /gfs
    [root@n2 ~]# echo "UUID=dff2810f-5d4f-cbc5-5b9a-5aa96cac2e8e /gfs gfs2 noatime,nodiratime  0 0" >> /etc/fstab
    [root@n2 ~]# chkconfig gfs2 on && /etc/init.d/gfs2 start
    Mounting GFS2 filesystem (/gfs):                           [  OK  ]
    [root@n2 ~]#
  • n3.chaperone.jp
    [root@n3 ~]# ls -l /dev/disk/by-uuid/ |grep sdb
    lrwxrwxrwx 1 root root  9 11月  3 18:17 2014 dff2810f-5d4f-cbc5-5b9a-5aa96cac2e8e -> ../../sdb
    [root@n3 ~]# mkdir /gfs
    [root@n3 ~]# echo "UUID=dff2810f-5d4f-cbc5-5b9a-5aa96cac2e8e /gfs gfs2 noatime,nodiratime  0 0" >> /etc/fstab
    [root@n3 ~]# chkconfig gfs2 on && /etc/init.d/gfs2 start
    Mounting GFS2 filesystem (/gfs):                           [  OK  ]
    [root@n3 ~]#

留意 ストレージデバイス経由の/dev/sdbがすべてUUIDが同じです。

テストその1

[root@n1 ~]# touch /gfs/sample
[root@n1 ~]# flock /gfs/sample watch -n 1 ls
を実行中
[root@n2 ~]# flock /gfs/sample watch -n 1 ls
は実行されない

テストその2

3ノードの内、一つのLANケーブルを抜く。もしくは電源ボタン長押しで停止させると、、他のノードの/gfsは使い物にならない。
だが、
正常な手続きでshutdownが行われるなら、引き続き他のノードも問題なく利用できる。


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2016-11-27 (日) 23:30:30 (179d)