環境介紹linux
操做系統:CentOS6.5_x64 mini
負載均衡模式:DR(直接路由)
LVS與Keepalived簡述:
LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集羣系統。使用集羣技術和Linux操做系統實現一個高性能、高可用的服務器,很好的可伸縮性、可靠性和管理性。
LVS集羣採用IP負載均衡技術和基於內容請求分發技術。調度器具備很好的吞吐率,將請求均衡地轉移到不一樣的服務器上執行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。
Keepalived採用VRRP(virtual router redundancy protocol,虛擬路由冗餘協議)熱備份協議,以軟件的方式實現linux服務器的多機熱備功能。VRRP是針對路由器的一種備份解決方案-----由多臺路由器組成一個熱備組。經過共用的虛擬IP地址對外提供服務;每一個熱備組內同一時刻只有一臺主服務器提供服務,其餘服務器處於冗餘狀態,若當前在線的服務器失敗,其餘服務器會自動接替(優先級決定接替順序)虛擬IP地址,以繼續提供服務。c++
1、配置主從LVS服務器web
安裝依賴包:算法
yum install -y gcc gcc-c++ makepcre pcre-devel openssl-devel kernel-devel libnl3-devel popt-devel
一、檢查linux內核是否集成lvs模塊bash
modprobe -l | grep ipvs
二、開啓路由轉發功能服務器
1) # 負載均衡
echo 1 > /proc/sys/net/ipv4/ip_forward
2) #oop
sysctl -w net.ipv4.ip_forward=1
以上兩種方法均可能當即開啓路由功能,但若是系統重啓,或執行了性能
service network restart
命令,所設置的值即會丟失,若是想永久保留配置,能夠修改/etc/sysctl.conf文件操作系統
將 net.ipv4.ip_forward=0改成net.ipv4.ip_forward=1
sed -i '/net.ipv4.ip_forward/ s/\(.*= \).*/\11/' /etc/sysctl.conf
三、安裝ipvsadm
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz tar zxvf ipvsadm-1.26.tar.gz cd ipvsadm-1.26 make && make install
四、安裝keepalived
4.一、在線安裝
yum install -y keepalived
4.二、源碼安裝
wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz tar zxvf keepalived-1.2.15.tar.gz cd keepalived-1.2.7 ./configure --prefix=/usr/local/keepalived make && make install
將keepalived配置成系統服務
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalived/ cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
五、修改主keepalived配置文件(備只修改router_id、state和priority)
vi /etc/keepalived/keepalived.conf
! Configuration File forkeepalived global_defs { notification_email { test@sina.com #故障接受聯繫人 } notification_email_from admin@test.com #故障發送人 smtp_server 127.0.0.1 #本機發送郵件 smtp_connect_timeout 30 router_id LVS_MASTER #BACKUP上修改成LVS_BACKUP } vrrp_instance VI_1 { state MASTER #BACKUP上修改成BACKUP interface eth0 virtual_router_id 51 #虛擬路由標識,主從相同 priority 100 #BACKUP上修改成90 advert_int 1 authentication { auth_type PASS auth_pass 1111 #主從認證密碼必須一致 } virtual_ipaddress { #Web虛擬IP(VTP) 172.0.0.10 } } virtual_server 172.0.0.10 80 { #定義虛擬IP和端口 delay_loop 6 #檢查真實服務器時間,單位秒 lb_algo rr #設置負載調度算法,rr爲輪訓 lb_kind DR #設置LVS負載均衡DR模式 persistence_timeout 50 #同一IP的鏈接60秒內被分配到同一臺真實服務器 protocol TCP #使用TCP協議檢查realserver狀態 real_server 172.0.0.13 80 { #第一個web服務器 weight 3 #節點權重值 TCP_CHECK { #健康檢查方式 connect_timeout 3 #鏈接超時 nb_get_retry 3 #重試次數 delay_before_retry 3 #重試間隔/S } } real_server 172.0.0.14 80 { #第二個web服務器 weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }