node1:192.168.139.2
node2:192.168.139.4
node4:192.168.139.8
node5:192.168.139.9
node1 作為target端
node2 node4 node5 作為initiator端
并且將node2 node4 node5安裝cman+rgmanager后配置成一個三節點的RHCS高可用集群,因為gfs2為一個集群文件系統,必須借助HA高可用集群將故障節點Fence掉,及借助Message Layer進行節點信息傳遞。
因為要將發現并登入的target做成集成文件系統,所以必須在node2 node4 node5上安裝gfs2-utils
先將原來用luci/ricci創建的集群服務stop掉(我以前實驗做的一個集群服務,與此實驗無關)
[root@node2 mnt]# clusvcadm -d Web_Service
Local machine disabling service:Web_Service...
[root@node2 mnt]# clustat
Cluster Status for zxl @ Wed Dec 21 17:55:46 2016
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
node2.zxl.com 1 Online, Local, rgmanager
node4.zxl.com
2 Online, rgmanager
Service Name Owner (Last) State
------- ---- ----- ------ -----
service:Web_Service (node2.zxl.com) disabled
[root@node2 mnt]# service rgmanager stop
[root@node2 mnt]# service cman stop
[root@node4 mnt]# service rgmanager stop
[root@node4 mnt]# service cman stop
[root@node4 mnt]# rm -rf /etc/cluster/cluster.conf
[root@node4 mnt]# rm -rf /etc/cluster/cluster.conf
每次配置文件改變都會有備份也刪掉
[root@node2 mnt]# ls /etc/cluster/
cluster.conf.bak cman-notify.d
[root@node2 mnt]# rm -f /etc/cluster/*
如果沒有裝cman,rgmanager,執行如下命令
[root@node2 mnt]#yum -y install cman rgmanager
用css_tool命令創建一個集群,集群名稱mycluster
[root@node2 mnt]# ccs_tool create mycluster
[root@node2 mnt]# cat /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster name="mycluster" config_version="1">
<clusternodes>
</clusternodes>
<fencedevices>
</fencedevices>
<rm>
<failoverdomains/>
<resources/>
</rm>
</cluster>
添加Fence設備(RHCS集群必須有)
[root@node2 mnt]# ccs_tool addfence meatware fence_manual
[root@node2 mnt]# ccs_tool lsfence
Name Agent
meatware fence_manual
-v 指定節點擁有票數
-n 指定節點標識符
-f 指定Fence設備名稱
添加三個節點,RHCS集群至少要有三個節點
[root@node2 mnt]# ccs_tool addnode -v 1 -n 1 -f meatware node2.zxl.com
[root@node2 mnt]# ccs_tool addnode -v 1 -n 2 -f meatware node4.zxl.com
[root@node2 mnt]# ccs_tool addnode -v 1 -n 3 -f meatware node5.zxl.com
查看集群節點
[root@node2 mnt]# ccs_tool lsnode
Cluster name: mycluster, config_version: 5
Nodename Votes Nodeid Fencetype
node2.zxl.com 1 1 meatware
node4.zxl.com 1 2 meatware
node5.zxl.com 1 3 meatware
復制配置文件,RHCS集群會借助cssd進程自動同步
[root@node2 mnt]# scp /etc/cluster/cluster.conf node4:/etc/cluster/
[root@node2 mnt]# scp /etc/cluster/cluster.conf node5:/etc/cluster/
每個節點啟動cman rgmanager
[root@node2 mnt]# service cman start
[root@node2 mnt]# service rgmanager start
[root@node4 mnt]# service cman start
[root@node4 mnt]# service rgmanager start
[root@node5 mnt]# service cman start
[root@node5 mnt]# service rgmanager start
[root@node2 mnt]# clustat
Cluster Status for mycluster @ Wed Dec 21 18:40:26 2016
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
node2.zxl.com 1 Online, Local
node4.zxl.com 2 Online
node5.zxl.com 3 Online
[root@node2 mnt]# rpm -ql gfs2-utils
/etc/rc.d/init.d/gfs2
/sbin/fsck.gfs2
/sbin/mkfs.gfs2 \\格式化創建gfs2文件系統的
/sbin/mount.gfs2 \\掛載gfs2文件系統的
/usr/sbin/gfs2_convert
mkfs.gfs2命令的使用
-j 指定日志區域個數,有幾個就能被幾個節點掛載,因為格式化為集群文件系統后,每個節點都要有日志記錄
-J 指定日志大小,默認128M
-p {lock_dlm|lock_nolock} 分布式鎖管理|不用鎖
-t <name> 指定鎖表的名稱
注:一個集群可以有多個文件系統,如一個集群中共享了兩個磁盤,兩個磁盤可以是gfs2和ocfs2文件系統,不同的文件系統進行加鎖時,要用不同的鎖表進行唯一標示,所以每個鎖都要有鎖名稱
鎖表名稱的格式
cluster_name:鎖表名
如:mycluster:lock_sda
-D 顯示詳細的Debug信息
登入target,并格式化為gfs2文件系統
[root@node2 mnt]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -l
[root@node2 mnt]# mkfs.gfs2 -j 2 -p lock_dlm -t mycluster:lock_sde1 /dev/sde1
Are you sure you want to proceed? [y/n] y
Device: /dev/sde1
Blocksize: 4096
Device Size 3.00 GB (787330 blocks)
Filesystem Size: 3.00 GB (787328 blocks)
Journals: 2
Resource Groups: 13
Locking Protocol: "lock_dlm"
Lock Table: "mycluster:lock_sde1"
UUID: 9ebdc83b-9a61-9a4a-3ba7-9c80e59a0a2d
格式化完成,掛載測試
[root@node2 mnt]# mount -t gfs2 /dev/sde1 /mnt
[root@node2 mnt]# cd /mnt
[root@node2 mnt]# ll
total 0
[root@node2 mnt]# cp /etc/issue ./
[root@node2 mnt]# ll
total 8
-rw-r--r--. 1 root root 47 Dec 21 19:06 issue
ok,換node4
[root@node4 ~]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -l
node4不用再次格式化,直接掛載
[root@node4 ~]# mount -t gfs2 /dev/sdc1 /mnt
[root@node4 ~]# cd /mnt
[root@node4 mnt]# ll \\可以看到node1復制的文件
total 8
-rw-r--r--. 1 root root 47 Dec 21 19:06 issue
node4創建一個文件a.txt,會立馬通知給其他節點,讓其看到,這就是集群文件系統gfs2的好處
[root@node4 mnt]# touch a.txt
[root@node2 mnt]# ll
total 16
-rw-r--r--. 1 root root 0 Dec 21 19:10 a.txt
-rw-r--r--. 1 root root 47 Dec 21 19:06 issue
在加一個節點node5
[root@node5 ~]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -l
掛載不上去,因為只創建了兩個集群日志文件,有幾個日志幾個節點就能掛載
[root@node5 ~]# mount -t gfs2 /dev/sdc1 /mnt
Too many nodes mounting filesystem, no free journals
添加日志
[root@node2 mnt]# gfs2_jadd -j 1 /dev/sde1 \\-j 1 增加一個日志
Filesystem: /mnt
Old Journals 2
New Journals 3
[root@node2 mnt]# gfs2_tool journals /dev/sde1 \\此命令可以查看有幾個日志,每個默認大小128M
journal2 - 128MB
journal1 - 128MB
journal0 - 128MB
3 journal(s) found.
[root@node5 ~]# mount -t gfs2 /dev/sdc1 /mnt \\node5掛載成功
[root@node5 ~]# cd /mnt
[root@node5 mnt]# touch b.txt
[root@node4 mnt]# ll
total 24
-rw-r--r--. 1 root root 0 Dec 21 19:10 a.txt
-rw-r--r--. 1 root root 0 Dec 21 19:18 b.txt
-rw-r--r--. 1 root root 47 Dec 21 19:06 issue
gfs2集群文件系統一般支持的集群數量不能超過16個,超過后,性能直線下降
更多RHCS之用css_tool命令創建HA集群及創建gfs2集群文件系統相關文章請關注PHP中文網!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com