集羣基礎----(lvs【Linux+virtual+server】)

lvs(linux+virtual+server)

高可用對負載均衡的整合
ipvsadm—-四層

-L 列出策略
-C 清空
-A 添加

lvs一共有三種工作模式(NAT、DR、Tun(隧道))—其中性能最高的是DR

DR模式:

         *****************************
client---*--VS---(處於同一網段)---RS--*---client
         *****************************
VS:是調度器(s1)、RS:把arp屏蔽掉(s2和s3)
DR模式工作在二層(二層不能進行端口轉發),將比特流轉換爲數據幀
RS【In:Drop vip   Out:轉換爲Rip出去】
RS在啓用arp的時候,廣播只有RIP沒有UIP
NAT模式:client---vs----rs----vs---client

在vs-rs階段: cip-vip 轉換爲  cip-rip
在rs-vs階段: cip-rip 轉換爲  cip-vip

此模式支持端口轉發,內部地址可以轉換,地址和端口可以被改
Tun(隧道模式):
client -------vs--------rs--------client
此模式在不斷的增加ip頭

使用DR模式:
1.安裝rpm包(from 老吳)–ldirectord-3.9.5-3.1.x86_64.rpm

yum install ldirectord-3.9.5-3.1.x86_64.rpm -y

2.更改ldirectord的目錄所在位置

   cd /usr/share/doc/ldirectord-3.9.5/
   cp ldirectord.cf /etc/ha.d/      #只有在這個目錄下才能生效

3.關閉兩個服務器的心跳
/etc/init.d/heartbeat stop(把兩臺server的心跳都停掉)

4.策略的查看
yum install -y ipvsadm
ipvsadm -L(列出策略)

5.添加策略

ip addr add 172.25.39.100/24 dev eth0-----100加到eth0上
ipvsadm -A -t 172.25.39.100:80 -s rr(rr是負載均衡算法)
ipvsadm -a -t 172.25.39.100:80 -r 172.25.39.3:80 -g
ipvsadm -a -t 172.25.39.100:80 -r 172.25.39.2:80 -g
/etc/init.d/ipvsadm save(保存策略)
[root@server1 ha.d]# cat /etc/sysconfig/ipvsadm
-A -t 172.25.39.100:80 -s rr
-a -t 172.25.39.100:80 -r 172.25.39.2:80 -g -w 1
-a -t 172.25.39.100:80 -r 172.25.39.3:80 -g -w 1
[root@server1 ha.d]# ipvsadm -ln(加n可以查看ip)
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.39.100:80 rr
  -> 172.25.39.2:80               Route   1      0          0
  -> 172.25.39.3:80               Route   1      0          0
[root@server1 ha.d]# 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.39.100:http rr
  -> server2:http                 Route   1      0          0
  -> server3:http                 Route   1      0          0

6.在server2和server3上相同

1) /etc/init.d/httpd start(100在s2上也有)

2) yum install -y arptables_jf(針對arp協議的火牆)
    arptables -L(查看火牆策略)

3)更改策略(在server2和server3都要做,相當於rs)
    ip addr add 172.25.39.100/24 dev eth0-----100加到eth0上
    arptables -A IN -d 172.25.39.100 -j DROP(訪問100的s2丟棄無視)---(啓用arp,廣播自己只有rip,不說自己有vip,否則會地址衝突錯亂)
    arptables -A OUT -s 172.25.39.100 -j mangle --mangle-ip-s 172.25.39.2(當要出去弄100時轉換爲真實的server)
    /etc/init.d/arptables_jf save(保存策略)
    arptables -nL(驗證)

7.測試:在物理機上查看100連接點

1)[root@foundation39 ~]#arp -an | grep 100
? (172.25.39.100) at 52:54:00:5a:44:db [ether] on br0(爲server1的,正確)

2http://172.25.39.100/----出現server2和server3輪詢

3)[root@foundation39 ~]# curl 172.25.39.100
   <h1> server2 </h1>
   [root@foundation39 ~]# curl 172.25.39.100
   <h1>  server3---www.westos.org </h1>
   [root@foundation39 ~]# curl 172.25.39.100
   <h1> server2 </h1>
   [root@foundation39 ~]# curl 172.25.39.100
   <h1>  server3---www.westos.org </h1>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章