keepalived實現高可用的負載均衡

keepalived

一.Keepalived的介紹

Keepalived是一個基于VRRP協議來實現的WEB服務高可用方案,可以利用其來避免單點故障,使多臺節點安裝keepalived。其他節點用來提供真實的服務,同樣的,他們對外表現出一個虛擬IP。當主服務器宕機時,從服務器就會接管虛擬IP,繼續提供服務,從而保證了高可用性。

Keepalived主要由兩大模塊,VRRP?static和checkers,實現HA集群中失敗切換功能。Keepalived通過VRRP功能再結合LVS負載均衡即可部署一個高性能的負載均衡集群系統。Checkers主要實現對服務器運行的狀態監測和故障隔離,其中ipvs和realserver健康狀態檢查通過配置文件就可以實現,而其他服務則需要編寫腳本,然后通過keepalived文件調用。

Keepalived運行有3個守護進程。父進程主要負責讀取配置文件初始化、監控2個子進程等;然后兩個子進程,一個負責VRRP,另一個負責Cheackers健康檢查。其中父進程監控模塊為WacthDog,工作實現:每個子進程打開一個接受unix域套接字,父進程連接到那些unix域套接字并向子進程發送周期性(5s)hello包。

1

上圖是Keepalived的功能體系結構,大致分兩層:用戶空間(user?space)

和內核空間(kernel?space)。

內核空間:主要包括IPVS(IP虛擬服務器,用于實現網絡服務的負載均衡)

和NETLINK(提供高級路由及其他相關的網絡功能)兩個部份。

二.Keepalived的特性

1.配置文件簡單:配置文件比較簡單,可通過簡單配置實現高可用功能

2.穩定性強:keepalived是一個類似于layer3,?4?&?7交換機制的軟件,具備我們平時說的第3層、第4層和第7層交換機的功能,常用于前端負載均衡器的高可用服務,當主服務器出現故障時,可快速進行切換,監測機制靈活,成功率高。

3.成本低廉:開源軟件,可直接下載配置使用,沒有額外費用。

4.應用范圍廣:因為keepalived可應用在多個層面,所以它幾乎可以對所有應用做高可用,包括LVS、數據庫、http服務、nginx負載均衡等等

5.支持多種類型:支持主從模式、主主模式高可用,可根據業務場景靈活選擇。

三.什么是VRRP

VRRP?(Virtual?Router?Redundancy?Protocol?,虛擬路由冗余協議)可以認為是實現路由器高可用的協議,簡單的說,當一個路由器故障時可以由另一個備份路由器繼續提供相同的服務。

VRRP?根據優先級來確定虛擬路由器中每臺路由器的角色(Master?路由器或Backup?路由器)。VRRP?優先級的取值范圍為0?到255?(?數值越大表明優先級越高?),可配置的范圍是1?到254?,優先級0?為系統保留給路由器放棄Master?位置時候使用,255?則是系統保留給IP?地址擁有者使用。優先級越高,則越有可能成為Master?路由器。當兩臺優先級相同的路由器同時競爭Master?時,比較接口IP

四.Keepalived軟件介紹

Keepalived:

程序包:keepalived????????????#通過yum源安裝

/etc/keepalived/keepalived.cong #主配置文件

/etc/sysconfig/keepalived #啟動時的添加參數

/etc/rc.d/init.d/keepalived #啟動腳本

/usr/sbin/keepalived #啟動程序

五.實驗

實驗環境:主從服務器兩臺,兩臺實現LNMP的rs-server兩臺

主服務器:vip?:?192.168.1.100

DIP:192.168.19.113

從服務器:VIP:192.168.1.100

DIP:192.168.19.114

Rs-server1:192.168.19.111

RS-server2:192.168.19.112

 

 

關閉selinux策略和防火墻,安裝keepalived包,并且已經實現過DR

配置主服務器:

  1. vim?/etc/keepalived/keepalived.cong

!?Configuration?File?for?keepalived

 

global_defs?{

notification_email?{

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc

}

notification_email_from?Alexandre.Cassen@firewall.loc

smtp_server?192.168.200.1

smtp_connect_timeout?30

router_id?LVS_DEVEL

}

 

