基於LVS-DR羣集模式+keepalived實現高可用

條件:五臺虛擬機:

wKioL1lJC0fyi1FoAACvszD_mmI828.png

wKiom1lJC0mwfrkgAACTds0yKgc684.png

wKioL1lJC0nxek6BAACpZDpa_L8461.png

wKiom1lJC0qj0cvTAAC2w4V2QP4304.png

wKiom1lJC0zxX3VCAAC6vk1LtUo895.png


(主)負載調度器:

創建映射端口(VIP)

wKioL1lJC0yirkjtAABmqA07qOs394.png

優化環境:(/etc/sysctl.conf)

wKioL1lJC03Rwvb7AAAR8UNFzz4227.png

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.eth0.send_redirects = 0

sysctl -p

加載ip_vs模塊

modprobe ip_vs

查看ipvs

cat /proc/net/ip_vs

安裝IPVS

yum install -y ipvsadm

查看版本:

ipvsadm -v

設置負載調度器設置模式

ipvsadm -A -t 192.168.115.100:80 -s rr

ipvsadm -a -t 192.168.115.100:80 -r 192.168.115.173:80 -g(173和176分別指向兩個RS)

ipvsadm -a -t 192.168.115.100:80 -r 192.168.115.176:80 -g

查看:

ipvsadm -Ln


安裝keepalived

yum install -y gcc*  kernel-devel openssl-devel popt-devel ipvsadm

tar -xvf keepalived-1.2.7.tar.gz

./configure --prefix=/  --with-kernel-dir=/usr/src/kernels/2.6.32-131.0.15.el6.i686

make && make install

chkconfig --add keepalived

chkconfig keepalived on

wKiom1lJC06zK-5eAAC6Tn3e6F8591.png

配置keepalived文件:

wKiom1lJC0-xZTLnAAClwHWLUe4643.png

啓動服務:

service keepalived start

chkconfig keepalived on


共享資源服務器:

搭建NFS給RS掛在使用

wKioL1lJC0_in68ZAAAPceMnG7g930.png

wKiom1lJC1DwHC58AAAS4OPS2Vw022.png


RS1:

安裝Apache服務

配置本地迴環端口映射:

wKioL1lJC1CwpGz4AACUEvQjZgk842.png

設置一條路由:

route add -host 192.168.115.100 dev lo:0

優化環境:

wKiom1lJC1HQRdvqAAAf9_l8KAQ900.png

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2


RS2:

安裝Apache服務,將內容從NFS服務器上面掛在過來:

mount -t nfs 192.168.115.177:/share /var/www/html

設置映射網卡:

wKioL1lJC1Ggc8WaAAB9mZhqeGw019.png

優化環境:

wKioL1lJC1KAGKD8AAAf6iGq3HQ092.png

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

設置路由:

設置一條路由:

route add -host 192.168.115.100 dev lo:0


測試機訪問:

每刷新一次,內容一次輪詢:

wKiom1lJC1KgUuk2AAAs6TuCBeA836.png

wKiom1lJC1OzCaCnAAAvIa9U1CY252.png


下面搭建基於keepalived的LVS-DR

增加一個虛擬機作爲從負載調度器:

wKioL1lJC1TgRP8xAAD_VkvsqFw812.png

wKiom1lJC1XDCTO3AAG9vlMaVlQ829.png

wKioL1lJC1aRctIQAAC_YbFGw3g201.png

wKiom1lJC1fDjNrGAAB5d7LvCbc618.png

加載ip_vs模塊

modprobe ip_vs

查看ipvs

cat /proc/net/ip_vs

安裝IPVS

yum install -y ipvsadm

查看版本:

ipvsadm -v

設置負載調度器設置模式

ipvsadm -A -t 192.168.115.100:80 -s rr

ipvsadm -a -t 192.168.115.100:80 -r 192.168.115.173:80 -g(173和176分別指向兩個RS)

ipvsadm -a -t 192.168.115.100:80 -r 192.168.115.176:80 -g

查看:

ipvsadm -Ln

wKioL1lJC1ehQuJOAAAugHDjJTU176.png

優化環境:

wKiom1lJC1iA-Vm3AAAU08mcdiI875.png

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.eth0.send_redirects = 0


安裝keepalived

yum install -y gcc*  kernel-devel openssl-devel popt-devel ipvsadm

tar -xvf keepalived-1.2.7.tar.gz

./configure --prefix=/  --with-kernel-dir=/usr/src/kernels/2.6.32-131.0.15.el6.i686

make && make install

chkconfig --add keepalived

chkconfig keepalived on

wKioL1lJC2CCUcQyAAC6Tn3e6F8625.png

wKioL1lJC2GAP7OWAACHvqf5l4I050.png

service keepalived start

chkconfig keepalived on

測試機測試:

wKiom1lJC2Gy2DkwAAApQanFYFo504.png

wKiom1lJC2LDEYXnAAA3601vQSo560.png

wKioL1lJC2KgnkMpAAAtMBMSqog291.png

wKioL1lJC2KSmZucAAA2CqyntAA372.png

從服務器成功接替工作:實驗成功:

配置文件模板:

! Configuration File for keepalived

global_defs {

  router_id LVS_R1

}

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 {

       192.168.115.100

   }

}

virtual_server 192.168.115.100 80 {

   delay_loop 6

   lb_algo rr

   lb_kind DR

   protocol TCP

   real_server 192.168.115.173 80 {

       weight 1

               TCP_CHECK {

                       connect_port 80

                       connect_timeout 3

                       nb_get_retry 3

                       delay_before_retry 3

       }

       }

  real_server 192.168.115.176 80 {

       weight 1

               TCP_CHECK {

                       connect_port 80

                       connect_timeout 3

                       nb_get_retry 3

                       delay_before_retry 3

       }

       }

   }

在做從負載調度器的時候,因爲有兩個網卡公用一個地址,這樣啓動網卡的時候會報錯

解決辦法:

vim /etc/sysconfig/network-scripts/ifup-eth

wKiom1lJC2TyvHYoAABjK8uN0Ss287.png

將圖示內容註釋即可

然後再重啓網卡


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章