天天看點

LVS DR叢集

原理:LVS DR(director Routing)技術利用了Internet服務的非堆成特帶你,排程器隻負責排程Client發出的請求,

而伺服器realserver直接将響應結果發揮給Client,是以相對LVS NAT方式而言可以提高整個叢集資料包的吞吐量。關

于LVS DR的搭建架構應滿足:電鍍漆和伺服器在實體上有一個網卡通過區域網路連結,VIP位址被電鍍漆和伺服器組共享,

電鍍漆配置的VIP位址對外部是可見的,用于接收虛拟服務的請求封包。把所有伺服器的VIP位址配置在各自的NOn-ARP

網路裝置,它對外不可見,隻是用于處理目标位址為VIP的網絡請求。

實驗環境:

客戶機1:

客戶機2

轉發器

realserver1

realserver2

node2

宿主主機

node1

web1

web2

網絡拓撲圖

<a href="http://s5.51cto.com/wyfs02/M02/85/3B/wKiom1edr5fi4L5MAACpFfkDvAk117.png-wh_500x0-wm_3-wmp_4-s_1534785220.png" target="_blank"></a>

node1設定檔案:

需要修改檔案

網元位置 網卡名 連結方式 對應ip

node1     eth0 橋接 RIP

node1      eth0:0     虛拟網卡     VIP

轉發器node1相關配置資訊

<code>eth0eth0:0</code>

<code>DEVICE=eth0DEVICE=eth0:1                 </code>

<code>TYPE=Ethernet                              TYPE=Ethernet                 </code>

<code>UUID=c64ec2f3-0393-4215-9488-b87eb098fc33               ONBOOT=</code><code>yes</code>                    

<code>ONBOOT=</code><code>yes</code>                                <code>NM_CONTROLLED=</code><code>yes</code>             

<code>NM_CONTROLLED=</code><code>yes</code>                            <code>BOOTPROTO=none                </code>

<code>BOOTPROTO=none                              DEFROUTE=</code><code>yes</code>                  

<code>PREFIX=24                                 IPV4_FAILURE_FATAL=</code><code>yes</code>        

<code>DEFROUTE=</code><code>yes</code>                               <code>IPV6INIT=no                   </code>

<code>IPV4_FAILURE_FATAL=</code><code>yes</code>                        <code>HWADDR=00:0C:29:D0:6B:6B      </code>

<code>IPV6INIT=no                                USERCTL=no                    </code>

<code>NAME=</code><code>"System eth0"</code>                           <code>IPADDR=192.168.4.233          </code>

<code>HWADDR=00:0C:29:D0:6B:6B                       NETMASK=255.255.255.0         </code>

<code>USERCTL=no                                GATEWAY=192.168.4.149           </code>

<code>IPADDR=192.168.4.201                          DNS1=192.168.4.149              </code>

<code>NETMASK=255.255.255.0                         [root@node1 network-scripts]</code><code># </code>

<code>GATEWAY=192.168.4.149</code>

<code>DNS1=192.168.4.149</code>

realserver::

網元位置 網卡名 連結方式 對應IP

web1 eth0 橋接 RIP

web1 lo:1 複制lo VIP

相關網卡配置

eth0

<code>lo:1</code>

<code>DEVICE=eth0                         DEVICE=lo:0            </code>

<code>TYPE=Ethernet                        IPADDR=192.168.4.233         </code><code>//VIP</code>

<code>UUID=3a5f26b3-6ef6-4f8f-8a67-dd65291a109e          NETMASK=255.255.255.255      </code><code>//</code><code>隻針對此IP位址的包進行處理</code>

<code>ONBOOT=</code><code>yes</code>                          <code>ONBOOT=</code><code>yes</code>             

<code>NM_CONTROLLED=</code><code>yes</code>                      <code>NAME=loopback          </code>

<code>BOOTPROTO=none                           </code>

<code>PREFIX=24                                </code>

<code>DEFROUTE=</code><code>yes</code>                             

<code>IPV4_FAILURE_FATAL=</code><code>yes</code>                   

<code>IPV6INIT=no                              </code>

<code>NAME=System eth0                         </code>

<code>HWADDR=00:0C:29:E4:32:DC                 </code>

<code>USERCTL=no                               </code>

<code>IPADDR=192.168.4.211                     </code>

<code>NETMASK=255.255.255.0                    </code>

<code>GATEWAY=192.168.4.149                      </code>

realserver2:web2

網元位置: 網卡名   連結方式 對應IP

web2 eth0   橋接 RIP

web2 lo:0     複制lo VIP

相關網卡配置資訊

<code>eth0                                                    lo:0</code>

<code>DEVICE=eth0                           DEVICE=lo:0           </code>

<code>TYPE=Ethernet                          IPADDR=192.168.4.203   </code>

