1. 程式人生 > >RHEL6 搭建 keepalived + lvs/DR 集群

RHEL6 搭建 keepalived + lvs/DR 集群

第一個 定義網絡 root rtu fff 一個 forward 高可用 pri

搭建 keepalived + lvs/DR 集群


使用Keepalived為LVS調度器提供高可用功能,防止調度器單點故障,為用戶提供Web服務:

  • LVS1調度器真實IP地址為192.168.4.50

  • LVS2調度器真實IP地址為192.168.4.55

  • 服務器VIP地址設置為192.168.4.252

  • 真實Web服務器地址分別為192.168.4.51、192.168.4.52


實驗拓撲圖

技術分享圖片



實驗步驟:


實驗準備:

配置yum源

# service iptables stop //關閉防火墻

# chkconfig iptables off //關閉開機自啟

# setenforce 0 //設置SELinux 為寬松模

配置WEB服務器 pc51 / pc52

#yum -y install httpd

#service httpd start

#chkconfig httpd on

[root@pc51 ~] #echo " 192.168.4.51 " > /var/www/html/test.html

[root@pc52 ~] #echo " 192.168.4.52 " > /var/www/html/test.html

本次實驗有些步驟就不詳細介紹了,具體有關 keepalived 和 ipvsadm 的相關配置 可以參考

keepalived 配置高可用集群 : http://blog.51cto.com/13558754/2060950

ipvsadm 配置LVS/DR 負載均衡集群:http://blog.51cto.com/13558754/2060405


1 在web服務上 配置 VIP地址 pc51 / pc52

# ifconfig lo:1 192.168.4.252/32 //只擁有ip 就可以

# ifconfig lo:1

lo:1 Link encap:Local Loopback

inet addr:192.168.4.252 Mask:0.0.0.0

UP LOOPBACK RUNNING MTU:65536 Metric:1

# cd /proc/sys/net/ipv4/conf/

# echo 1 > lo/arp_ignore

# echo 2 > lo/arp_announce

# echo 1 > all/arp_ignore

# echo 2 > all/arp_announce





2 配置分發器 50(主) 55(備) 分別安裝keepalived軟件 裝包 ipvsadm

# rpm -q ipvsadm keepalived

ipvsadm-1.26-4.el6.x86_64

keepalived-1.2.13-5.el6_6.x86_64


4 修改配置文件

[root@pc50 ~]# vim /etc/keepalived/keepalived.conf

 vrrp_instance VI_1 {
      state MASTER                 // 描述信息  MASTER為主服務器
      interface eth0                 // 定義網絡接口
      virtual_router_id 51           //主 備VRID號必須一致 
      priority 150                   //服務器優先級
      advert_int 1
      authentication {
          auth_type PASS           //驗證方式
          auth_pass 1111           //驗證密碼     主  備服務器密碼必須一致 
      }
      virtual_ipaddress {
          192.168.4.252            //VIP地址
      }   
  }
   
  virtual_server 192.168.4.252 80 {        //配置 VIP為192.168.0.252  80 端口
      delay_loop 6
      lb_algo rr                            //設置LVS調度算法為RR
      lb_kind DR                            //設置LVS的模式為DR
      nat_mask 255.255.255.0
      persistence_timeout 50
      protocol TCP
      connect_timeout 3
      nb_get_retry 3
      delay_before_retry 3
  
     real_server 192.168.4.51 80 {
          weight 1                        //設置權重為1
     }   
     real_server 192.168.4.52 80 {
          weight 1                        //設置權重為1
      }   
          
  }


使用第一個虛擬服務的模版

其余的都刪除


主機55

[root@pc55 ~]# vim /etc/keepalived/keepalived.conf

  vrrp_instance VI_1 {
      state BACKUP                // 描述信息 BACKUP為備用服務器
      interface eth0
      virtual_router_id 51
      priority 100
      advert_int 1
      authentication {
          auth_type PASS
          auth_pass 1111
      }
      virtual_ipaddress {
          192.168.4.252
      }
  }
 
  virtual_server 192.168.4.252 80 {
      delay_loop 6
      lb_algo rr
      lb_kind DR
      nat_mask 255.255.255.0
      persistence_timeout 50
      protocol TCP
      connect_timeout 3
      nb_get_retry 3
      delay_before_retry 3
  
      real_server 192.168.4.51 80 {
          weight 1
      }
      real_server 192.168.4.52 80 {
          weight 1
      }
  }




5 啟動服務

# service keepalived start

[root@pc50 ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.4.252:80 rr persistent 50

-> 192.168.4.51:80 Route 1 0 0

-> 192.168.4.52:80 Route 1 0 0

[root@pc50 ~]# ip addr show | grep 192.168.4

inet 192.168.4.50/24 brd 192.168.4.255 scope global eth0

inet 192.168.4.252/32 scope global eth0

[root@pc55 ~]# ipvsadm -Ln --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes

-> RemoteAddress:Port

TCP 192.168.4.252:80 0 0 0 0 0

-> 192.168.4.51:80 0 0 0 0 0

-> 192.168.4.52:80 0 0 0 0 0

[root@pc55 ~]# ip addr show | grep 192.168.4

inet 192.168.4.55/24 brd 192.168.4.255 scope global eth0




6 客戶端訪問


# elinks --dump 192.168.4.252

192.168.4.52

[root@room1pc32 桌面]# elinks --dump 192.168.4.252

192.168.4.51

[root@room1pc32 桌面]# elinks --dump 192.168.4.252

192.168.4.52

[root@room1pc32 桌面]# elinks --dump 192.168.4.252

192.168.4.51

[root@room1pc32 桌面]# elinks --dump 192.168.4.252

192.168.4.52


# ipvsadm -Ln --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes

-> RemoteAddress:Port

TCP 192.168.4.252:80 5 25 0 2075 0

-> 192.168.4.51:80 2 10 0 830 0

-> 192.168.4.52:80 3 15 0 1245 0


[root@pc55 ~]# ipvsadm -Ln --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes

-> RemoteAddress:Port

TCP 192.168.4.252:80 0 0 0 0 0

-> 192.168.4.51:80 0 0 0 0 0

-> 192.168.4.52:80 0 0 0 0 0





模擬50 故障 驗證Keepalived 高可用

[root@pc50 ~]# service keepalived stop


[root@pc50 ~]# ip addr show | grep 192.168.4

inet 192.168.4.50/24 brd 192.168.4.255 scope global eth0


[root@pc55 ~]# ip addr show | grep 192.168.4

inet 192.168.4.55/24 brd 192.168.4.255 scope global eth0

inet 192.168.4.252/32 scope global eth0


客戶端訪問

# elinks --dump 192.168.4.252

192.168.4.52

# elinks --dump 192.168.4.252

192.168.4.51

# elinks --dump 192.168.4.252

192.168.4.52

# elinks --dump 192.168.4.252

192.168.4.51

# elinks --dump 192.168.4.252

192.168.4.52


# ipvsadm -Ln --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes

-> RemoteAddress:Port

TCP 192.168.4.252:80 5 25 0 2075 0

-> 192.168.4.51:80 2 10 0 830 0

-> 192.168.4.52:80 3 15 0 1245 0


RHEL6 搭建 keepalived + lvs/DR 集群