利用紅帽 Piranha 方案實現 WEB 負載均衡
php
系統環境: RHEL6.5x86_64 small install selinux and iptables disabledhtml
Virtual IP 192.168.2.253linux
192.168.2.162 server62.exampl.com (主節點)web
192.168.2.163 server63.example.com(備用節點)服務器
192.168.2.52 desktop52.example.com(real server)負載均衡
192.168.2.53 desktop53.example.com(real server)工具
編輯/etc/hoststs作以上解析測試
一. Piranha 方案基本簡紹.
ui
1. Piranha 方案優勢:
spa
1.1 配置簡潔高效:
配置簡便一個 lvs.conf 配置文件便可搞定(類 keepalived 方案.)
1.2 WEB 配置界面.
WEB 配置對於那些不懂 LVS 配置的人員來講很是吸引力,你幾乎只要花 15 分鐘就能夠配置好一個完美的負載均衡及高可用性方案.
1.3 完整的功能:
主備 LVS (Load Balancer)的 Heartbeat 和 HA (pulse, send_arp) ,Load Balancer 和 Real Server 間進程服務的 Heartbeat (nanny)
*IPVS 功能 (lvsd)
*IPVS 的管理 (ipvsadm)
2. Piranha 方案原理結構描述:
Piranha 方案是基於 LVS 基礎上設計的一套負載均衡高可用解決方案.
LVS 運行在一對有類似配置的計算機上:
一個做爲活動 LVS Router(Active LVS Router), 一個做爲備份 LVS Router(Backup LVS Router)。
活動 LVS Router 服務有兩個角色:
* 均衡負載到真實服務器上。
* 檢查真實服務器提供的服務是否正常。
備份 LVS Router 用來監控活動的 LVS Router,以備活動的 LVS Router 失敗時由備份 LVS Router 接管。
Pulse:
Pulse 進程運行在活動 LVS Router 和備份 LVS Router 上。 在備份 LVS Router 上,pulse 發送一個心跳(heartbeat)到活動 LVS Router 的公網接口上以檢查活動 LVS Router 是否正常。
在活動 LVS Router 上,pulse 啓動 lvs 進程並響應來自於備份 LVS Router 的心跳。
lvsd:
lvs 進程調用 ipvsadm 工具去配置和維護 IPVS 路由表,併爲每個在真實服務器上的虛擬服務啓動一個 nanny 進程。
nanny:
每個 nanny 進程去檢查真實服務器上的虛擬服務狀態,並將故障狀況通知 lvs進程。假如一個故障被發現,lvs 進程通知 ipvsadm 在 IPVS 路由表中將此節點刪除。
send_arp:
若是備份 LVS Router 未收到來自於活動 LVS Router 的響應, 它將調用 send_arp 將虛擬 IP 地址再分配到備份 LVS Router 的公網接口上。 並在公網接口和局域網接口上分別發送一個命令去關掉活動 LVS Router 上的 lvs進程。同時啓動本身的 lvs 進程來調度客戶端請求。
3. Piranha 方案基本套件安裝:
#yum install ipvsadm modcluster piranha system‐config‐cluster php php‐cli php‐common
4. 配置文件介紹:
/etc/sysconfig/ha/lvs.cf //由http://ip:3636 web界面配置的配置文件寫入此文件.
/etc/init.d/piranha‐gui start //啓動 piranha 服務的 WEB 配置界面.
/etc/init.d/pulse //啓動 piranha 服務讀取的就是/etc/sysconfig/ha/lvs.cf.
二. Piranha 配置
經過 WEB 界面配置 Piranha 服務.
# /etc/init.d/piranha‐ gui start //啓動 Piranha 服務.
#/usr/sbin/piranha‐ passwd //設置密碼,請設置你的 piranha 服務 WEB 配置登錄密碼.
http://192.168.2.162:3636 //輸入用戶名: piranha 及剛纔設置的密碼登錄.
登錄後,選擇 Global Settings 這是對 LVS 的配置
Primary server public IP 輸入公網 IP:192.168.2.162,應用後按 ACCEPT 按鈕保存設置。
經過 WEB 配置主 LVS 的信息
1. 配置主 LVS
2.配置備份 LVS
3. 配置添加 LVS( VIP 信息)
4. 配置 Realserver
啓動節點
5.啓動 LVS 服務 pulse
# /etc/init.d/pulse start
Starting pulse: [ OK ]
若是不報錯,表示啓動成功!
到此 LVS 的服務器已經配置完成了啓動兩個程序
一、piranha‐gui 是用來配置 LVS 的
二、pulse 是用來啓動 LVS 的
6. 備份 LVS 安裝與配置
備份 LVS 安裝同主 LVS 安裝方法一樣.直接將 lvs.conf 拷貝到相應的目錄下:
#scp /etc/sysconfig/ha/lvs.cf root@192.168.2.163:/etc/sysconfig/ha/
# /etc/init.d/pulse start 啓動服務便可.
7. 配置 Realserver
#yum install -y arptables_jf
#ifconfig eth0:1 192.168.2.253 netmask 255.255.255.255
#arptables -A IN -d 192.168.2.253 -j DROP
#arptables -A OUT -s 192.168.2.253 -j mangle --mangle-ip-s 192.168.2.53
#service arptables_jf save
以上操做會自動生成文件/etc/sysconfig/arptables
#cd /var/www/html/ //進入Apache默認發佈目錄
#echo `hostname` > index.html
#service httpd start //啓動Apache服務
測試:
1).訪問虛擬ip查看可否訪問到兩臺realserver節點的httpd服務。刷新頁面顯示不一樣內容,說明實現了輪轉循環。
2).停掉負載主節點的pulse服務,備用節點自動接管任務。
3).交替stop掉或者所有stop掉兩臺realserver的httpd服務,查看轉發列表的變化。
——leeypp@gmail.com