lvs keepalived

摘要
html

  1. 簡述lvs keepalived做用linux

  2. 安裝ios

  3. 記錄錯誤c++

  4. keepalived配置文件詳解web


LVS全稱爲Linux Virtual Server,工做在ISO模型中的第四層,因爲其工做在第四層,所以與iptables相似,必須工做在內核空間上。所以lvs與iptables同樣,是直接工做在內核中的,叫ipvs,主流的linux發行版默認都已經集成了ipvs,所以用戶只需安裝一個管理工具ipvsadm便可。
算法


Keepalived的做用是檢測服務器的狀態和提供虛IP(VIP),若是有一臺web服務器死機,或工做出現故障,Keepalived將檢測到,並將有故障的服務器從系統中剔除,同時使用其餘服務器代替該服務器的工做,當服務器工做正常後Keepalived自動將服務器加入到服務器羣中,這些工做所有自動完成,不須要人工干涉,須要人工作的只是修復故障的服務器。bash


安裝lvs(ipvsadm)服務器

安裝依賴負載均衡

yum install -y gcc gcc-c++ makepcre pcre-devel kernel-devel openssl-devel libnl-devel popt-develtcp

下載源碼包

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz

tar fvxz ipvsadm-1.26.tar.gz

make&&make install

執行make報錯 undefined reference to `poptGetContext'

wKiom1icE9LA6WiaAACkiZ7pCW4128.png-wh_50

緣由缺乏依賴包執行yum install popt-devel popt popt-static -y

安裝keepalived

安裝依賴

yum install openssl-devel popt-devel libnl libnl-devel kernel ipvsadm libnfnetlink* -y

下載源碼包

wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz

tar fvxz keepalived-1.2.7.tar.gz

./configure --prefix=/usr/local/ccdt/keepalived

make&&make install

 ln -s /usr/local/ccdt/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
 ln -s /usr/local/ccdt/keepalived/etc/keepalived/ /etc
 ln -s /usr/local/ccdt/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
 ln -s /usr/local/ccdt/keepalived/sbin/keepalived /usr/bin/

lvs keepalived 安裝完成

 real_server配置禁止ARP相應的請求,較好比下加到開機啓動便可

    wKiom1icIimyn7ljAACVrb37-_k631.png-wh_50

    注意 修改變量VIP



啓動ipvsadm報錯

Applying IPVS configuration: /etc/init.d/ipvsadm: line 62: /etc/sysconfig/ipvsadm: No such file or directory

wKioL1icFnaQntGDAAAvWTtohR0108.png-wh_50

解決辦法:遇到這個錯誤,先運行service ipvsadm save。以後再執行service ipvsadm start便可!



命令添加ipvsadm代理

 1096  ipvsadm -A -u 192.167.1.105:9966 -s wrr    添加集羣

 1097  ipvsadm -a -u 192.167.1.105:9966 -r 192.167.1.2:9966 -g -w 3  添加主機

 1099  ipvsadm -a -u 192.167.1.105:9966 -r 192.167.1.6:9966 -g -w 3  添加主機


更多命令示例http://www.toxingwang.com/linux-unix/haorlb/1604.html






配置文件

摘自http://www.cnblogs.com/linuxliu/p/5825108.html

keepalived.conf

一個功能比較完整的keepalived 的配置文件,其配置文件keepalived.conf 能夠包含三個文本塊:全局定義塊、VRRP 實例定義塊及虛擬服務器定義塊。全局定義塊和虛擬服務器定義塊是必須的,若是在只有一個負載均衡器的場合,就不須VRRP 實例定義塊。


#全局定義模塊
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc #郵件報警,能夠不設置,後期nagios統一監控。
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL  #此處注意router_id爲負載均衡標識,在局域網內應該是惟一的。
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
  ++++++++++++++++我是分隔符++++++++++++++++++++++

 #VRRP實例定義塊

vrrp_instance VI_1 {
    state MASTER #狀態只有MASTER和BACKUP兩種,而且要大寫,MASTER爲工做狀態,BACKUP是備用狀態。
    interface eth0
        lvs_sync_daemon_inteface eth0  #這個默認沒有,至關於心跳線接口,DR模式用的和上面的接口同樣,也能夠用機器上的其餘網卡eth1,用來防止腦裂。
    virtual_router_id 51 #虛擬路由標識,同一個vrrp_instance的MASTER和BACKUP的vitrual_router_id 是一致的。
    priority 100  #優先級,同一個vrrp_instance的MASTER優先級必須比BACKUP高。
    advert_int 1 #MASTER 與BACKUP 負載均衡器之間同步檢查的時間間隔,單位爲秒。
    authentication {
        auth_type PASS  #驗證authentication。包含驗證類型和驗證密碼。類型主要有PASS、AH 兩種,一般使用的類型爲PASS,\
        auth_pass 1111   聽說AH 使用時有問題。驗證密碼爲明文,同一vrrp 實例MASTER 與BACKUP 使用相同的密碼才能正常通訊。
    }
    virtual_ipaddress { #虛擬ip地址,能夠有多個地址,每一個地址佔一行,不須要子網掩碼,同時這個ip 必須與咱們在lvs 客戶端設定的vip 相一致!
        192.168.200.100
        192.168.200.101
        192.168.200.102
    }
}
  ++++++++++++++++我是分隔符++++++++++++++++++++++
 
 #虛擬服務器定義塊

virtual_server 192.168.200.100 443 {   #虛擬IP,來源與上面的虛擬IP地址,後面加空格加端口號
    delay_loop 6  #健康檢查間隔,單位爲秒
    lb_algo rr    #負載均衡調度算法,通常用wrr、rr、wlc
    lb_kind NAT   #負載均衡轉發規則。通常包括DR,NAT,TUN 3種。
    persistence_timeout 50 #會話保持時間,會話保持,就是把用戶請求轉發給同一個服務器,否則剛在1上提交完賬號密碼,就跳轉到另外一臺服務器2上了。
    protocol TCP  #轉發協議,有TCP和UDP兩種,通常用TCP,沒用過UDP。

    real_server 192.168.201.100 80 { #真實服務器,包括IP和端口號
        weight 1  #權重,數值越大,權重越高 
        TCP_CHECK {  #經過tcpcheck判斷RealServer的健康狀態
            connect_timeout 3 #鏈接超時時間
            nb_get_retry 3 #重連次數
            delay_before_retry 3 #重連時間間隔
            connect_port 80  #檢測端口
        }
    }
}

其實配置文件中主要要修改的選項沒有不少,有三個參數要注意

    route_id  XXX #MASTER和BACKUP不一樣

    virtual_router_id 51 #同一個實例下,MASTER和BACKUP相同

    priority 100 #優先級,同一個實例下,MASTER高於BACKUP



一直在學習...... 歡迎「吐槽」

相關文章
相關標籤/搜索