天天看点

Linux下群集服务之LB集群-lvs-nat模式

 O:\RHCA\群集_Cluster\Linux下群集服务之LB群集-lvs-nat模式.docx

<b>Linux</b><b>下群集服务之lvs在企业网络中的应用案例</b>

<b>案例应用拓扑图:</b>

<a href="http://blog.51cto.com/attachment/201205/083406420.png" target="_blank"></a>

<b>案例应用实现详细步骤如下:</b>

<b>1.   </b><b>Client-pc</b><b>客户端配置</b>

<a href="http://blog.51cto.com/attachment/201205/083415976.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201205/083423567.png" target="_blank"></a>

<b>2. Director</b><b>服务器配置</b>

<b>2.1  Director</b><b>服务器</b><b>ip</b><b>地址配置</b>

<b>[root@junjie ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0</b>

<b>DEVICE=eth0</b>

<b>BOOTPROTO=none</b>

<b>ONBOOT=yes</b>

<b>NETMASK=255.255.255.0</b>

<b>IPADDR=10.106.6.254</b>

<b>GATEWAY=10.106.6.1</b>

<b>[root@junjie ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1</b>

<b>DEVICE=eth1</b>

<b>IPADDR=192.168.1.1</b>

<b>[root@junjie ~]# service network restart</b>

<b>Shutting down interface eth0:                              [  OK  ]</b>

<b>Shutting down interface eth1:                              [  OK  ]</b>

<b>Shutting down loopback interface:                          [  OK  ]</b>

<b>Bringing up loopback interface:                            [  OK  ]</b>

<b>Bringing up interface eth0:                                [  OK  ]</b>

<b>Bringing up interface eth1:                                [  OK  ]</b>

<b>[root@junjie ~]# ifconfig eth0</b>

<b>eth0      Link encap:Ethernet  HWaddr 00:0C:29:66:E1:DA </b>

<b>          inet addr:10.106.6.254  Bcast:10.106.6.255  Mask:255.255.255.0</b>

<b> </b>

<b>[root@junjie ~]# ifconfig eth1</b>

<b>eth1      Link encap:Ethernet  HWaddr 00:0C:29:66:E1:E4 </b>

<b>          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0</b>

<b>[root@junjie ~]# hostname director.junjie.com  #</b><b>注销重新登录</b>

<b>2.2  </b><b>开启</b><b>director</b><b>数据包转发能力</b>

<b>[root@director ~]# vim /etc/sysctl.conf</b>

<b>  7 net.ipv4.ip_forward = 1</b>

<b>[root@director ~]# sysctl -p</b>

<b>net.ipv4.ip_forward = 1</b>

<b>2.3  </b><b>配置本地</b><b>yum</b><b>服务器:</b>

<b>[root@director ~]# vim /etc/yum.repos.d/server.repo</b>

<b>[rhel-server]</b>

<b>name=Red Hat Enterprise Linux server</b>

<b>baseurl=file:///mnt/cdrom/Server/</b>

<b>enabled=1</b>

<b>gpgcheck=1</b>

<b>gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release</b>

<b>[rhel-cluster]</b>

<b>name=Red Hat Enterprise Linux cluster</b>

<b>baseurl=file:///mnt/cdrom/Cluster/</b>

<b>[root@director ~]#mkdir /mnt/cdrom</b>

<b>[root@director ~]# mount /dev/cdrom /mnt/cdrom/</b>

<b>mount: block device /dev/cdrom is write-protected, mounting read-only</b>

<b>[root@director ~]#yum list all</b>

<b>2.4  </b><b>安装配置</b><b>dircetor</b><b>服务器:</b>

<b>[root@director ~]# yum install -y ipvsadm</b>

<b>[root@director ~]# ipvsadm -ln</b>

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

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

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

<b>[root@director ~]# ipvsadm -A -t 10.106.6.254:80 -s wrr</b>

<b>[root@director ~]# ipvsadm -a -t 10.106.6.254:80 -r 192.168.1.2 -m -w 1</b>

<b>[root@director ~]# ipvsadm -a -t 10.106.6.254:80 -r 192.168.1.3 -m -w 2</b>

<b>TCP  10.106.6.254:80 wrr</b>

<b>  -&gt; 192.168.1.3:80               Masq    2      0          0        </b>

<b>  -&gt; 192.168.1.2:80               Masq    1      0          0</b>

<a href="http://blog.51cto.com/attachment/201205/083444840.png" target="_blank"></a>

<b>[root@director ~]# service ipvsadm save</b>

<b>Saving IPVS table to /etc/sysconfig/ipvsadm:               [  OK  ]</b>

<b>[root@director ~]# service ipvsadm start</b>

<b>Clearing the current IPVS table:                           [  OK  ]</b>

<b>Applying IPVS configuration:                               [  OK  ]</b>

<b>3.     </b><b>配置</b><b>real-server-1</b><b>的</b><b>web</b><b>服务器:</b>

<b>3.1 ip</b><b>地址配置</b>

<b>[root@junjie ~]# hostname r1.junjie.com</b>

<b>注销重新登录</b>

<b>[root@r1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0</b>

<b>HWADDR=00:0c:29:1b:f1:ba</b>

<b>IPADDR=192.168.1.2</b>

<b>GATEWAY=192.168.1.1</b>

<b>[root@r1 ~]# service network restart</b>

<b>Bringing up interface eth0:                                [  OK  ]</b>

<b>3.2 </b><b>配置本地</b><b>yum</b><b>服务器:</b>

<b>[root@r1 ~]# vim /etc/yum.repos.d/server.repo</b>

<b>[root@</b><b>r1</b> <b> ~]#mkdir /mnt/cdrom</b>

<b>[root@r1 ~]# mount /dev/cdrom /mnt/cdrom/</b>

<b>[root@r1 ~]#yum list all</b>

<b>3.3  Real-server-1</b><b>的</b><b>Web</b><b>服务器:</b>

<b>[root@r1 ~]# rpm -ivh /mnt/cdrom/Server/httpd-2.2.3-31.el5.i386.rpm</b>

<b>warning: /mnt/cdrom/Server/httpd-2.2.3-31.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186</b>

<b>Preparing...   #################################### [100%]</b>

<b>1:httpd      ########################################### [100%]</b>

<b>[root@r1 ~]#echo "web1" &gt; /var/www/html/index.html</b>

<b>[root@r1 ~]# service httpd start</b>

<b>Starting httpd: httpd: apr_sockaddr_info_get() failed for r1.junjie.com</b>

<b>httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName</b>

<b>                                                           [  OK  ]</b>

<b>3.4 </b><b>客户端访问</b><b>real-server-1</b><b>的</b><b>web</b><b>服务</b><b>:(使用</b><b>vmnet1</b><b>)</b>

<a href="http://blog.51cto.com/attachment/201205/083505763.png" target="_blank"></a>

<b>4.     </b><b>配置</b><b>real-server2</b><b>的</b><b>web</b><b>服务器:</b>

<b>4.1 ip</b><b>地址配置</b>

<b>[root@junjie ~]# hostname r2.junjie.com</b>

<b>[root@r2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0</b>

<b>IPADDR=192.168.1.3</b>

<b>[root@r2 ~]# service network restart</b>

<b>4.2 </b><b>配置本地</b><b>yum</b><b>服务器:</b>

<b>[root@r2 ~]# vim /etc/yum.repos.d/server.repo</b>

<b>[root@r2 ~]#mkdir /mnt/cdrom</b>

<b>[root@r2 ~]# mount /dev/cdrom /mnt/cdrom/</b>

<b>[root@r2 ~]#yum list all</b>

<b>4.3  Real-server-2</b><b>的</b><b>Web</b><b>服务器:</b>

<b>[root@r2 ~]# rpm -ivh /mnt/cdrom/Server/httpd-2.2.3-31.el5.i386.rpm</b>

<b>[root@r2 ~]#echo "web2" &gt; /var/www/html/index.html</b>

<b>[root@r2 ~]# service httpd start</b>

<b>Starting httpd: httpd: apr_sockaddr_info_get() failed for r2.junjie.vom</b>

<b>                                                           [  OK  ]</b>

<b>4.4 </b><b>客户端访问</b><b>real-server-2</b><b>的</b><b>web</b><b>服务</b><b>:(使用</b><b>vmnet1</b><b>)</b>

<a href="http://blog.51cto.com/attachment/201205/083516683.png" target="_blank"></a>

<b>5.     </b><b>客户端测试:</b><b>wrr</b>

<b>5.1  </b><b>客户端访问</b><b>director</b><b>的群集服务服务</b><b>:(网卡使用桥接模式)</b><b>http</b><b>:</b><b>//10.106.6.254</b>

<a href="http://blog.51cto.com/attachment/201205/083527711.png" target="_blank"></a>

<b>5.2 </b><b>客户端不断刷新</b>,发现出现2次web2,一次web1界面,说明按权重轮询

<a href="http://blog.51cto.com/attachment/201205/083536369.png" target="_blank"></a>

<b>5.3  </b><b>在director上查看信息如下</b>:轮询调度比几乎为2:1

<b>  -&gt; 192.168.1.2:80               Masq    1      0          12       </b>

<b>  -&gt; 192.168.1.3:80               Masq    2      0          24</b>

<b>5.4  </b><b>客户端测试-2:rr</b>

<b>[root@director ~]# ipvsadm –C          #</b><b>首先清空以前配置</b>

<b>[root@director ~]#  ipvsadm -A -t 10.106.6.254:80 -s rr</b>

<b>[root@director ~]# ipvsadm -a -t 10.106.6.254:80 -r 192.168.1.2 -m</b>

<b>[root@director ~]# ipvsadm -a -t 10.106.6.254:80 -r 192.168.1.3 –m</b>

<b>TCP  10.106.6.254:80 rr</b>

<b>  -&gt; 192.168.1.3:80               Masq    1      0          0        </b>

<b>[root@director ~]# service ipvsadm save</b>

<b>[root@director ~]# service ipvsadm restart</b>

<b>客户端访问</b><b>director</b><b>的群集服务服务:(网卡使用桥接模式)</b><b>http</b><b>:</b><b>//10.106.6.254</b>

<a href="http://blog.51cto.com/attachment/201205/083551261.png" target="_blank"></a>

客户端不断刷新,发现web2和web1交替出现,比率为1:1,说明依次轮询rr

<a href="http://blog.51cto.com/attachment/201205/083605621.png" target="_blank"></a>

在director上查看信息如下:轮询调度比几乎为1:1;

说明lvs调度方法是用的是RR模式

<b>  -&gt; 192.168.1.2:80               Masq    1      0          15       </b>

<b>  -&gt; 192.168.1.3:80               Masq    1      0          15</b>

<b>《完》</b>

关于Linux下集群服务简介和lvs的详解请参看我的博客:

<a href="http://xjzhujunjie.blog.51cto.com/3582724/850650">http://xjzhujunjie.blog.51cto.com/3582724/850650</a>

本文转自xjzhujunjie 51CTO博客,原文链接:http://blog.51cto.com/xjzhujunjie/850866

继续阅读