1. 程式人生 > >RHCS叢集架構實現mysql高可用

RHCS叢集架構實現mysql高可用

關於一些基本配置參考上一篇關於niginx的高可用

目前的作業系統為rhel6.5
 

server1 172.25.12.1

server2 172.25.12.2

server4 172.25.12.4

yum源需要新增高可用套件

[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.12.250/rhel6.5
enabled=1
gpgcheck=1

[HighAvailability]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.12.250/rhel6.5/HighAvailability
enabled=1
gpgcheck=1

[LoadBalancer]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.12.250/rhel6.5/LoadBalancer
enabled=1
gpgcheck=1

[ResilientStorage]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.12.250/rhel6.5/ResilientStorage
enabled=1
gpgcheck=1

[ScalableFileSystem]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.12.250/rhel6.5/ScalableFileSystem
enabled=1
gpgcheck=1

服務安裝

server1=====> (ricci,luci,iscsi-*)

server2=====>(scsi-*)

server4=====>(ricci)

給server2新增一塊硬碟,將/dev/vdb(新新增的硬碟)共享給server1和server4

 vim /etc/tgt/targets.conf
 38 <target iqn.2018-08.com.example:server.target1>
 39     backing-store /dev/vdb        #可以使用fdisk -l檢視
 40     initiator-address 172.25.12.1
 41     initiator-address 172.25.12.4
 42 </target>

 /etc/init.d/tgtd restart

 server1和server4:

 iscsiadm -m discovery -t st -p 172.25.12.2              ###發現裝置
 iscsiadm -m node -l                                    ###登陸

登陸完以後可以使用fdisk -l檢視得到的共享盤
 

  pvcreate /dev/sda
  vgcreate clustervg /dev/sda

  lvcreate -L 4G -n demo clustervg

這個過程可以在server1中做,在server4中使用pvs,vgs,lvs重新整理,可以看到已經同步

mkfs.ext4 /dev/clustervg/demo

server1
 

yum install mysql-server

mount /dev/clustervg/demo /var/lib/mysql/

/etc/init.d/mysqld start

umount /var/lib/mysql/        

可以看到這些操作在兩個伺服器上是同步的

設定好以後在網頁進行叢集操作

建立VIP

 建立啟動指令碼

 

 資料存放的地方

 

 建立service groups

 

 

 

 測試

fence可以參考上一篇nginx的配置

拓展:轉化為gfs2磁碟格式

1、GFS2 檔案系統簡介

GFS2 檔案系統不提供對上下文關聯路徑名的支援,上下文關聯路徑名允許您生成指向各種目的地檔案或者目錄的符號連結,可以實現多個伺服器同時掛載,應用於叢集場景。

2、通過clusvcadm關閉服務(server1、4)

clusvcadm -d mysql

3、檢視lvm.conf資訊(server1)

可以檢視下此處是否為3,如果不會3會出現同步過去的分割槽所帶屬性不對,出現原因,安裝包未下載完全:

 vim /etc/lvm/lvm.conf
 461     # change metadata.
 462     locking_type = 3

在把剩餘的4G建立成/dev/sda2,並把2個分割槽格式改為Linux Lvm
注意:一定要保證server4能同步,可以partprobe或partx -a /dev/sda更新分割槽表,pvs、vgs、lvs檢視

 vgcreate vg_cluster /dev/sda1
 lvcreate -l +1023 -n demo vg_cluster
 mkfs.gfs2 -j 3 -p lock_dlm -t today:mygfs2  /dev/vg_cluster/demo    ###建立在叢集之上,-j:設定支援的節點數 -p:指定鎖方式為分散式鎖 -t:指定DLM鎖所在的表名稱

4、進行lvm拉伸

 pvcreate /dev/sda2 
 vgextend vg_cluster /dev/sda2
 lvextend -l +1023 /dev/vg_cluster/demo
 gfs2_grow /dev/vg_cluster/demo

5、檢視資訊

 gfs2_tool sb /dev/vg_cluster/demo all

6、自動掛載方法

 umount /mnt
 vim /etc/fstab
 /dev/vg_cluster/demo  /var/lib/mysql    gfs2   _netdev   0 0

 mount -a

7、測試:

(1)server1和server4同時掛載

 mount /dev/vg_cluster/demo /mnt/

(2)結果

在/mnt裡面建立一個檔案,另外一邊可以進行實時更新顯示!!!