基於keepalived構建HA叢集

來源:互聯網
上載者:User

一、keepalived簡介

1.Keepalived的作用是檢測RealServer的健康狀態,如果有一台RealServer伺服器宕機,Keepalived將檢測到,並將宕掉的RealServer伺服器從系統中剔除,當RealServer伺服器重新恢複正常工作後Keepalived自動將RealServer伺服器加入到伺服器群中。

2.keeepalived常見模型

<1>主從模型:主節點修複後服務返回主節點)

定義一個VIP定義在網卡別名之上)

在vrrp_instance做如下修改:

stateMASTER#從節點為BACKUP

priority101#指定優先順序,數字越大優先順序越高,主節點的優先順序高於從節點


<2>雙主模型:

建立兩個虛擬路由器,兩個節點互為主從

指定兩個vrrp_instance互為主從

virtual_router_id不相同

<3>LVS+keepalived

首先配置LVS

配置keepalived,添加虛擬服務,指定lvs模型及調度演算法

實戰篇

系統內容:centos6.4-i386

yum-yinstallkeepalived

keepalivedi686-1.2.7-3

二、主從模型HA叢集

修改主設定檔:vim/etc/keepalived/keepalived.conf

! Configuration File for keepalivedglobal_defs {notification_email {linuxedu@gmail.commageedu@126.com}notification_email_from kanotify@magedu.comsmtp_connect_timeout 3smtp_server 127.0.0.1  #郵件寄件者為本地主機router_id LVS_DEVEL}vrrp_script chk_haproxy {script "killall -0 haproxy"interval 1weight 2}vrrp_script chk_mantaince_down {script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"interval 1weight -2}vrrp_instance VI_1 {  #vrrp執行個體interface eth0state MASTER  # 從節點為BACKUPpriority 101  # 指定優先順序,數字越大優先順序越高virtual_router_id 51garp_master_delay 1authentication {auth_type PASSauth_pass password}track_interface {eth1}virtual_ipaddress {172.16.15.114/16 dev eth1 label eth1:0 #指定VIP及網卡別名}track_script {chk_haproxychk_mantaince_down}notify_master "/etc/keepalived/notify.sh master"notify_backup "/etc/keepalived/notify.sh backup"notify_fault "/etc/keepalived/notify.sh fault"}

notify指令碼:

#!/bin/bashvip=172.16.15.114 #指定vipcontact='root@localhost'notify() {mailsubject="`hostname` to be $1: $vip floating"mailbody="`date '+%F %H:%M:%S'`: vrrp transition, `hostname` changed to be $1"echo $mailbody | mail -s "$mailsubject" $contact}case "$1" inmaster)notify master/etc/rc.d/init.d/haproxy startexit 0;;backup)notify backup/etc/rc.d/init.d/haproxy stopexit 0;;fault)notify faultexit 0;;*)echo 'Usage: `basename $0` {master|backup|fault}'exit 1;;esac

以windows作為用戶端訪問172.16.15.114

650) this.width=650;" title="未命名1.png" alt="161926110.png" src="http://www.bkjia.com/uploads/allimg/131227/23452529E-0.png" />

關掉主服務:servicekeepalivedstop

650) this.width=650;" title="未命名2.png" alt="162020933.png" src="http://www.bkjia.com/uploads/allimg/131227/23452515V-1.png" />

三、雙主模型

原理:建立兩個虛擬路由器,兩個節點互為主從。

! Configuration File for keepalivedglobal_defs {notification_email {linuxedu@gmail.commageedu@126.com}notification_email_from kanotify@magedu.comsmtp_connect_timeout 3smtp_server 127.0.0.1router_id LVS_DEVEL}vrrp_script chk_haproxy {script "killall -0 haproxy"interval 1weight 2}vrrp_script chk_mantaince_down {script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"interval 1weight 2}vrrp_instance VI_1 {  #執行個體1interface eth1state MASTER  # BACKUP for slave routerspriority 101  # 100 for BACKUPvirtual_router_id 51garp_master_delay 1authentication {auth_type PASSauth_pass password}track_interface {eth1}virtual_ipaddress {  #VIP1172.16.15.115/16 dev eth1 label eth1:1}track_script {chk_haproxychk_mantaince_down}notify_master "/etc/keepalived/notify.sh master"notify_backup "/etc/keepalived/notify.sh backup"notify_fault "/etc/keepalived/notify.sh fault"}vrrp_instance VI_2 {  #執行個體2interface eth1state BACKUP  # BACKUP for slave routerspriority 100  # 100 for BACKUPvirtual_router_id 52garp_master_delay 1authentication {auth_type PASSauth_pass password}track_interface {eth1}virtual_ipaddress {  #VIP2172.16.15.116/16 dev eth1 label eth1:2}track_script {chk_haproxychk_mantaince_down}}

在用戶端訪問172.16.15.115172.16.15.116

650) this.width=650;" title="未命名3.png" alt="162517180.png" src="http://www.bkjia.com/uploads/allimg/131227/23452553T-2.png" />

查看IP

650) this.width=650;" title="未命名4.png" src="http://www.bkjia.com/uploads/allimg/131227/2345253513-3.png" alt="164934163.png" />

650) this.width=650;" title="未命名5.png" src="http://www.bkjia.com/uploads/allimg/131227/2345252525-4.png" alt="165000572.png" />

四、實現LVS+keepalivedLVS--DR)

1、首先配置LVS負載平衡叢集

註:LVS在會後續博文中做詳細介紹!!!

添加ipvsadm規則

#yum -y install ipvsadm #安裝ipvsadm#ipvsadm #查看ipvsadm資訊及規則#ipvsadm -A -t 172.16.15.117:80 -s rr  #指定Director調度器)

注釋:A(添加規則)

-t(指定協議為TCP)

172.16.15.117:80(指定VIP及連接埠)

-srr(指定調度演算法為rr)

#添加real_server

#ipvsadm -a -t 172.16.15.117:80 -r 172.16.15.5 -g#ipvsadm -a -t 172.16.15.117:80 -r 172.16.15.14 -g#ifconfig lo:0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP  #配置VIP,只允許本地迴環# /sbin/route add -host $WEB_VIP dev lo:0 #添加本地路由#echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore#echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce#echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore#echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

注釋:在此只添加兩個節點

-a:添加服務

-r172.16.15.5:指定服務IP

-g:指定lvs模型預設DR)

2、配置基於keepalived主從)高可用叢集

! Configuration File for keepalivedglobal_defs {notification_email {linuxedu@gmail.commageedu@126.com}notification_email_from kanotify@magedu.comsmtp_connect_timeout 3smtp_server 127.0.0.1router_id LVS_DEVEL}vrrp_script chk_schedown {script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"interval 2weight -2}vrrp_instance VI_1 {interface eth1state MASTERpriority 101virtual_router_id 51garp_master_delay 1authentication {auth_type PASSauth_pass password}track_interface {eth1}virtual_ipaddress {172.16.15.117/16 #指定VIP,此處的VIP和lvs的VIP相同,因此不指定網卡}track_script {chk_schedown}}virtual_server 172.16.15.117 80 { #指定虛擬服務delay_loop 6lb_algo rrlb_kind DRpersistence_timeout 50protocol TCPsorry_server 172.16.15.14 80 #錯誤頁面real_server 172.16.15.5 80 {  #指定rserver1weight 1HTTP_GET {url {path /status_code 200 #狀態代碼}connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 172.16.15.14 80 {  #指定rserver2weight 1HTTP_GET {url {path /status_code 200}connect_timeout 3 #連線逾時時間nb_get_retry 3 #嘗試串連次數delay_before_retry 3 #每次嘗試之前等待的時間}}}

在用戶端訪問172.16.15.117

650) this.width=650;" title="未命名1.png" src="http://www.bkjia.com/uploads/allimg/131227/2345255118-5.png" alt="165123558.png" />

650) this.width=650;" title="未命名2.png" src="http://www.bkjia.com/uploads/allimg/131227/2345256412-6.png" alt="165139941.png" />

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.