Interesting things
我在配置LVS+Keepalived遇到幾個比較棘手的問題爬骤,于是乎記錄總結一波曲楚。
What did you do today
- 問題1:首先就是主備lvs開啟防火墻之后誉尖,主備lvs的eth0節(jié)點都會出現(xiàn)虛擬ip192.168.12.100。我之前的方法是關閉主備lvs的防火墻汛聚,這種方法貌似不是一種好的解決方式缘圈。
1.在防火墻添加VRRP通訊支持引用,命令:iptables -A INPUT -d 224.0.0.18 -j ACCEPT
2.好像防火墻加了這個策略野崇,也不能解決問題称开,那么我們安裝tcpdump,分析一下vrrp的組播情況乓梨。安裝命令: yum install -y tcpdump
3.查看vrrp的組播情況鳖轰,tcpdump vrrp -n,很明顯的可以看到192.168.12.4和192.168.12.8這2個ip在輪流發(fā)送組播信號。而正常的應該是MASTER服務器發(fā)送組播扶镀,如果BACKUP收不到MASTER的組播信號蕴侣,那么就判定MASTER宕機了,BACKUP就接收vip臭觉。
4.先確定服務器的SElinux是否設置為關閉昆雀,查看SElinux的狀態(tài),命令:getenforce蝠筑,Enforcing#強制開啟狞膘,Permissive#寬容模式,Disabled#關閉什乙。如果是Enforcing強制模式挽封,我就需要關閉。命令:setenforce 0#設置寬容模式,但是這樣只在本次生效臣镣,重啟服務器后將失效辅愿。如果需要永久關閉,還需要修改配置文件忆某。sed -i 's/=enforcing/=disabled/g' /etc/sysconfig/selinux
5.進入/etc/sysconfig/目錄下的selinux,注釋掉SELINUX=targeted
6.我們查看防火墻点待,看到蛋疼的一幕。 -A INPUT -d 224.0.0.18/32 -j ACCEPT寫在-A INPUT -j REJECT --reject-with icmp-host-prohibited后面了弃舒,正確的寫法應該是寫在-A INPUT -j REJECT --reject-with icmp-host-prohibited的前面癞埠。我們需要修改過來!
7.現(xiàn)在我們在主lvs和備lvs查看vrrp的組播情況,發(fā)現(xiàn)只有192.168.12.4發(fā)給192.168.12.8的情況燕差,這就很爽了嘛遭笋!
通過ip a 查看各個節(jié)點ip情況。發(fā)現(xiàn)只有主lvs的eth0節(jié)點有vip徒探,備lvs沒有瓦呼。完美解決!
-
問題2:通過ipvsadm -ln查看lvs以及對應的RealServer信息测暗,但是發(fā)現(xiàn)RealServer只有192.168.12.2:80央串。正常情況下是有192.168.12.3:80和192.168.12.2:80
1.通過/var/log/keepalived.log,發(fā)現(xiàn)主lvs連接192.168.12.3:80失敗了碗啄!
我們來查看nginx1(192.168.12.2)和nginx2(192.168.12.3)的lo:0節(jié)點质和,顯示是虛擬ip192.168.12.100,這是沒問題的稚字!
3.那我們只能拿出殺手锏了饲宿,重啟虛擬機。
4.重啟后胆描,我們再來看ipvsadm -ln瘫想,發(fā)現(xiàn)RealServer有192.168.12.2:80和192.168.12.3:80了,美滋滋昌讲。
Summary
路漫漫其修遠兮国夜,吾將上下而求索。下一篇LVS+Keepalived雙主模式短绸。