1. 程式人生 > >RHCS套件實現MYSQL資料儲存叢集

RHCS套件實現MYSQL資料儲存叢集

關於RHCS的介紹以及一些基本操作與配置可參考上一篇部落格:利用RHCS套件實現nginx高可用叢集
上一篇部落格中我們使用了RHCS套間中的高可用性叢集,這篇部落格我們就來看看RHCS套件中的儲存叢集吧,我們用RHCS+mysql來實現

實驗環境

開啟三臺虛擬機器
server1:172.25.66.1,下載ricci,luci,iscsi-,mysql,mysql-server
server2:172.25.66.2,下載scsi-

server4:172.25.66.4,下載ricci,iscsi-*,mysql-server
server1與server4之前做nginx高可用叢集時已經配置好了,只需要再下載iscsi-*就可以了

實驗操作

ext4檔案系統

1:在server2上面新加一塊硬碟,容量為8G
在這裡插入圖片描述
2:fdisk -l檢視
在這裡插入圖片描述
3:在server2中下載scsi-*
yum install scsi-* -y
在這裡插入圖片描述
4:在server2中編輯/etc/tgt/targets.conf檔案

 38 <target iqn.2008-09.com.example:server.target1>
 39         backing-store /dev/vdb
 40         initiator-address 172.25.66.1
 41         initiator-address 172.25.66.4
 42 </target>

在這裡插入圖片描述
/etc/init.d/tgtd start
在這裡插入圖片描述
5:用tgt-admin -s 檢視
在這裡插入圖片描述
6:在server1和server4中下載iscsi-*
在這裡插入圖片描述
7:在server1和server4上面執行:**兩個結點都要執行
iscsiadm -m discovery -t st -p 172.25.66.2 發現裝置
iscsiadm -m node -l
在這裡插入圖片描述
8:此時,在server1和server4上面就可以看到發現的硬碟裝置
用fdisk -l檢視,就會在最後看到一個8G的硬碟sda
在這裡插入圖片描述
9:在server1上建立lvm:
pvcreate /dev/sda
vgcreate clustervg /dev/sda
lvcreate -L 4G -n demo clustervg
在這裡插入圖片描述


在server4上發現(同步):
在這裡插入圖片描述
10:在server1上格式化lvm:
mkfs.ext4 /dev/clustervg/demo
在這裡插入圖片描述
11:停用nginx高可用:
我們之前做過RHCS實現nginx的高可用,現在我們要將之前做的有關nginx的全部停用
進入網頁luci介面Delete刪除nginx:
在這裡插入圖片描述
之後到下面的介面刪除nginx:
在這裡插入圖片描述
12:在server1中下載mysql mysql-server,在server4中下載mysql-server
下載好之後,在server1中將剛才建立的lvm掛載到/var/lib/mysql目錄
cd /var/lib/mysql
mount /dev/clustervg/demo /var/lib/mysql
df
在這裡插入圖片描述
13:掛載之後/var/lib/mysql 目錄的屬主與屬組都會變成root使用者,我們需要將它改為mysql使用者
在這裡插入圖片描述
14:在server1上開啟mysqld:
/etc/init.d/mysqld start
在這裡插入圖片描述
15:進入/var/lib/mysql目錄會看到以下內容,然後關閉mysqld並解除安裝lvm
在這裡插入圖片描述
16:在server4中掛載lvm,如圖所示,在server1的mysqld服務關閉後,在server1的所有儲存都會轉移到server4
在這裡插入圖片描述
17:在server4中解除安裝lvm
18:在luci圖形管理介面中,移除之前的nginx服務,換成mysql服務;節點為server1和server4不改變;再新增一個資源—>檔案系統,並將資源新增到服務中(詳細過程參見上篇部落格);fence裝置不變。
點選Service Groups,刪除原來的新增,重新配置,這次的新增順序是IP Address —-> Filesystem —-> Script(因為服務開啟的順序就是先分配VIP,然後開啟儲存,然後再是服務)
在這裡插入圖片描述
再次點選Add,選擇script,因為我們在安裝了mysql後,在/etc/init.d中就會有mysql的啟動指令碼,所以我們可以直接新增
在這裡插入圖片描述
在下面的介面中點選Add新增
在這裡插入圖片描述
做好上面這一步後,點選左下方的Add Resource新增之前新增號的資源,,新增順序是IP Address —-> Filesystem —-> Script(因為服務開啟的順序就是先分配VIP,然後開啟儲存,然後再是服務)
在這裡插入圖片描述
新增完成後點選submit提交
mysql資料儲存叢集就做好了
在這裡插入圖片描述
19:在server1中使用clustat檢視:
在這裡插入圖片描述
目前服務啟用的節點為server1,我們用server1進入mysql檢視資料庫可以看到lost+found資料庫
在這裡插入圖片描述
我們可以在網頁luci介面將啟用的節點換為server4
在這裡插入圖片描述
點選上圖中紅框所示,然後選擇server4,最後點選右邊藍色圓圈就可以成功切換
在這裡插入圖片描述
20:現在我們可以在server4中進入資料庫,看是否可以看到lost+found資料庫
在這裡插入圖片描述
在這裡插入圖片描述

