1. 程式人生 > >RHCS實現高可用中的共享儲存iscisi(mysql為例)

RHCS實現高可用中的共享儲存iscisi(mysql為例)

1、實驗環境

server2 172.25.66.2(配置Nginx、ricci、luci) server3 172.25.66.3(Apache) server4 172.25.66.4 (Apache) server5 172.25.66.5(配置Nginx、ricci)

二、共享儲存iscsi

1、在server3上新增一塊磁碟作為共享磁碟

在這裡插入圖片描述

2、在server2和server5上安裝iscsi,並在server3中安裝scsi服務端(共享磁碟所在處)

[[email protected] ~]# yum install -y iscsi-*
[[email protected]
~]# yum install -y iscsi-* [[email protected] ~]# yum instal -y scsi-*

在這裡插入圖片描述 在這裡插入圖片描述

3、在server3上編輯iscsi配置檔案,允許server2和server5發現並登入共享檔案

[[email protected] ~]# vim /etc/tgt/targets.conf
 41 <target iqn.2018-10.com.example:server.target1>
 42         backing-store /dev/vdc
 43         initiator-address 172.25.66.2
 44         initiator-address 172.25.66.5
 45 </target>
 [
[email protected]
~]# /etc/init.d/tgtd start

在這裡插入圖片描述

4、在server2和server5客戶端發現server3上的共享裝置並登入

[[email protected] ~]# iscsiadm -m discovery -t st -p 172.25.66.3
[[email protected] ~]# iscsiadm -m node -l
[[email protected] ~]# cd /var/lib/iscsi/nodes/
[[email protected] nodes]# ls
iqn.2018-10.com.example:server.target1
[
[email protected]
~]# iscsiadm -m discovery -t st -p 172.25.66.3 [[email protected] ~]# iscsiadm -m node -l

在這裡插入圖片描述

5、在server2客戶端製作LVM分割槽,在server4中同步

[[email protected] nodes]# pvcreate /dev/sda 
[[email protected] nodes]# vgcreate cluster_vg /dev/sda
[[email protected] nodes]# lvcreate -L +4G -n demo cluster_vg
[[email protected] nodes]# mkfs.ext4 /dev/cluster_vg/demo	#格式化為ext4檔案系統 

在這裡插入圖片描述 在這裡插入圖片描述

6、建立資料庫

[[email protected] ~]# yum install mysql-server -y
[[email protected] ~]# chown mysql.mysql /var/lib/mysql/
[[email protected] ~]# yum install mysql-server -y

三、叢集設定

1、將server3和server4上的httpd服務關閉

2、點選Resources,選擇filesystem,新增相應的資訊,點選submit

新增storage 在這裡插入圖片描述 新增指令碼: 在這裡插入圖片描述

3、點選Service Groups,配置:IP Address —-> Filesystem —-> Script(因為服務開啟的順序就是先分配VIP,然後開啟儲存,然後再是服務),點選submit

在這裡插入圖片描述 依次新增三個資源: 在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述

4、檢視叢集結果

在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述

四、設定共享磁碟為gfs2格式

1、gfs2檔案系統

gfs2(global file system 2):叢集檔案系統,可以讓多個節點同時使用同一個檔案系統,當一個節點使用時會藉助DLM機制通過lock_dlm進行加鎖,並通知給其他節點持有的鎖資訊 GFS是RHCS為集群系統提供的一個儲存解決方案,它允許叢集多個節點在塊級別上共享儲存,每個節點通過共享一個儲存空間,保證了訪問資料的一致性,更切實的說,GFS是RHCS提供的一個叢集檔案系統,多個節點同時掛載一個檔案系統分割槽,而檔案系統資料不受破壞,這是單一的檔案系統,例如EXT3、 EXT2所不能做到的。 ext4檔案系統是本地檔案系統,不能同時在多個地方掛載和進行寫操作,容易造成資料的丟失和汙染,為了解決這個問題,提出了共享檔案系統gfs2

2、配置gfs2檔案系統

  • 在server2中對lvm作熱拉伸,
[[email protected] ~]# lvextend -L +1020 /dev/cluster_vg/demo 
[[email protected] ~]# resize2fs /dev/cluster_vg/demo 

在這裡插入圖片描述 在這裡插入圖片描述

  • 修改lvm檔案系統為叢集g2fs檔案系統
[[email protected] ~]# clusvcadm -d sql
[[email protected] ~]# mkfs.gfs2 -p lock_dlm -t westos_JY:mygfs2 -j 3 /dev/cluster_vg/demo 	#-j 3 為檔案系統中日誌的數量加1;-p lock_dlm表示對共享儲存進行操作時加鎖;-t westos_JY:mygfs2 表示叢集名稱以及起的檔案系統的名稱;/dev/cluster_vg/demo 表示共享的磁碟區域

在這裡插入圖片描述

  • 在server2上停掉mysql服務
[[email protected] ~]# clusvcadm -d sql

在這裡插入圖片描述

  • 掛載,修改mysql目錄的所有人和所有組,方便向目錄中寫檔案
[[email protected] ~]# mount /dev/cluster_vg/demo /var/lib/mysql/
[[email protected] ~]# chown mysql.mysql /var/lib/mysql/
  • 識別server2中的gfs2檔案
[[email protected] ~]# gfs2_tool sb /dev/cluster_vg/demo all

在這裡插入圖片描述

  • 在server2和server5中設定開機自動掛載
[[email protected] ~]# vim /etc/fstab 
[[email protected] ~]# vim /etc/fstab 

在這裡插入圖片描述 這裡寫入的UUID是用blkid命令查看出來的 在這裡插入圖片描述

  • 測試:在server5中mysql目錄下寫東西,可以同步到server2的mysql目錄下
[[email protected] ~]# cd /var/lib/mysql/
[[email protected] mysql]# cp /etc/passwd .
[[email protected] mysql]# ls
ibdata1  ib_logfile0  ib_logfile1  mysql  passwd  test

在這裡插入圖片描述 在實驗中應該注意的是 (1)在ext4檔案系統中,ext4是本地檔案系統,所以儲存的同步的檔案顯示需要另一臺進行解除安裝再掛載的操作。 (2) 保證clvmd服務開啟,要開啟才可能同步,還需要軟體lvm2-cluster的支援,這些在最開始選擇Download(luci圖形介面)都自動下載好了 (3)ext4檔案系統是本地檔案系統,不能同時在多個地方掛載和進行寫操作,容易造成資料的丟失和汙染,為了解決這個問題,提出了共享檔案系統gfs2 我在實驗中遇到的一個問題:在這裡插入圖片描述 解決方法:原因是:在修改vim /etc/tgt/targets.conf時,把initiator-address沒有寫對,寫對是這個的在這裡插入圖片描述