1. 程式人生 > >LVS-DR負載均衡及keepalived高可用的部署

LVS-DR負載均衡及keepalived高可用的部署

LVS-DR負載均衡

server1:作為LinuxDirector

1.安裝ipvsadm(rh6.5需要配置yum源)
[[email protected] ~]# cat /etc/yum.repos.d/rhel-source.repo

[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.79/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[HighAvailability]
name
=HighAvailability baseurl=http://172.25.254.79/rhel6.5/HighAvailability enabled=1 gpgcheck=0 [LoadBalancer] name=LoadBalancer baseurl=http://172.25.254.79/rhel6.5/LoadBalancer enabled=1 gpgcheck=0 [ResilientStorage] name=ResilientStorage baseurl=http://172.25.254.79/rhel6.5/ResilientStorage enabled=1 gpgcheck=0 [ScalableFileSystem] name
=ScalableFileSystem baseurl=http://172.25.254.79/rhel6.5/ScalableFileSystem enabled=1 gpgcheck=0
新增ipvsadm策略,將real-serverLinuxDIrector通過VIP繫結
[[email protected] ~]# ipvsadm -A -t 172.25.254.100:80 -s rr       ##新增VIP策略
[[email protected] ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.241:80 -g  ##與172.25
.254.241繫結 [[email protected] ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.1:80 -g
[[email protected] ~]# ipvsadm -l                                  ##list ipvsadm table
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.254.100:http rr
  -> server3:http                 Route   1      0          0         
  -> server2:http                 Route   1      0          0      
[root@server1 ~]# /etc/init.d/ipvsadm save                    #儲存策略

[root@server1 ~]# ip addr add 172.25.254.100/24 dev eth0      #給網絡卡新增real_server ip
[root@server1 ~]# ip addr | grep 100/24
    inet 172.25.254.100/24 scope global secondary eth0

server2:(real-server)

[root@server2 ~]# /etc/init.d/arptables_jf start       ##使客戶機不能直接通過100埠訪問
[root@server2 ~]# service httpd start
Redirecting to /bin/systemctl start  httpd.service
[root@server2 ~]# echo "server2" > /var/www/html/index.html
[root@server2 ~]# curl localhost
server2
[root@server2 ~]# ip addr add 172.25.254.100/24 dev eth0       ##通過VIP對Director識別

server3:(real-server)

[root@server3 ~]# /etc/init.d/arptables_jf start  
[root@server3 ~]# echo "server3" > /var/www/html/index.html
[root@server3 ~]# curl localhost
server3
[root@server3 ~]# ip addr add 172.25.254.100/24 dev eth0

foundation(客戶機):

lvs排程器將資料幀中的mac地址動態地更改server2或server3的mac地址,將修改後的資料幀傳送到區域網上,server2/3發現目標的VIP是我這個裝置上的,就根據路由表,直接相應客戶端。

##輪詢測試
[root@79 ~]# curl 172.25.254.100
server2
[root@79 ~]# curl 172.25.254.100
server3
[root@79 ~]# curl 172.25.254.100
server2
[root@79 ~]# curl 172.25.254.100
server3
[root@79 lvs]# arp -d 172.25.254.100   ##清理100的arp快取
[root@79 lvs]# arp -e 172.25.254.100   ##檢視ip源mac地址
Address                  HWtype  HWaddress           Flags Mask            Iface
172.25.254.100           ether   52:54:00:95:05:b1   C                     br0
[root@79 lvs]# ip addr              ##mac地址與server1相同
18: vnet2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 500
    link/ether fe:54:00:95:05:b1 brd ff:ff:ff:ff:ff:ff

二、Ldirectord 實現lvs健康檢查

ldirectord用來實現LVS負載均衡資源在主、備節點間的故障轉移。在首次啟動時,ldirectord可以自動建立IPVS表。此外,它還可以監控各RealServer的執行狀態,一旦發現某RealServer執行異常時,還可以將其從IPVS表中移除。

ldirectord 程序通過向RealServer的RIP傳送資源訪問請求並通過由RealServer返回的響應資訊來確定RealServer的執行狀態。在 Director上,每一個VIP需要一個單獨的ldirectord程序。如果RealServer不能正常響應Director上 ldirectord的請求,ldirectord程序將通過ipvsadm命令將此RealServer從IPVS表中移除。而一旦 RealServer再次上線,ldirectord會將其重新新增至IPVS表中

[root@server1 ~]# yum install -y ldirectord-3.9.5-3.1.x86_64.rpm 
[root@server1 ~]# cd /etc/ha.d/
[root@server1 ha.d]# ls
resource.d  shellfuncs
[root@server1 ha.d]# cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf  /etc/ha.d/
[root@server1 ha.d]# vim ldirectord.cf

virtual=172.25.27.100:80            # 此項用來定義LVS服務及其使用的VIP和PORT
        real=172.25.254.1:80 gate   # 定義RealServer,語法:real=RIP:port gate|masq|ipip [weight]
        real=172.25.254.241:80 gate
        fallback=127.0.0.1:80 gate  # 定義RealServer,語法:real=RIP:port gate|masq|ipip [weight]
       service=http                # 定義基於什麼服務來測試RealServer;
        scheduler=rr                # 排程演算法為rr
        #persistent=600             # 持久連線超時時間;
       #netmask=255.255.255.255
        protocol=tcp                # 定義此虛擬服務用到的協議;
        checktype=negotiate         # ldirectord程序用於監控RealServer的方法;{negotiate|connect|A number|off}
        checkport=80                # 指健康檢查使用的埠;
       request="index.html"        # 檢查RealServer用到的頁面
        receive="Test Page"         # 檢查RealServer用到的頁面內容
        virtualhost=www.x.y.z


[root@server1 ha.d]# /etc/init.d/ldirectord start
當把server2的apache關掉後
[root@server1 ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.254.100:http rr
  -> server3:http                 Route   1      0          0    

foundation:

[root@79 ~]# curl 172.25.254.100
server3
[root@79 ~]# curl 172.25.254.100
server3

提供當後端RS全部宕掉後,返回的fallback頁面,為本機httpd服務:

這裡寫圖片描述

三、keepalived高可用

Keepalived是基於vrrp協議的一款高可用軟體。Keepalived有一臺主伺服器和多臺備份伺服器,在主伺服器和備份伺服器上面部署相同的服務配置,使用一個虛擬IP地址對外提供服務,當主伺服器出現故障時,虛擬IP地址會自動漂移到備份伺服器。

1.原始碼安裝Keepalived
[root@server1 ~]# /etc/init.d/ldirectord stop  #由於ldirectord 與Keepalived衝突,必須將ldirectord停掉
[root@server1 ~]# /etc/init.d/ldirectord stop
Stopping ldirectord... Success
##由於ldirectord 開機自啟,所以必須將其開機自啟關掉
[root@server1 ~]# chkconfig ldirectord off
[root@server1 ~]# tar zxf keepalived-1.3.6.tar.gz 
[root@server1 ~]# cd keepalived-1.3.6
[root@server1 ~]# ./configure --prefix=/usr/local/keepalived --with-init=SYSV
[root@server1 ~]# make
[root@server1 ~]# make install
2.Keepalived配置
root@server1 etc]# cd /usr/local/keepalived/etc/rc.d/init.d/
[root@server1 init.d]# ls
Keepalived
##由於keepalived所識別的環境與當前系統不符,所以需要製作軟連結
[root@server1 init.d]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/             
[root@server1 init.d]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@server1 init.d]# ln -s /usr/local/keepalived/sbin/keepalived /sbin/
[root@server1 init.d]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[root@server1 keepalived]# cd /usr/local/keepalived/etc/rc.d/init.d/
[root@server1 init.d]# chmod +x keepalived   #加可執行許可權
[root@server1 keepalived]# cd /etc/keepalived
[root@server1 keepalived]# vim /etc/keepalived/keepalived.conf

global_defs {

   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }

   notification_email_from Alexandre.Cassen@firewall.lo
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
  #vrrp_strict     
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
              172.25.254.100  
}
}

