HA雙機熱備配置
HA(高可用性叢集)當主機處於工作狀態時,從機處於休眠狀態,當主機宕機時,從機便會開始工作,讓使用者幾乎感覺不到服務的中斷,類似於網路路由配置中的備份。當主機存活時,所有的資源全在主機上,通過網路儲存,光纖連線或者是一些第三方儲存裝置。主機宕機後,資源就會從主機上自動掛到從機上。
一、實驗所需的裝置
在虛擬機器中安裝兩個新的Linux伺服器,每個伺服器有兩塊網絡卡,eth0為主機模式,eth1為橋接模式或者是NAT模式。eth1會模擬為對外服務,eth0在內網中作為心跳線,起心跳檢測的作用,用來檢測主機和從機之間是否有存活。
二、從機上的服務安裝
採用的事yum安裝,yum安裝能解決安裝包依賴的問題。
1、 yum install epel-release 安裝epel yum源
yum install heartbeat* 安裝heartbeat服務
yum install nginx 拿web服務做測試
yum install libnet 安裝libnet函式庫
2、cd /etc/ha.d/
把所需要的檔案從/usr/share/doc/heartbeat/中拷到/etc/ha.d/目錄下,所需要的檔案是haresources,authkeys,ha.cf。
然後進行檔案的修改
(1)、vim /etc/ha.d/authkeys
把#auth1
#3 md5 Hello改為
auth1
3 md5 Hello
(2)、然後更改該檔案的許可權
chmod 600 authkeys
(3)、修改haresources檔案
vim haresources
在最後一行加上
主機名(主機) VIP(VIP是虛擬IP,改為對外提供服務的eth1網段內的一個虛擬IP)/24/eth1:0 nginx
例如:zhuji1 192.168.137.11/24/eth1:0 nginx
(4)、修改ha.cf檔案
vim ha.cf
把#debugfile除錯日誌檔案
#logfile日誌檔案
#keeplive 2 2秒檢測一下存活時間
#deadtime 30 30秒為檢測到存活則認為主機死亡
#warntime 10 警告時間段為10 秒
#initdead 120 120秒的初始時間
#udpport 694 提供服務通訊的udp埠
#ucast單播對方的IP
#node 主機名
#node 從機名
#ping 這個是仲裁IP
#respawn hacluster /usr/lib/heartbeat/ipfail
之前的#去掉
在ucast 那行加上
ucast eth0192.168.13.129
其中eth0 192.168.13.129 是對方的內網即心跳線的IP
再加上
node 主機名
node 從機名
還有很重要的一步
加上ping 192.168.13.1這個IP是作為仲裁,一般是內網的閘道器,因為閘道器較為穩定。意思是可以通過這個仲裁IP找到單播IP
(5)、vim /etc/hosts
加上主機和從機的IP和使用者名稱
例如 主機IP 主機名
從機IP 從機名
第五步在主機上也要寫
三、把在從機上配置好的檔案複製到主機上去
可以用在從機的/etc/ha.d/目錄下scp haresources ha.cf authkeys 主機名:/etc/ha.d下的方法進行復制
如果沒有scp命令的話可以安裝一下
yum install openssh-clients主機從機上都要安裝
複製完之後再主機上只需要更改一個地方即可,就是ha.cf中的一個配置即ucast eth0 加對方心跳線的IP
四、配置完上述配置之後,關閉所有的防火牆和selinux
iptables -F
vim /etc/sysconfig/selinux
把SELINUX=enforcing改為SELINUX=disabled
五、然後就是服務的啟動了
應該先啟動主機上的heartbeat服務再啟動從機上的heartbeat服務。
六、測試
可以在主機上通過ifconfig和ps aux |grep nginx來檢視
先啟動主機再啟動從機之後我們可以看到在主機上有我們配置的VIP以及nginx 服務的程序,而在從機上沒有。我們可以在主機上寫一條防火牆記錄來測試我們服務的正確性。
iptables -I INPUT -p icmp -j DROP
然後注意觀察我們的日誌檔案 tail -f /var/log/ha-log可以看到日誌明顯的變化。而在從機上通過ifconfig可以看到VIP,這就說明我們的配置成功了。
也可以利用測試網頁來驗證
在主機上echo “主機” >>/usr/share/nginx/html/index.html
在從機上echo “從機” >>/usr/share/nginx/html/index.html
然後我們可以在瀏覽器上通過輸入我們配置的VIP以及把主機切斷在輸入我們的VIP來驗證。