上一篇介紹了MySQL的雙主備份,本次總結keepalived的安裝與使用。
MySQL的雙主備份:https://blog.csdn.net/u011144417/article/details/84614933
參考資料
mysql雙機熱備的實作 : https://blog.csdn.net/qq394829044/article/details/53203645
keepalived :http://www.cnblogs.com/guantou1992/p/9729465.html
windows+ubuntu雙系統安裝:https://www.linuxidc.com/Linux/2016-04/130520.htm
Ubuntu 安裝keepalived:https://blog.csdn.net/lvshanhshan/article/details/80559437
環境
系統:Ubuntu -16.04.3
A伺服器:192.168.1.201
B伺服器:192.168.1.201
keepalived IP:192.168.1.200
安裝基本依賴庫
apt-get install keepalived libpop-dev libssl-dev openssl daemon
安裝keepalived
apt-get install keepalived
我的機器不知道為什麼,/etc/keepalievd目錄是空的,于是進行離線安裝。
keepalived下載下傳位址:www.keepalived.org/software
我下載下傳後放到了/usr/local/src目錄下。
tar zxvf keepalived-1.2.18.tar.gz
cd keepalived-1.2.18
./configure --prefix=/usr/local/keepalived
make && make install
keepalived的配置
mkdir /etc/sysconfig
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/sbin/keepalived /sbin/
把keepalived 的配置檔案放到/etc/keepalived 下,keepalived預設會讀取這個檔案。
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
編輯配置檔案,修改以下的内容即可:
vi /etc/keepalived/keepalived.conf
參考如下:
! Configuration File for keepalived
global_defs {
notification_email {
[email protected] # 報警郵件接收人的位址
}
notification_email_from [email protected] # 發送報警郵件發件人位址
smtp_server 127.0.0.1 # 發送郵件的伺服器位址
smtp_connect_timeout 30 # 郵件逾時時間(可以根據自己的需求進行設定)
router_id LVS_DEVEL # 一個執行個體的辨別位址(可以有多個執行個體但不能相同)
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script monitor_nginx {
script "/opt/chk_mysql.sh" #根據自己的實際路徑放置腳本檔案
interval 2 # 腳本執行間隔
Weight -5 #腳本結果導緻的優先級變更:5表示優先級加5;-5表示優先級減5
fall 2
rise 1
}
vrrp_instance VI_1 {
state MASTER # 設定伺服器模式master端 從伺服器設定為BACKUP
interface enp2s0 # 執行個體網卡,也就是提供服務的網卡,可通過ifconfig
virtual_router_id 51 # 設定vrid 主從伺服器設定一樣
priority 101 # 設定本節點的優先級,優先級高的為master
advert_int 1 # 檢查間隔,預設為1秒
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.200 # 設定vip,虛拟ip位址
}
ck_script {
chk_mysql_port
}
}
chk_mysql.sh内容如下:
#!/bin/bash
counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l)
if [ "${counter}" -eq 0 ]; then
service keepalived stop
fi
将keepalived作為系統啟動服務
mkdir -p /etc/rc.d/init.d
cp /usr/share/initramfs-tools/scripts/functions /etc/rc.d/init.d/
vi /etc/init.d/keepalived +23
修改如下:
#daemon keepalived ${KEEPALIVED_OPTIONS}#注釋目前行,添加如下内容
daemon keepalived start
建立subsys目錄
mkdir /var/lock/subsys
(注意: 此目錄在伺服器重新開機後會消失,需要将其寫到開機啟動項中;如寫到/etc/rc.local裡)
開機自啟動
vi /etc/rc.local
修改為以下内容即可:
mkdir /var/lock/subsys
service keepalived start
exit 0
啟動keepalived
service keepalived start
驗證
ip addr show
從伺服器的ip addr show 是不會有192.168.1.200 這個ip位址的,除非等master伺服器當機後,成為主節點後就會自動生成這個虛拟IP位址的,當master伺服器正常後就會自動消失。
遇到的問題解決方案
-------------------------------------
1、啟動錯誤 Unit keepalived.service is masked.
keepalived.service 拷貝覆寫/lib/systemd/system/keepalived.service
在/var/run/下建立一個檔案touch keepalived.pid
修改之後 運作systemctl daemon-reload#重新載入 systemd
2、Failed to start LVS and VRRP High Availability Monitor
去/lib/systemd/system/keepalived.service配置檔案中是否有目錄或檔案錯誤。
修改之後 運作systemctl daemon-reload#重新載入 systemd
配置systemctl常用指令
systemctl daemon-reload 重新加載
systemctl enable keepalived.service 設定開機自動啟動
systemctl disable keepalived.service 取消開機自動啟動
systemctl start keepalived.service 啟動
systemctl stop keepalived.service停止