<code>UUID=3a5f26b3-6ef6-4f8f-8a67-dd65291a109e            NETMASK=255.255.255.255</code>

<code>ONBOOT=</code><code>yes</code>                            <code>ONBOOT=</code><code>yes</code>             

<code>NM_CONTROLLED=</code><code>yes</code>                        <code>NAME=loopback          </code>

<code>NAME=</code><code>"System eth0"</code>                       

<code>HWADDR=00:0C:29:D4:56:5C                 </code>

<code>IPADDR=192.168.4.212                     </code>

director相關檔案:

<code>vi</code> <code>/etc/sysctl</code><code>.conf </code>

<code>net.ipv4.ip_forward = 1   </code><code>//</code><code>修改位置</code>

<code>sysctl -p   </code><code>//</code><code>對剛才配置檔案進行儲存</code>

<code>對于realserver web1和web2伺服器可以通過配置檔案永久生效如下所示</code>

<code>realserver(1&amp;2):</code><code>echo</code><code>"net.ipv4.conf.eth0.arp_ignore=1 </code>

<code>                 </code><code>net.ipv4.conf.eth0.arp_announce=2 " &gt;&gt;</code><code>/etc/sysctl</code><code>.conf</code>

<code>                 </code><code>sysctl -p</code>

<code>RealServer或臨時生效:</code>

<code> </code> 

<code>echo</code> <code>2 &gt;  </code><code>/proc/sys/net/ipv4/conf/eth0/arp_announce</code>  

<code> </code><code>echo</code> <code>1 &gt; </code><code>/proc/sys/net/ipv4/conf/eth0/arp_ignore</code>

主角部分:在分發器上安裝ipvsadm管理工具

<code>rpm -ivh </code><code>/media/cdrom/LoadBlanced/ipvsadm-1</code><code>.26-4.el6.x86_64.rpm </code>

<code>ipvsadm -A -t 192.168.4.201:80 -s rr</code>

<code>ipvsadm -a -t 192.168.4.201:80 -r 192.168.4.211 -g</code>

<code>ipvsadm -a -t 192.168.4.201:80 -r 192.168.4.212 -g  </code>

<code>/etc/init</code><code>.d</code><code>/ipvsadm</code> <code>save</code>

<code>ipvsadm -L -n</code>

生成驗證檔案

<code>realserver:生成驗證檔案,使用httpd服務</code>

<code>并對:web1   </code><code>echo</code> <code>"web11111"</code> <code>&gt;&gt; </code><code>/var/www/html/index</code><code>.html</code>

<code>web2 </code><code>echo</code> <code>"web22222"</code> <code>&gt;&gt; </code><code>/var/www/html/index</code><code>.html</code>

虛拟機linux用戶端測試:

<code>yum -y </code><code>install</code> <code>elinks</code>

<code>elinks 192.168.4.201 -dump  </code><code>//</code><code>觀察結果  滿足預測結果</code>

<code>[root@node2 ~]</code><code># elinks 192.168.4.233 -dump</code>

<code>   </code><code>web5678</code>

<code>   </code><code>web1234</code>

<code>[root@node2 ~]</code><code>#</code>

宿主主機測試

<a href="http://s3.51cto.com/wyfs02/M00/85/3B/wKioL1eds8LyJ_4iAAALcCPahRs140.png-wh_500x0-wm_3-wmp_4-s_3876653175.png" target="_blank"></a>

轉發器node1結果

<code>[root@node1 ~]</code><code># ipvsadm -L -n</code>

<code>IP Virtual Server version 1.2.1 (size=4096)</code>

<code>Prot LocalAddress:Port Scheduler Flags</code>

<code>  </code><code>-&gt; RemoteAddress:Port           Forward Weight ActiveConn InActConn</code>

<code>TCP  192.168.4.233:80 rr</code>

<code>  </code><code>-&gt; 192.168.4.211:80             Route   1      0          8         </code>

<code>  </code><code>-&gt; 192.168.4.212:80             Route   1      0          7</code>

<code>[root@node1 ~]</code><code># ipvsadm -L -n --stats</code>

<code>Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes</code>

<code>  </code><code>-&gt; RemoteAddress:Port</code>

<code>TCP  192.168.4.233:80                   24      116        0     9597        0</code>

<code>  </code><code>-&gt; 192.168.4.211:80                   12       60        0     4980        0</code>

<code>  </code><code>-&gt; 192.168.4.212:80                   12       56        0     4617        0</code>

現實情況中可根據實際規劃資訊進行相應的算法排程,LVS所提供的12中排程算法,在一定程度上能滿足大多數伺服器的架構需求。

本文轉自 CARYFLASH 51CTO部落格,原文連結:http://blog.51cto.com/maoxiaoxiong/1832438

繼續閱讀