HA双机热备配置
HA(高可用性集群)當(dāng)主機(jī)處于工作狀態(tài)時(shí),從機(jī)處于休眠狀態(tài),當(dāng)主機(jī)宕機(jī)時(shí),從機(jī)便會(huì)開(kāi)始工作,讓用戶幾乎感覺(jué)不到服務(wù)的中斷,類似于網(wǎng)絡(luò)路由配置中的備份。當(dāng)主機(jī)存活時(shí),所有的資源全在主機(jī)上,通過(guò)網(wǎng)絡(luò)存儲(chǔ),光纖連接或者是一些第三方存儲(chǔ)設(shè)備。主機(jī)宕機(jī)后,資源就會(huì)從主機(jī)上自動(dòng)掛到從機(jī)上。
一、實(shí)驗(yàn)所需的設(shè)備
在虛擬機(jī)中安裝兩個(gè)新的Linux服務(wù)器,每個(gè)服務(wù)器有兩塊網(wǎng)卡,eth0為主機(jī)模式,eth1為橋接模式或者是NAT模式。eth1會(huì)模擬為對(duì)外服務(wù),eth0在內(nèi)網(wǎng)中作為心跳線,起心跳檢測(cè)的作用,用來(lái)檢測(cè)主機(jī)和從機(jī)之間是否有存活。
二、從機(jī)上的服務(wù)安裝
采用的事yum安裝,yum安裝能解決安裝包依賴的問(wèn)題。
1、 yum install epel-release ?安裝epel yum源
yum install heartbeat* 安裝heartbeat服務(wù)
yum install nginx 拿web服務(wù)做測(cè)試
yum install libnet 安裝libnet函數(shù)庫(kù)
2、cd /etc/ha.d/
把所需要的文件從/usr/share/doc/heartbeat/中拷到/etc/ha.d/目錄下,所需要的文件是haresources,authkeys,ha.cf。
然后進(jìn)行文件的修改
(1)、vim ?/etc/ha.d/authkeys
把#auth1
#3 md5 Hello改為
auth1
3 md5 Hello
? ? ? ? (2)、然后更改該文件的權(quán)限
chmod 600 authkeys
(3)、修改haresources文件
vim haresources
在最后一行加上
主機(jī)名(主機(jī)) VIP(VIP是虛擬IP,改為對(duì)外提供服務(wù)的eth1網(wǎng)段內(nèi)的一個(gè)虛擬IP)/24/eth1:0 nginx
例如:zhuji1 192.168.137.11/24/eth1:0? nginx
(4)、修改ha.cf文件
vim ha.cf
把#debugfile調(diào)試日志文件
? ? #logfile日志文件
? ?#keeplive 2 ? 2秒檢測(cè)一下存活時(shí)間
? ?#deadtime 30 ? 30秒為檢測(cè)到存活則認(rèn)為主機(jī)死亡
? ?#warntime 10 ?警告時(shí)間段為10 秒
? ?#initdead 120 ? 120秒的初始時(shí)間
? ?#udpport 694 ? 提供服務(wù)通信的udp端口
? ?#ucast單播對(duì)方的IP
? ?#node ?主機(jī)名
? ?#node ?從機(jī)名
? ?#ping ?這個(gè)是仲裁IP
? ?#respawn ?hacluster ?/usr/lib/heartbeat/ipfail
之前的#去掉
在ucast 那行加上
ucast eth0 192.168.13.129
其中eth0 192.168.13.129 是對(duì)方的內(nèi)網(wǎng)即心跳線的IP
再加上
node 主機(jī)名
node 從機(jī)名
還有很重要的一步
加上ping 192.168.13.1這個(gè)IP是作為仲裁,一般是內(nèi)網(wǎng)的網(wǎng)關(guān),因?yàn)榫W(wǎng)關(guān)較為穩(wěn)定。意思是可以通過(guò)這個(gè)仲裁IP找到單播IP
(5)、vim /etc/hosts
加上主機(jī)和從機(jī)的IP和用戶名
例如 主機(jī)IP ?主機(jī)名
?從機(jī)IP ?從機(jī)名
第五步在主機(jī)上也要寫(xiě)
三、把在從機(jī)上配置好的文件復(fù)制到主機(jī)上去
可以用在從機(jī)的/etc/ha.d/目錄下scp haresources ha.cf authkeys 主機(jī)名:/etc/ha.d下的方法進(jìn)行復(fù)制
如果沒(méi)有scp命令的話可以安裝一下
yum install openssh-clients主機(jī)從機(jī)上都要安裝
復(fù)制完之后再主機(jī)上只需要更改一個(gè)地方即可,就是ha.cf中的一個(gè)配置即ucast eth0 加對(duì)方心跳線的IP
四、配置完上述配置之后,關(guān)閉所有的防火墻和selinux
iptables -F
vim /etc/sysconfig/selinux
把SELINUX=enforcing改為SELINUX=disabled
五、然后就是服務(wù)的啟動(dòng)了
應(yīng)該先啟動(dòng)主機(jī)上的heartbeat服務(wù)再啟動(dòng)從機(jī)上的heartbeat服務(wù)。
六、測(cè)試
可以在主機(jī)上通過(guò)ifconfig和ps aux |grep nginx來(lái)查看
先啟動(dòng)主機(jī)再啟動(dòng)從機(jī)之后我們可以看到在主機(jī)上有我們配置的VIP以及nginx 服務(wù)的進(jìn)程,而在從機(jī)上沒(méi)有。我們可以在主機(jī)上寫(xiě)一條防火墻記錄來(lái)測(cè)試我們服務(wù)的正確性。
iptables -I INPUT -p icmp -j DROP
然后注意觀察我們的日志文件 tail -f /var/log/ha-log可以看到日志明顯的變化。而在從機(jī)上通過(guò)ifconfig可以看到VIP,這就說(shuō)明我們的配置成功了。
也可以利用測(cè)試網(wǎng)頁(yè)來(lái)驗(yàn)證
在主機(jī)上echo “主機(jī)” >>/usr/share/nginx/html/index.html
在從機(jī)上echo “從機(jī)” >>/usr/share/nginx/html/index.html
然后我們可以在瀏覽器上通過(guò)輸入我們配置的VIP以及把主機(jī)切斷在輸入我們的VIP來(lái)驗(yàn)證。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
- 上一篇: Nifi 怀疑出个bug 流程中的实时数
- 下一篇: 分布式入门,怎样用PyTorch实现多G