CentOS6基於RHCS集羣解決SAN存儲數據一致性及在線擴容問題

存儲區域網絡(Storage Area Network,簡稱SAN)採用網狀通道(Fibre Channel ,簡稱FC,區別與Fiber Channel光纖通道)技術,經過FC交換機鏈接存儲陣列和服務器主機,創建專用於數據存儲的區域網絡。SAN通過十多年曆史的發展,已經至關成熟,成爲業界的事實標準(但各個廠商的光纖交換技術不徹底相同,其服務器和SAN存儲有兼容性的要求)。

CentOS6基於RHCS集羣解決SAN存儲數據一致性及在線擴容問題CentOS6基於RHCS集羣解決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

本文地址:https://www.linuxprobe.com/linux-rhcs.html

相關文章
相關標籤/搜索