virtual_server 172.25.27.100 80 {     ##虛擬主機

    delay_loop 6
    lb_algo rr
    lb_kind DR               ##是使用的DR模型
   # persistence_timeout 50  ##先將此註釋掉,可以更加直觀的感受到兩臺rs使用的DR進行的輪轉
    protocol TCP
    real_server 172.25.27.2 80 { 
                             ##real_server主機地址和埠兩臺rs均是使用的80埠
        weight 1             ##權重是可以自己進行修改的,在實際使用中,權重使用的不一樣是因為,權重較重一方的伺服器效能更加好
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
       }
    }
    real_server 172.25.254.141 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

foundation:

[root@79 ~]# curl 172.25.254.100
server2
[root@79 ~]# curl 172.25.254.100
server3
[root@79 ~]# curl 172.25.254.100
server2
[root@79 ~]# curl 172.25.254.100
server3
3.keepalived的bacup配置

開啟server4作為從伺服器,當主伺服器故障時,從伺服器會替代它的工作,並把故障的伺服器剔除。

將server4按照前面步驟佈置keeplived ,可直接將server1的keeplived 配置檔案複製過來,進行稍作修改

[root@server4 keepalived]# vim keepalived.conf   #修改state 和 priority

vrrp_instance VI_1 {
    state BACKUP  #將狀態由原來的master 改為備用
    interface eth0  
    virtual_router_id 51
    priority 50    #更改優先順序
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
[root@server4 keepalived]# /etc/init.d/keepalived start  
[root@server4 ~]# ip addr add 172.25.254.100/24 dev eth0      #新增real_server ip

server1:

[root@server1~]#echo c > /proc/sysrq-trigger  #故意讓系統崩潰,實現宕機的目的

foundation:

檢測仍能正常工作

[root@79 ~]# curl 172.25.254.100
server2
[root@79 ~]# curl 172.25.254.100
server3
[root@79 ~]# curl 172.25.254.100
server2
[root@79 ~]# curl 172.25.254.100
server3
測試並檢視IP 和mac 地址,發現此時服務已經完全有server4接管,從而實現了lvs叢集高可用

相關推薦

LVS-DR負載均衡keepalived可用部署

LVS-DR負載均衡 server1:作為LinuxDirector 1.安裝ipvsadm(rh6.5需要配置yum源) [[email protected] ~]# cat /etc/yum.repos.d/rhel-source

LVS實現(VS/DR)負載均衡Keepalived可用

一、虛擬伺服器LVS基本介紹 LVS是Linux Virtual Server的簡寫,即Linux虛擬伺服器,是一個虛擬的伺服器集群系統。這是一個由章文嵩博士發起的一個開源專案,它的官方網站是 http://www.linuxvirtualserver.org

LVS+KeepalivedLVS+Keepalived實現tcp、udp負載均衡HA可用

LVS 安裝下載編譯安裝 yum install -y kernel-devel gcc gcc-c++ yum install libnl* libpopt* popt-static -y解壓完之後進入解壓目錄執行make && make install編譯

Nginx負載均衡配置+keepalived可用

1.什麼是負載均衡?隨著應用各個核心模組業務量的提高,訪問量和資料流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的伺服器裝置根本無法承擔。在此情況下,如果扔掉現有裝置去做大量的硬體升級,這樣將造成現有資源的浪費,而且如果再面臨下一次業務量的提升時,這又將導致再一次硬體升級的高額成本投入,甚至效能再

搭建LVS-DR負載均衡叢集、Keepalived-LVS可用負載均衡叢集

LVS DR模式搭建準備工作三臺機器, 三臺機器均有公網IP。排程器(director)IP:192.168.8.133real server1(real1)IP:192.168.8.134real server2(real2)IP:192.168.8.135VIP:192.

LVS實現負載均衡keepalive實現可用

一.叢集(cluster)以及型別;       當後端伺服器承受不住訪問的壓力,提高伺服器效能的解決方案會極大增加成本時,人們提出了橫向擴充套件的解決方案。增加一臺或幾臺伺服器,提供相同的服務,通過前段分發器將訪問量均勻的分配到後臺伺服器上。這種多臺伺服器組成的陣列集合就叫

linux下 使用keepalived 實現nginx 負載均衡+主備可用

1.什麼是負載均衡高可用         nginx作為負載均衡器,所有請求都到了nginx,可見nginx處於非常重點的位置,如果nginx伺服器宕機後端web服務將無法提供服務,影響嚴重。   

mysql主主復制keepalived可用群集

高可用 mysql mysql存儲 mysql主主復制及keepalived高可用Keepalived+mysql雙主來實現MySQL-HA,我們必須保證兩臺MySQL數據庫的數據完全一樣,基本思路是兩臺MySQL互為主從關系(雙主),通過Keepalived配置虛

LVS-DR負載均衡模型的RIP和VIP在不同網絡的實現

lvs ipvsadm lvs-drLVS-DR模型架構圖解: (172.16.0.1/16,192.168.0.254/24,192.168.1.254/24) Router

RHEL6 搭建LVS/DR 負載均衡集群 案例

lan str add 方式 tco cast top install 不同的 搭建LVS/DR 負載均衡集群 案例實驗拓撲圖:操作流程: Director Server : 192.168.4.50 pc50 安裝並啟用ipvsadm

LVS-DR負載均衡群集

lvs群集 負載均衡 知識部分簡介:LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統。LVS在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。LVS集群采用IP負載均衡技術和基於內容請求分發技術。調度器具有很好的吞吐率,

LVS-DR負載均衡-03

LB端指令碼 # vim /usr/local/sbin/lvs-dr.sh #!/bin/bash #description : start LVS OF DIRECTORSERVER #GW=192.168.28.253 #WEBSITE DIRECTOR VIP

分散式系統中負載均衡演算法在可用場景下的分析

在分散式系統中,負載均衡是非常重要的環節,通過負載均衡將請求派發到網路中的一個或多個節點上進行處理。通常來說,負載均衡分為硬體負載均衡及軟體負載均衡。硬體負載均衡,顧名思義,在伺服器節點之間安裝專門的硬體進行負載均衡的工作,F5便為其中的佼佼者。軟體負載均衡則是通過在伺服器上安裝的特定的負載均衡軟體或是自

Centos 5.7 上LVS+piranha負載均衡雙機熱備配置方式

安裝包下載: LVS: 在kernel裡已經包含了這個安裝包,我們可以驗證: Red Hat Enterprise Linux 3 (or CentOS 3) kernel has already included the IPVS patch, so that

nginx,keepalived可用部署

環境 172.16.91.218  主 172.16.91.219   安裝包版本 nginx-1.14.0.tar.gz keepalived-2.0.7.tar.gz   把 nginx,keepalived 壓縮包 上傳到 /usr

MySQL 可用:mysql+Lvs+Keepalived 負載均衡故障轉移

ica 目錄 details software fwm 多個 優先級 sql 服務器 規則 轉自 MySQL 高可用:mysql+Lvs+Keepalived 負載均衡及故障轉移 - KK ——專註數據 - 博客頻道 - CSDN.NETh

(2)LVS+Keepalived可用負載均衡架構原理配置

LVS Keepalived1、keepalived 介紹2、keepalived 優缺點3、keepalived 應用場景4、keepalived 安裝配置5、keepalived+lvs 高可用6、keepalived+nginx 高可用7、keepalived 切換原理8、性能優化9、常見故障 一、k

LVS DR模式負載均衡搭建、keepalived可用+LVS負載均衡配合

lvs lvs dr模式 lvs負載均衡 keepalived+LVS LVS DR模式搭建 準備:dir(調度器):192.168.188.2rs1:192.168.188.3rs2:192.168.188.6vip:192.168.188.200 安裝ipvsadm yum insta

lvs+keepalived 可用負載均衡

module pri gzip cal flv -i poll ORC 虛擬ip 一、環境準備 VIP:10.18.43.30 dr1:10.18.43.10 dr2:10.18.43.20 web1:10.18.43.13 web2:10.18.43.14

LVSDR模式中的負載均衡可用

** 一 LVS的三種IP負載均衡技術比較 ** 我們先分析實現虛擬網路服務的主要技術,指出IP負載均衡技術是在負載排程器的實現技術中效率最高的。在已有的IP負載均衡技術中,主要有通過網路地址轉換(Network Address Transl