更改檔案系統為叢集gfs2檔案系統

首先我們用的是ext4檔案系統進行格式化,ext4是本地檔案系統,所以儲存的同步的檔案顯示需要另一臺進行解除安裝再掛載的操作,我們現在將ext4檔案系統改為gfs2檔案系統
gfs2(global file system 2):叢集檔案系統,可以讓多個節點同時使用同一個檔案系統,當一個節點使用時會藉助DLM機制通過lock_dlm進行加鎖,並通知給其他節點持有的鎖資訊
GFS是RHCS為集群系統提供的一個儲存解決方案,它允許叢集多個節點在塊級別上共享儲存,每個節點通過共享一個儲存空間,保證了訪問資料的 一致性,更切實的說,GFS是RHCS提供的一個叢集檔案系統,多個節點同時掛載一個檔案系統分割槽,而檔案系統資料不受破壞,這是單一的檔案系統,例如EXT3、 EXT2所不能做到的。
操作:
1:在server4中停用mysql高可用 ##因為現在mysql執行在server4上
clusvcadm -d mysql
在這裡插入圖片描述
2:進入到下圖介面
在這裡插入圖片描述
在上圖中往下拉找到filesystem,然後點選remove刪除
remove後點擊最下面的submit提交
然後進入下圖介面:
在這裡插入圖片描述
刪除(delete)紅框中的內容
在這裡插入圖片描述
3:在server1中掛載lvm到/var/lib/mysql
在這裡插入圖片描述
拉伸lvm到8G
lvextend -L +4G /dev/clustervg/demo
lvextend -l +1023 /dev/clustervg/demo
在這裡插入圖片描述
4:在server4中用vgs檢視,lvm也變為8G
在這裡插入圖片描述
5:在server1中對lvm做熱拉伸
在這裡插入圖片描述
6:在server1中用df -h檢視lvm大小,已經變為8G
在這裡插入圖片描述
7:在server1中執行:
umount /var/lib/mysql
lvremove /dev/clustervg/demo
在這裡插入圖片描述
server4中lvs檢視
在這裡插入圖片描述
server4中也已經看不到之前的邏輯卷
8:在server1中再建立一個lv
lvcreate -L 4G -n demo clustervg
在這裡插入圖片描述
9:在server1中執行:(格式化)
mkfs.gfs2 -j 3 -p lock_dlm -t westos_ha:mygfs2 /dev/clustervg/demo

# -j 3  為檔案系統中日誌的數量加1
# -p lock_dlm表示對共享儲存進行操作時,加鎖
# -t gd_HA:mygfs2 表示叢集名稱以及起的檔案系統名稱,在luci介面中設定的叢集名稱
# /dev/clustervg/demo  表示共享的磁碟區域

在這裡插入圖片描述
10:在server1中,掛載lvm到/var/lib/mysql,並修改/var/lib/mysql目錄的屬主和屬組為mysql使用者,方便向此目錄中寫檔案
在這裡插入圖片描述
11:在server1中開啟mysqld:
/etc/init.d/mysqld start
在這裡插入圖片描述
12:在server4中識別server1中的gfs2檔案系統
在這裡插入圖片描述
13:在server1和server4中關閉mysqld
/etc/init.d/mysqld stop
14:在server1中編寫自動掛載檔案/etc/fstabs並測試掛載情況
vim /etc/fstab 寫入:
在這裡插入圖片描述
測試自動掛載:
在這裡插入圖片描述
15:在server4中編輯/etc/fstab,內容和上一步在server1中的一樣
將上面的操作都做好後,在server1中啟用mysql高可用叢集
在這裡插入圖片描述
在這裡插入圖片描述
可以看到現在高可用叢集主節點執行在server1上,我們可以用命令直接將高可用服務遷移到server4上:
在server1中
clusvcadm -r mysql -m server4
在這裡插入圖片描述
現在我們可以在server4中用clustat檢視
在這裡插入圖片描述
可以看到,服務已經遷移到了server4上
16:測試
在server1中:
在這裡插入圖片描述
不用重新解除安裝掛載裝置,我們直接在server4中檢視:
在這裡插入圖片描述
可以看到,server4中已經直接同步了server1中的儲存,這就是gfs2檔案系統的好處!