LVS-DR 负载均衡模型实例

 VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。同VS/TUN技术一样,VS/DR技术可极大地 提高集群系统的伸缩性。这种方法没有IP隧道的开销, 对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连 在同一物理网段上。

 

 

ipvsadm 定义管理集群服务的命令行工具。可用于管理集群服务,集群服务中的rs,查看集群配置信息等。

ipvsadm 使用规则和参数说明:

管理集群服务,添加、修改、删除等...


  1. 管理集群服务:  
  2. 格式:-A|E -t|u|f service-address [-s scheduler] [-p [timeout]]                
  3. -A  添加    
  4.  -A -t|u|f ip:端口 [-s 算法]   
  5.  -t  tcp 协议集群  
  6.  -u  udp 协议集群  
  7.  -p  持久时长  
  8.  -s  指定算法  
  9.  -f  防火墙标记  
  10. -E  修改  
  11. -D  删除  
  12. 格式:ipvsadm -D -t|u|f service-address 


管理realserver,包括添加、删除、修改等...


  1. 管理realserver  
  2. 格式:ipvsadm -a -t|u|f service_address -r service-address [-g|i|m] [-w weight]  
  3. -a  添加  
  4.  -t|u|f  service-address: 事先定义好的某集群服务  
  5.  -r service-address :某rs 地址 在 nat 模型中可以用ip:port   
  6.  -g 表示dr模型  
  7.  -i 表示tun模型  
  8.  -m 表示nat模型  
  9.  -w 表示权重              
  10. -e  修改  
  11. -d  删除  
  12. 格式:ipvsadm -d -t|u|f service-address -r server-address 


查看配置信息,查看配置信息,连接状态,清空规则等...


  1. 查看:  
  2. -L|l  
  3.  -n  数字形式显示ip地址和端口  
  4.  --stats 统计数据  
  5.  --timeout 输出tcp/udp/tcpfin超时时间值  
  6.  --sort 对查看的内容进行排序,默认是升序  
  7.  -c 显示当前ipvs连接状况  
  8.  --rate 显示速率                
  9. -C 清空ipvs规则  
  10. -S 保存规则  
  11. ipvsadm -S > /xxx/xxx/xxxx  
  12. -R 载入此前的规则  
  13. ipvsadm -R  < /xxx/xxx/xxxx  
  14. service ipvsadm  restart   
  15. service ipvsadm  save 

使用三台主机作为测试环境:
系统环境RedHat5.8
虚拟机:VMware9
 Director:
 eth0: dip 192.168.106.100
 ech0:0 vip 192.168.106.101
  
RealServer:  配置过程中简称RS1和RS2
 rs1 eth0: 192.168.106.10
 lo vip 192.168.106.101  
 rs2 eth0: 192.168.106.11
 lo vip 192.168.106.101
 
注意事项:
   在给RealServer上必须先设置arp_announce 和  arp_ignore
   集群节点跟director必须在同一个物理网络中
   RIP 可以是用公网ip 实现更快捷的远程连接控制
   director仅负责处理入站请求,响应报文则有realserver直接发往客户端
   realserver 不能将网关指向 director
   不支持端口映射
   
   
  
配置过程:
 1,配置ip,集群节点跟director必须在同一个物理网络中,配置dip192.168.106.100
  setup-->Network configuration-->Edit Devices -->eth0 (eth0)
  配置 eth0:0 192.168.106.101
 

2,分别配置另外两台realserver ip 192.168.106.10 和 192.168.106.11,步骤同上 

3,调整 RS1 的 arp_announce 和  arp_ignore 值,让在接受到ARP 请求时不回应


  1. # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore   
  2. # echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore   
  3. # echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce  
  4. # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 


4,调整两台 RS2 的 arp_announce 和  arp_ignore 值,让在接受到ARP 请求时不回应


  1. # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore   
  2. # echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore   
  3. # echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce  
  4. # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 

5,配置RS1 和 RS2 上配置 vip 和 路由信息, 在lo:0 上配置


  1. # ifconfig lo:0 192.168.106.101 broadcast 192.168.106.101 netmask 255.255.255.255 up  
  2. # route add -host 192.168.106.101 dev lo:0 目标地址是vip 一定要通过lo:0 进来和出去 

 

6,在 Director 上配置路由信息


  1. # route add -host 192.168.106.101 dev eth0:0 

 7,在RS1 上安装web 服务,创建web 页面提供测试。


  1. # yum install -y httpd    
  2. # service httpd start  
  3. # vim /var/www/html/index.html  
  4.    这里web提供测试随便输入一些信息 即可  
  5.    如 AAAAAAAAAAAAA  
  6. # service httpd restart  
  7. # curl http://loacalhost 


8,在RS2 安装web服务并提供页面测试


  1. # yum install -y httpd    
  2. # service httpd start  
  3. # vim /var/www/html/index.html  
  4.    这里web提供测试随便输入一些信息 即可  
  5.    如 BBBBBBBBBBBBB  
  6. # service httpd restart  
  7. # curl http://loacalhost 


9,在Director 上测试 两个RS 服务器的WEB网页是否有效


  1. # curl http://192.168.106.10  
  2. # curl http://192.168.106.11 

10,DIRECTOR 配置lvs-dr服务


  1. # ipvsadm -A -t 192.168.106.101:80 -s wlc  
  2. # ipvsadm -a -t 192.168.106.101:80 -r 192.168.106.10 -g -w 2  
  3. # ipvsadm -a -t 192.168.106.101:80 -r 192.168.106.11 -g -w 3  
  4. # ipvsadm -L -n   
  5. # service ipvsadm save 

  配置结束!! 在浏览器中输入vip 测试lvs-dr负载均衡,多刷新几次页面。

 

 

 配置成功  到此结束!!!