1. 程式人生 > 資料庫 >centos7 keepalived+mysql互為主從高可用叢集

centos7 keepalived+mysql互為主從高可用叢集

1. mysql互為主從的架構搭建

1.1 實驗環境

1.1.1 兩臺伺服器系統均為centos7

1.1.2 伺服器ip分配

MySQL Server1 : 192.168.153.135
MySQL Server2 : 192.168.153.136

1.1.3 實驗之前伺服器均關閉防火牆和selinux

關閉防火牆命令:

systemctl stop firewalld

關閉selinux命令:

setenforce 0

1.1.4 具體配置:centos7的和centos6相同

centos7安裝資料庫客戶端名稱為:mariadb,服務端名稱為:mariadb-server

 yum -y install mariadb-server mariadb

參考連結>>

2. keepalived搶佔模式配置

2.1 在兩臺伺服器上均安裝keepalived軟體

yum -y install keepalived

2.2 修改Server1上keepalived的配置檔案

2.2.1 修改命令

vim /etc/keepalived/keepalived.conf 

2.2.2 修改內容如下:

1)將14行的vrrp_strict註釋掉,註釋符為!

vrrp_strict引數的含義為:
嚴格遵守VRRP協議。下列情況將會阻止啟動Keepalived:1. 沒有VIP地址。2. 單播鄰居。3. 在VRRP版本2中有IPv6地址。這裡需要註釋掉

在這裡插入圖片描述

2)配置 vrrp_instance

在這裡插入圖片描述

3)配置 virtual_server

在這裡插入圖片描述

2.2.3 修改完成之後儲存退出並開啟keepalived服務

systemctl start keepalived

2.3 修改Server1上keepalived的配置檔案

2.3.1 修改命令

vim /etc/keepalived/keepalived.conf 

2.3.2 修改內容如下:

1)將14行的vrrp_strict註釋掉,註釋符為!

vrrp_strict引數的含義為:
嚴格遵守VRRP協議。下列情況將會阻止啟動Keepalived:1. 沒有VIP地址。2. 單播鄰居。3. 在VRRP版本2中有IPv6地址。這裡需要註釋掉

在這裡插入圖片描述

2)配置 vrrp_instance

在這裡插入圖片描述

3)配置 virtual_server

在這裡插入圖片描述

2.3.3 修改完成之後儲存退出並開啟keepalived服務

systemctl start keepalived

3. 驗證配置

3.1 在server1上VIP是否配置成功

命令:ip add
在這裡插入圖片描述

3.2 驗證VIP漂移

3.2.1 關閉server1上的mysql服務,

[root@host-135 ~]# systemctl stop mariadb

3.2.2 在server2上檢視VIP漂移成功

在這裡插入圖片描述

3.3 搶佔模式驗證

3.3.1 恢復server1上的mysql服務和keepalived服務

[root@host-135 ~]# systemctl start mariadb
[root@host-135 ~]# systemctl start keepalived

3.3.2 檢視VIP搶佔成功

在這裡插入圖片描述

3.4 詳細資訊可追蹤日誌檢視

命令:tailf /var/log/messages

3.4.1 server1進入master狀態

在這裡插入圖片描述

3.4.2 server2進入backup狀態

在這裡插入圖片描述

3.4.3 server1上的MySQL服務停掉之後,server2搶佔為master

在這裡插入圖片描述

3.4.3 server1上的MySQL服務和keepalived服務恢復之後,server1重新搶佔為master

在這裡插入圖片描述
而server2則恢復到backup狀態
在這裡插入圖片描述

4. keepalived非搶佔模式配置

4.1 修改Server1上keepalived的配置檔案

4.2.1 修改命令

vim /etc/keepalived/keepalived.conf 

4.2.2 修改內容如下:

將server1的狀態也修改為BACKUP,再新增一行引數nopreempt
在這裡插入圖片描述
修改完成之後儲存退出

4.2.3 重啟keepalived服務

systemctl restart keepalived

4.2 修改Server2上keepalived的配置檔案

4.2.1 修改命令

vim /etc/keepalived/keepalived.conf 

4.2.2 修改內容如下:

只需再新增一行引數nopreempt
在這裡插入圖片描述
修改完成之後儲存退出

4.2.3 重啟keepalived服務

systemctl restart keepalived

4.3 驗證

4.3.1 驗證135主機上VIP設定成功

在這裡插入圖片描述

4.3.2 驗證VIP漂移

停掉135主機上的mysql服務

[root@host-135 ~]# systemctl stop mariadb

在136主機上檢視漂移成功

在這裡插入圖片描述

4.3.3 非搶佔模式驗證

1)恢復135主機上的mysql服務和keepalived服務

[root@host-135 ~]# systemctl start mariadb keepalived

2)在135主機上檢視VIP不會漂移回來

在這裡插入圖片描述

3)停掉136主機上的mysql服務VIP發生漂移

[root@host-136 ~]# systemctl stop mariadb

4)在135主機上檢視VIP又會漂移回來

在這裡插入圖片描述