在上一篇部落格中我們說到RHCS套件提供了叢集系統中三種叢集構架,分别是高可用性叢集、負載均衡叢集、存儲叢集。說完高可用性叢集,再來看看存儲叢集的配置與實作(以mysql為例)。
一.環境配置
1.在server2添加一塊磁盤作為共享磁盤
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TPBFGMWNjY1kjVlhGcywEMW1mY1RzRapnTtxkb5ckYplTeMZTTINGMShUYvwFd4VGdvwlMvw1ayFWbyVGdhd3P3IDN1YDN0EzMwgDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
2.在server1和server4中安裝iscsi用戶端:
yum install iscsi-* -y
在server2安裝scsi服務端(共享磁盤所在端):
yum install -y scsi-*
3.在server2上編寫iscsi的配置檔案,允許server1和server4發現并登陸共享檔案
4.在server1和server4用戶端發現server2上的共享裝置并登陸
5.在server用戶端制作LVM分區,在server4端同步
在server4同步LVM分區:
二.MYSQL服務在共享磁盤中的應用
(一)ext4檔案系統:
1.在serve1和server4端下載下傳mysql-server
2.在server1中将LVM分區挂載在資料庫的目錄下
3.修改資料庫目錄的所屬人和所屬組(為了向這裡邊寫入資料),并打開資料庫服務,發現目錄中有個檔案mysql.sock
4.在luci圖形管理界面中,移除之前的nginx服務,換成mysql服務;節點為server1和server4不改變;再添加一個資源—>檔案系統,并将資源添加到服務中(詳細過程參見上篇部落格);fence裝置不變。
點選Service Groups,删除原來的添加,重新配置,這次的添加順序是IP Address —-> Filesystem —-> Script(因為服務開啟的順序就是先配置設定VIP,然後開啟存儲,然後再是服務)
服務啟動腳本修改為mysql的腳本:
5.檢視server1和server4的提供服務狀态,并檢視接管服務的節點是否含有服務特殊檔案。
6.在luci界面将提供mysql服務的節點換成server4,在server1上解除安裝LVM分區檢視server4中mysql資料庫。(注意mysql服務要為開啟狀态,下圖中還未開服務)
服務切換到了server4上,在server4中的資料庫中出現特殊檔案:
兩個需要注意的點:
1、首先我們用的是ext4檔案系統進行格式化,ext4是本地檔案系統,是以存儲的同步的檔案顯示需要另一台進行解除安裝再挂載的操作。
2.保證clvmd服務開啟,要開啟才可能同步,還需要軟體lvm2-cluster的支援,這些在最開始選擇Download(luci圖形界面)都自動下載下傳好了
ext4檔案系統是本地檔案系統,不能同時在多個地方挂載和進行寫操作,容易造成資料的丢失和污染,為了解決這個問題,我們介紹一下共享檔案系統gfs2.
(二)gfs2叢集檔案系統
gfs2(global file system2):叢集檔案系統,可以讓多個節點同時使用同一個檔案系統,當一個節點使用時會借助DLM機制通過lock_dlm進行加鎖,并通知給其他節點持有的鎖資訊
GFS是RHCS為叢集系統提供的一個存儲解決方案,它允許叢集多個節點在塊級别上共享存儲,每個節點通過共享一個存儲空間,保證了通路資料的一緻性,更切實的說,GFS是RHCS提供的一個叢集檔案系統,多個節點同時挂載一個檔案系統分區,而檔案系統資料不受破壞,這是單一的檔案系統,例如EXT3、EXT2所不能做到的。
1.在server1上停掉mysql服務,發現在luci界面中mysql服務的狀态已經變為disabled
2.在之前的本地檔案系統中,我們向luci的資源中加入了本地檔案系統ext4,現在将該資源移除:Services Groups—>remove—>submit
3.在server1中将lvm挂載到到mysql預設目錄,并拉伸其大小為8G,在server中同步
4.在server1中對lvm做熱拉伸,并用df -h檢視拉伸的結果
5.修改lvm檔案系統為叢集g2fs檔案系統
lvremove /dev/clustervg/demo # 删除之前的lv
lvcreate -L G -n demo clustervg # 重建立立lv
mkfs.gfs2 -j -p lock_dlm -t jay_mysql:mygfs2 /dev/clustervg/demo
# 修改檔案系統為gfs2格式,并做相應配置
# -j 3 為檔案系統中日志的數量加1
# -p lock_dlm表示對共享存儲進行操作時,加鎖
# -t jay_mysql:mygfs2 表示叢集名稱以及起的檔案系統名稱
# /dev/clustervg/demo 表示共享的磁盤區域
6.在servere中修改mysql目錄的所屬組和所屬主為mysql,友善向目錄中寫檔案
7.在server中識别server1中的gfs2檔案系統
8.在server1和server4中關閉mysqld,編寫自動挂載檔案/etc/fstabs并測試挂載情況
9.在server1中啟動高可用叢集來管理mysql服務
clusvcadm -e mysql
10.測試:在server1中mysql的目錄下寫東西,同步到server4的mysql目錄下
server4中也出現passwd: