fdsfdfe 发表于 2015-8-14 08:59:24

搭建LVS负载均衡集群

负载均衡可以用LVS方案,但是为了防止单点故障,可以选择lvs+keepalived组合保证高可用性重点:每个节点都同步时间
1
ntpdate time.windows.com




1.环境简介
操作系统:Centos6.6
DR上装:ipvs管理工具:ipvsadm,keepalivedrealserver上装:nginx或者Apache
一、理论篇1.lvs集群的组成 LVS服务器系统由三部分组成
   1)负载均衡层:
         位于整个系统的最前端,避免单点故障一般由2台或2台以上负载调度器组成
   2)服务器群组层
         是一组真正提供服务的机器组成,Real server 可以是:Web、Ftp、mail等。4
   3)共享存储层
         为Real server提供共享存储空间和内容一致性的存储区域
         Directory是整个LVS的核心,只能安装在Linux和FreeBSD上,
         Real server可以是所有系统平台
2.lvs三种模式:*NAT:
   原理:DR收到请求数据包后,根据调度算法找到对应的RS,把数据包的目的IP改成RS的IP,并将请求分发给这台RS,RS收到数据包并处理完成后,将数据再发给DR,DR把数据包原地址改成自己的IP,目的IP改成客户端的IP
   优点:节省IP地址,因为只有DR需要一个公网IP地址
   缺点:所有的请求包和应答包都经过DR(负载均衡器),服务器节点过多时,大量数据包都经过负载均衡器处理速度就会变慢
*直连路由-DR:
   原理:DR收到请求数据包后,根据调度算法找到对应的RS,把数据包的目的MAC改成RS的MAC(因为IP一致),并将请求分发给这台RS,RS收到数据包并处理完成后,由于IP一致,将数据直接返回给客户端
   优点:DR只是分发请求,而且应答包由RS直接返回给客户,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈
   缺点:每台机器都需要一个公网IP,
*隧道-Tun:
    原理:(将一个IP报文封装在另一个IP报文中,所以可以跨网段。)DR收到请求数据包后,根据调度算法找到对应RS,RS收到后,把报文解封获得目的地址为VIP的报文,如果VIP地址被配置在本地,就会处理这个请求,处理完将数据直接返回给客户端
   优点:如果跑在公网上,就可以对不同的地区分发,可以跨城市。
3.lvs四种调度算法:轮询(rr):         按照请求顺序轮流分发到后端RS
加权轮询(wrr):      权值高的获得的任务更多
最小连接数(lc):   动态的将请求建立到连接数较少的RS上
加权最小连接数(wlc):调度器自动询问RS的真实负载情况,并动态的调整权
4.ipvsadm参数
1)添加虚拟服务器语法:
      ipvsadm-A t|u|f    [-s 指定算法]
      -A:添加
      -t:TCP协议
      -u:UDP协议
      -f:防火墙标记
      -D:删除
      -E:修改
      -L:查看
2)添加真实服务器语法
       ipvsadm-a t|u|f    [-r RSip_addr][-g|i|m][-w weight]
      -a:添加
      -t:TCP协议
      -u:UDP协议
      -f:防火墙标记
      -r:指定真实服务器IP
      -g:DR模式
      -i:TUN模式
      -m:NAT模式
      -w:指定权值
      -d:删除
      -e:修改
      -l:查看
3)通用:
      ipvsadm-ln查看规则
      service ipvsadm save 保存规则
      ipvsadm -R < path/to/somefile   
4)实例:   

1
2
3
ipvsadm -A -t 192.168.1.10:80 -s wrr
ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.107 -g -w 4
ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.108 -t -w 3




二、实战篇1.搭建DR模式的LVS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1)Directory:
   安装ipvsadm   yum -y installipvsadm
   配置VIP    ifconfig eth0:0 192.168.1.10 broadcast 192.168.1.10 netmask 255.255.255.255
   添加路由       route add -host 192.168.1.10 dev eth0
   添加虚拟服务器 ipvsadm -A -t 192.168.1.10:80-s wrr   
   添加后端RS1    ipvsadm -a -t 192.168.1.10:80-r192.168.1.105 -g-w2      
   添加后端RS2    ipvsadm -a -t 192.168.1.10:80-r192.168.1.106 -g-w2
    保存         service ipvsadm save<pre name="code" class="html">      
    查看         ipvsadm -ln
1)RS节点:   
            echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce   
            echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
            echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
            echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore   
         上面配置调整Linux内核ARP响应参数,阻止更新VIP的MAC地址,避免冲突
   配置VIP   ifconfig lo:0192.168.1.10 braodcast 192.168.1.10 netmask 255.255.255.255
添加路由   route add-host 192.168.1.10 dev lo:0   
启动服务   service httpd start



页: [1]
查看完整版本: 搭建LVS负载均衡集群