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/88392

(0)
TouchTouch
上一篇 2017-11-13 21:53
下一篇 2017-11-14

相關推薦

  • 馬哥教育網絡班22期+第7周課程練習

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;       [root@localhost ~]#…

    Linux干貨 2016-10-09
  • linux用戶和權限管理

    0.用戶 1、建用戶:adduser nuoline //新建nuoline用戶passwd nuoline //給nuoline用戶設置密碼 2、建工作組groupadd test //新建test工作組 3、新建用戶同時增加工作組useradd -g test nuoline //新建phpq用戶并增加到test工作組 注:…

    Linux干貨 2016-08-05
  • 邏輯卷

    LVM是邏輯卷管理(Logical Volume Manager)的簡稱,它是建立在物理存儲設備之上的一個抽象層,允許你生成邏輯存儲卷,與直接使用物理存儲在管理上相比,提供了更好靈活性。       LVM將存儲虛擬化,使用邏輯卷,你不會受限于物理磁盤的大小,另外,與硬件相關的存儲設置被其隱藏,你可以不用停止應用或卸載…

    Linux干貨 2016-09-01
  • VIM入門及進階

    什么是VIM?     VIM類似于Vi編輯器, 它是一個功能強大、可高度定制的文本編輯器, 是一個純粹的自由軟件。注意:vi和vim不完全相同 為什么要使用VIM?     相信大多數人接觸Linux時使用的第一個文本編輯器都不是VIM,很多人看到VIM復雜的命令操作就望而祛步…

    系統運維 2016-03-04
  • 循環體

    for 變量名in 列表;do 循環體 done ?執行機制: 依次將列表中的元素賦值給“變量名”; 每次賦值后即執行一次循環體; 直到列表中的元素耗盡,循環結束 列表生成方式: (1) 直接給出列表 (2) 整數列表: (a) {start..end} (b) $(seq[start [step]] end) (3) 返回列表的命令  &nbsp…

    Linux干貨 2016-08-21
  • Yellow Dog! COMMAND && source

    linux程序包管理之yum        yum:之前命名為:yellow dog ,后來因為及其好用,很多發行版都以此為默認rpm程序前端管理工具,故此更名為:yellowdog update modifier,更牛的還有一個基于redhat的二次發行版也叫yellow dog 功能:…

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