vrrp_instance?VI_1?{

state?MASTER

interface?ens37

virtual_router_id?76

priority?100

advert_int?1

authentication?{

auth_type?PASS

auth_pass?1111

}

virtual_ipaddress?{

192.168.1.100

}

}

 

virtual_server?192.168.1.100?80?{

delay_loop?6

lb_algo?wrr

lb_kind?DR

nat_mask?255.255.255.0

persistence_timeout?50

protocol?TCP

 

real_server?192.168.19.111?80?{

weight?1

HTTP_GET{

url?{

path?/

}

connect_timeout?3

delay_before_retry?3

 

}

}

 

real_server?192.168.19.112?80?{

weight?1

HTTP_GET{

url?{

path?/

}

  1. 配置從服務器

!?Configuration?File?for?keepalived

 

global_defs?{

notification_email?{

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc

}

notification_email_from?Alexandre.Cassen@firewall.loc

smtp_server?192.168.200.1

smtp_connect_timeout?30

router_id?LVS_DEVEL

}

 

vrrp_instance?VI_1?{

state?BACKUP

interface?eth1

virtual_router_id?76

priority?80

advert_int?1

authentication?{

auth_type?PASS

auth_pass?1111

}

virtual_ipaddress?{

192.168.1.100

}

}

 

virtual_server?192.168.1.100?80??{

delay_loop?6

lb_algo?wrr

lb_kind?DR

nat_mask?255.255.255.0

persistence_timeout?50

protocol?TCP

 

real_server?192.168.19.111?80?{

weight?1

HTTP_GET?{

url?{

path?/

}

connect_timeout?3

delay_before_retry?3

}

}

real_server?192.168.19.111?80?{

weight?1

HTTP_GET?{

url?{

path?/

}

connect_timeout?3

delay_before_retry?3

connect_timeout?3

 

}

}

3.systemctl???start??keepalived

4.查看ipvsadm

2

5.測試

3

 

6.將主服務器的keepalived停用,模擬宕機

 

4

7.查看VIP是否漂移

5

8.測試

3

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88391

(1)
TouchTouch
上一篇 2017-11-13
下一篇 2017-11-13

相關推薦

  • Linux小工具之cheat

    隨著linux學習的深入,接觸到的命令越來越多,此時,考驗腦力的時候就到了,除非你是”腦王”,否則面對多如牛毛的linux命令,真的會崩潰!linux前輩們貌似也被同樣的問題所困擾,所以,他們發明了cheat。cheat是在GNU通用公共許可證下,為Linux命令行用戶發行的交互式備忘單應用程序。它提供顯示Linux命令使用案例,包括該命令所有的選項和簡短但…

    2017-08-10
  • shutil,csv,ini

    序列化和反序列化筆記

    2017-10-29
  • 邏輯卷小結

    邏輯卷 邏輯卷:把不同大小的物理設備,抽象成一個完整的文件系統,方便對物理設備的管理與應用。 其基本步驟為: 1.將指定的設備設置為物理卷     物理卷是指定大小的固定得物理區域 2.用一個或者多個物理卷創建一個卷組 3.創建邏輯卷     在物理卷上創建的邏輯卷由物理區域組成…

    Linux干貨 2016-09-01
  • 網絡管理

    vpn:virtual private network RJ-45:類似電話接頭  電話線接頭為RJ-11 hub:集線器,多端口中繼器,不具有記憶功能 switch:交換機 router:路由器 物理拓撲分類:總線,環裝,星型 OSI:國際網絡標準,實際采用為TCP/IP OSI七層模型:應用層:application   表…

    Linux干貨 2016-09-05
  • Lvs+keepalived+httpd+NFS搭建高可用

    自己捯飭的模型圖 NAT模型圖 注意事項:RealServer需要把網關指向Director,并且Director要打開轉發功能命令如下:     echo "1" > /proc/sys/net/ipv4/ip_foreward DR模型圖 注意事項:需要在RealServer配置…

    Linux干貨 2016-10-25
  • 高級文件系統管理

    高級文件系統管理 一、如何創建新的swap分區  答:1.在/dev/sdc上創建新的分區。并使得ID為82的linux swap;類型。   2.創建文件系統 mkswap  -L  SWAP_SDC1  /dev/sdc1     3.在/etc/fstab中進行修改   4…

    Linux干貨 2016-08-30
欧美性久久久久