&color(red){CentOS7にて内容編集中};
GlobalFileSystem2
どうやら[[前回>GlobalFileSystem141103]]のは間違ったようだ。fencing機構を考慮せずに作ったのが原因みたい。
なので下記の様にクラスタを管理するノードを追加して一から構築します。
&color(lightseagreen){''CentOS 7''};にて gfs2 を構築してみる。
|BGCOLOR(YELLOW):マシン名|BGCOLOR(YELLOW):役割|BGCOLOR(YELLOW):ip|BGCOLOR(YELLOW):備考|
|gfs|クラスタ管理ノード|192.168.0.51|luciを使う|
|n1|クラスタメンバ|192.168.0.52||
|n2|~|192.168.0.53||
|n3|~|192.168.0.54||
|w|iSCSI-Target|192.168.0.9|QNAP4.2|
|gfs|クラスタ管理ノード|192.168.0.19|luciを使う|
|n1|クラスタメンバ|192.168.0.14||
|n2|~|192.168.0.15||
|n3|~|192.168.0.16||
|q|iSCSI-Target|192.168.0.9|QNAP4.2|
&ref(2014y11m03d_162657910.png,nolink,noborder);

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

ストーレジデバイスを共有する各クライアントノード、それを管理する管理ノードはすべて[[最小構成>CentOS6]]で構築されているとします。
***クライアントノードへのパッケージインストール [#d38e9e97]
iscsiなストレージデバイスを共有するので、iSCSIイニシエータと、クラスタ関係、GFS2のパッケージをインストールします
#code(nonumber){{
[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
}}

***クラスタ管理ノードへのパッケージインストール [#r9c27bd6]
ricciを管理するluciをインストールします。
#code(nonumber){{
[root@gfs ~]# yum -y install luci
}}

***ストレージデバイスの追加 [#b76c6d1a]
QNAPのiSCSI-Targetは既に構築済みで、パスワード認証なしで使える状態にしている。
各クライアントノードは、iSCSIイニシエータを使ってこのストレージデバイスを加える。
#code(nonumber){{
[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 ~]#
}}
もし追加したストレージデバイスを削除するには
#code(nonumber){{
[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フォーマット [#p6dd453e]
これまでで、QNAPのストレージデバイスをシステムに認めさせ、/proc/partitions にも記載された。

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

&color(red){*};あとでクラスタ管理ノードの設定で、この &color(magenta){''clustername''}; は使用されます。

ここではn1.chaperone.jpで作業してます
#code(nonumber){{
[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ユーザにパスワードを定義 [#ybc4544e]
全クライアントノードにricciユーザのパスワードを付与して、一度マシンを再起動します。
ricciの起動だけでも構わないのだが、GFS2フォーマットさせた/dev/sdbのUUIDを全マシンで共有するために再起動します。
#code(nonumber){{
[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 [#idc8d852]
クラスタ管理ノードで luci を稼働させます。
#code(nonumber){{
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 とそのパスワードを入力します。
&ref(2014y11m03d_173457675.png,nolink);
初回ログイン直後にWarningが表示されるが、気にせず閉じます。
そして、左縦項目に「Homebase」と「Manage Clusters」があります。この「Manage Clusters」をクリックして右側上部の「Create」をクリックします。
&ref(2014y11m03d_174041407.png,nolink);
表れた「Create New Cluster」画面で、Cluster Nameは先ほど mkfs.gfs2 でフォーマット操作を行った際に使用した &color(magenta){''clustername''}; を指定します。そして、クラスターに参加する全ノードを記入します。Password欄は、ricciのパスワードを記入します。もし全ノード同じパスワードなら、上部の「Use the Same Passowrd for All Nodes」を有効にします。そして''Enable Shared Storage Support''を有効にして、「Create Cluster」ボタンをクリックします。
&ref(2014y11m03d_174316523.png,nolink);
すると処理が始まり、その途中経過が表示される。
&ref(2014y11m03d_174803268.png,nolink);
&color(red){*};&size(10){なんか、ricciによって、cman,rgmanager,lvm2-cluster,sg3_utilsがインストールされる..}:
暫くすると完了して、左縦メニューの「Homebase」をクリックすると下記の様にクラスタ「chaperone」が追加された。
&ref(2014y11m03d_175742713.png,nolink);
このクラスタ「chaperone」をクリックすると、参加しているノードと状況が見える。
&ref(2014y11m03d_175906667.png,nolink);

***ストレージデバイスをマウント [#i84fa493]
各クライアントノードでストレージデバイスをマウントします。
-n1.chaperone.jp
#code(nonumber){{
[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
#code(nonumber){{
[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
#code(nonumber){{
[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 ~]#
}}

&color(white,blue){留意}; ストレージデバイス経由の/dev/sdbがすべてUUIDが同じです。

***テストその1 [#s941f3f6]
#code(nonumber){{
[root@n1 ~]# touch /gfs/sample
[root@n1 ~]# flock /gfs/sample watch -n 1 ls
を実行中
[root@n2 ~]# flock /gfs/sample watch -n 1 ls
は実行されない
}}

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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS