负载均衡可以用LVS方案,但是为了防止单点故障,可以选择lvs+keepalived组合保证高可用性
lvs和nginx的负载均衡区别:
・lvs是4层(传输层)负载均衡,仅作请求分发用,没有流量所以抗负载能力强
lvs工作在内核空间
・nginx是7层(应用层)负载均衡,可以针对http协议做分流用
比如后端有两个web服务器,apache(处理动态内容)和nginx(处理静态内容),如果用户想要访 问动态内容nginx就可以分发到apache服务器上
nginx工作在用户空间
ntpdate time.windows.com
1.环境简介
操作系统:Centos6.6
DR上装:ipvs管理工具:ipvsadm,keepalived
realserver上装:nginx或者Apache
LVS服务器系统由三部分组成
1)负载均衡层:
位于整个系统的最前端,避免单点故障一般由2台或2台以上负载调度器组成
2)服务器群组层
是一组真正提供服务的机器组成,Real server 可以是:Web、Ftp、mail等。4
3)共享存储层
为Real server提供共享存储空间和内容一致性的存储区域
Directory是整个LVS的核心,只能安装在Linux和FreeBSD上,
Real server可以是所有系统平台
*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地址被配置在本地,就会处理这个请求,处理完将数据直接返回给客户端
优点:如果跑在公网上,就可以对不同的地区分发,可以跨城市。
轮询(rr): 按照请求顺序轮流分发到后端RS
加权轮询(wrr): 权值高的获得的任务更多
最小连接数(lc): 动态的将请求建立到连接数较少的RS上
加权最小连接数(wlc):调度器自动询问RS的真实负载情况,并动态的调整权
4.ipvsadm参数
1)添加虚拟服务器语法:
ipvsadm -A t|u|f [vip_addr:port] [-s 指定算法]
-A:添加
-t:TCP协议
-u:UDP协议
-f:防火墙标记
-D:删除
-E:修改
-L:查看
2)添加真实服务器语法
ipvsadm -a t|u|f [vip_addr:port] [-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)实例:
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)Directory: 安装ipvsadm yum -y install ipvsadm 配置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 -r 192.168.1.105 -g -w 2 添加后端RS2 ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.106 -g -w 2 保存 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:0 192.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