存儲區域網絡(Storage Area Network,簡稱SAN)採用網狀通道(Fibre Channel ,簡稱FC,區別與Fiber Channel光纖通道)技術,經過FC交換機鏈接存儲陣列和服務器主機,創建專用於數據存儲的區域網絡。SAN通過十多年曆史的發展,已經至關成熟,成爲業界的事實標準(但各個廠商的光纖交換技術不徹底相同,其服務器和SAN存儲有兼容性的要求)。 |
規劃,環境準備html
集羣的node與管理節點都是centos6系列,這裏是centos6.9,存儲能夠是其餘的版本node
主機名/角色 IP地址 node1 192.168.1.41 node2 192.168.1.42 node3 192.168.1.43 manage 192.168.1.44 storage 192.168.1.40 環境已經準備好啦,設備也共享出來了,此實驗中不須要任何操做此機器,如何配置此參看https://boke.wsfnk.com/archives/349.html
配置RHCS羣集linux
第一:根據規劃,修改主機名,修改hosts文件vim
vim /etc/hosts vim /etc/syscomfig/network
第二:全部節點,關閉selinux和iptablescentos
chkconfig iptables off sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
第三:在manage管理節點上安裝集羣管理軟件瀏覽器
yum install luci -y chkconfig luci on service luci start
啓動luci後,會顯示一個地址,咱們這裏是https://storage:8084/,經過瀏覽器對其訪問,注意,登陸的用戶名是root,密碼就是系統root的密碼。服務器
第四:在node節點上安裝RHCS集羣包(ricci rgmanager cman)網絡
yum install ricci rgmanager cman -y
第五:在node節點上啓動ricci,rgmanager(cman能夠先不啓動,等集羣建立成功並啓動啓動後,會自動啓動)app
chkconfig ricci on chkconfig rgmanager on chkconfig cman on service ricci start service rgmanager start
第六:在各個node節點上配置ricci用戶的密碼分佈式
passwd ricci
第七:訪問集羣管理節點,並建立集羣
https://192.168.1.44:8084 Manage Clusters >> Create >> 填上節點的主機名,還有密碼,其餘的默認不填 >> 勾選Use Locally Installed Packages >> 勾選Enable Shared Storage Support 而後提交
第八:驗證,在各個node節點上運行clustat命令,就能看到節點在羣集中的狀態
clustat [root@node1 ~]# clustat Cluster Status for picture-cluster @ Fri Oct 13 18:37:40 2017 Member Status: Quorate Member Name ID Status ------ ---- ---- ------ node1 1 Online, Local node2 2 Online node3 3 Online
能夠看到各節點狀態都是online,說明配置成功
建立gfs文件系統,並掛載使用,以解決數據一致性問題
第九:建立GFS集羣文件系統,並啓動clvmd
#在各個node節點上安裝lvm2-cluster gfs2-util yum install lvm2-cluster gfs2-utils -y chkconfig clvmd on lvmconf --enable-cluster service clvmd start
第十:在各個node節點上安裝initiator端,並掛載storage端導出的共享設備
yum install -y iscsi-initiator-utils iscsiadm --mode discovery --type sendtargets --portal 192.168.1.40 #發現設備 [root@node1 ~]# iscsiadm --mode discovery --type sendtargets --portal 192.168.1.40 192.168.1.40:3260,1 iqn.1994-05.com.redhat:scst1 iscsiadm -d2 -m node --login #掛載設備 應該加上iscsid的開機自動啓動 chkconfig iscsid on
第十一:在一個節點上,對共享的那塊磁盤,進行分區,建立lv
fdisk /dev/sdb pvcreate /dev/sdb1
問題一:解決爲什麼在第一個節點上第一次建立pv成功後,其餘節點pvs不會顯示pv狀態,如果在第十步重啓過全部的node節點系統,就不會出現這個問題
vgcreate datavg /dev/sdb1 lvcreate -n lvdata1 -L 1.5G datavg
問題二:如果這一步提示error,能夠嘗試命令
clvmd -R
第十二:格式化成gfs2文件系統
#在其中的一個已經掛載共享磁盤的node節點執行就能夠: mkfs.gfs2 -p lock_dlm -t cluster-A:wsfnk -j 2 /dev/datavg/lvdata1 -j #: 指定日誌區域的個數,有幾個就可以被幾個節點所掛載; GFS分區中最多支持多少個節點同時掛載,一般設定值爲節點數+1 -J #: 指定日誌區域的大小,默認爲128MB; -p {lock_dlm|lock_nolock}:所使用的鎖協議名稱,集羣須要使用lock_dlm; -t : 鎖表的名稱,格式爲clustername:fsname, clustername爲當前節點所在的集羣的名稱,這也是爲何要使用RHCS;fsname文件系統名稱,自定義,要在當前集羣唯一,這也叫鎖表名稱,代表是分佈式鎖的範圍。
第十三:在兩個節點上分別掛載
mount -t gfs2 /dev/datavg/lvdata1 /tmp
常見問題之,掛載數量限制與使用clvmd解決在線擴容問題
問題一:解決掛載數量限制問題
[root@node3 ~]# mount -t gfs2 /dev/datavg/lvdata1 /tmp Too many nodes mounting filesystem, no free journals [root@node2 tmp]# gfs2_tool journals /tmp #在已經掛載好的node節點上查看一下,所掛載到的目錄下的日誌文件(發現只有兩個,) journal1 - 128MB journal0 - 128MB 2 journal(s) found. 解決方法:在任意node節點上 gfs2_jadd -j 1 /dev/datavg/lvdata1 #後面是設備 再次查看日誌數量 [root@node2 tmp]# gfs2_tool journals /tmp journal2 - 128MB journal1 - 128MB journal0 - 128MB 3 journal(s) found.
問題二:在線擴展邏輯卷(在其中任何一個node節點上執行就行)
先查看lvs [root@node1 tmp]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv_root VolGroup -wi-ao---- 28.31g lv_swap VolGroup -wi-ao---- 3.20g lvdata1 datavg -wi-ao---- 1.50g 擴展 lvextend -L +300M /dev/datavg/lvdata1 resize2fs /dev/datavg/lvdata1 #你會發現此命令報錯,那是由於使用了gfs文件系統,這個命令不是管理gfs的, 再次查看 [root@node1 tmp]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv_root VolGroup -wi-ao---- 28.31g lv_swap VolGroup -wi-ao---- 3.20g lvdata1 datavg -wi-ao---- 1.79g 查看df掛載狀況(發現仍是沒有變成1.79) [root@node1 tmp]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 28G 887M 26G 4% / tmpfs 939M 32M 908M 4% /dev/shm /dev/sda1 477M 28M 425M 7% /boot /dev/mapper/datavg-lvdata1 1.5G 388M 1.2G 26% /tmp 須要同步gfs(此操做,只須要在其中任何一個節點執行就能夠了,由於數據一致性問題已經解決了) gfs2_grow /dev/datavg/lvdata1 再次查看(發現,已經正常了) [root@node1 tmp]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 28G 887M 26G 4% / tmpfs 939M 32M 908M 4% /dev/shm /dev/sda1 477M 28M 425M 7% /boot /dev/mapper/datavg-lvdata1 1.8G 388M 1.4G 22% /tmp
注意:要先在node節點上卸載umount設備,node節點才能關機哦
擴展知識
查看所掛載的目錄屬性 gfs2_tool gettune /tmp [root@node2 tmp]# gfs2_tool gettune /tmp incore_log_blocks = 8192 log_flush_secs = 60 quota_warn_period = 10 quota_quantum = 60 max_readahead = 262144 complain_secs = 10 statfs_slow = 0 quota_simul_sync = 64 statfs_quantum = 30 quota_scale = 1.0000 (1, 1) new_files_jdata = 0 最經常使用,設置是否馬上同步到磁盤的,通常設置爲1,下面咱們就來設置一下 gfs2_tool settune /tmp new_files_jdata 1 此操做針對單節點有效,想要都有效,須要都執行 gfs2_tool gettune /tmp [root@node2 tmp]# gfs2_tool gettune /tmpincore_log_blocks = 8192 log_flush_secs = 60 quota_warn_period = 10 quota_quantum = 60 max_readahead = 262144 complain_secs = 10 statfs_slow = 0 quota_simul_sync = 64 statfs_quantum = 30 quota_scale = 1.0000 (1, 1) new_files_jdata = 1