centos7 keepalived+mysql互為主從高可用叢集
阿新 • • 發佈:2021-01-10
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