centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
2015-12-27 09:43
1506 查看
centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
LVS核心模块就是IPVS,安装在Director上,Director就是一个路由器,他包含有完成lvs功能的路由表,通过这些路由表把用户请求分发到real server。
同时,在Director上还要安装对realserver的监控模块LDirectord(LDirectord是heartbeat里面的一个插件,还需要perl-MailTools这个rpm包),这个模块用于监测各个real server服务的健康状况, 在real server不可用时把其从lvs路由表中剔除,在恢复时再重新加入
real server可以是:Linux、Windows、Unix、BSD等系统
LVS即使其中一台web服务器挂掉,LVS依然会把请求分发到挂掉的服务器,这是LVS的缺点
LVS权重最大100 最小0
用户的登录态的保持
1、服务器间用共享存储
2、用长连接,不允许会话切换web服务器,让会话保持在一台服务器
服务器:session
客户端:cookies
三种模式区别
$IPVSADM -a -t 192.168.31.166:80 -r 192.168.21.100:80 -m -w 1 //-a增加一个real server -m NAT模式 -g dr模式 -t tun模式 -w权重
NAT模式:realserver不需要公网ip,director负责接受请求和返回请求
DR模式/TUN模式:每个realserver都需要有公网ip,返回请求不需要经过director,director只负责分发接受的请求
DR模式和TUN模式区别:TUN模式realserver和dr通信使用隧道(修改了ip包头),DR模式不使用隧道(修改MAC地址)
dip:director ip
rip:real server ip
上半节课
三种模式区别
LVS/NAT 配置
LVS/DR 配置
下半节课
LVS/DR + keepalived配置
nginx ip_hash 实现长连接
LVS是四层LB
注意down掉网卡的方法
nginx效率没有LVS高
ipvsadm命令集
View Code
负载均衡的发展历程 http://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=403078442&idx=2&sn=bd31fddfccafde520a2fb0060e9b6522&scene=0#wechat_redirect 1996 F5成立
1998 LVS项目成立
2000 HAProxy项目成立
2004 NGINX推出公共版本
2004 F5推出TMOS平台
2007 F5开始提供应用交付(ADC)产品
负载平衡、SSL卸载、压缩优化、TCP连接优化
(一)LVS的痛点
LVS最常用的有NAT、DR以及新的FULL NAT模式。上图比较了几种常见转发模式的优缺点。
我们认为LVS的每种模式都有其优点和缺点,但最大的问题是其复杂性。相信很多朋友看到这三种方式的优缺点、还有F5的单臂模式、双臂模式都会有云里雾里的感觉。
(二)LVS集群的痛点
雪上加霜的是咱们还需要考虑LVS的性能扩展和容灾方法,这使得整个方案更加的复杂。常见的有基于Keepalived的主备方式和ECMP两种。
Keepalived主备模式设备利用率低;不能横向扩展;VRRP协议,有脑裂的风险。而ECMP的方式需要了解动态路由协议,LVS和交换机均需要较复杂配置;交换机的HASH算法一般比较简单,增加删除节点会造成HASH重分布,可能导致当前TCP连接全部中断;部分交换机的ECMP在处理分片包时会有BUG。
基于DR转发方式
LVS支持四种转发模式:NAT、DR、TUNNEL和FULLNAT(FULLNAT最近新加入的模式 还为合并到内核主线),其实各有利弊。Vortex在设计之初就对四种模式做了评估,最后发现在虚拟化的环境下DR方式在各方面比较平衡,并且符合我们追求极致性能的理念。
DR方式最大的优点是绝佳的性能,只有request需要负载均衡器处理,response可以直接从后端服务器返回客户机,不论是吞吐还是延时都是最好的分发方式。
其次,DR方式不像NAT模式需要复杂的路由设置,而且不像NAT模式当client和后端服务器处于同一个子网就无法正常工作。DR的这个特性使他特别合适作为内网负载均衡。
此外,不像FULLNAT一样需要先修改源IP再使用 TOA 传递源地址,还得在负载均衡器和后端服务器上都编译非主线的Kernel Module,DR可以KISS(Keep It Simple, Stupid)地将源地址传递给后端服务器。
最后,虚拟化环境中已经采用Overlay虚拟网络了,所以TUNNEL的方式变得完全多余。而DR方式最大的缺点:需要LB和后端服务器在同一个二层网络,而这在UCloud的虚拟化网络中完全不是问题。主流的SDN方案追求的正是大二层带来的无缝迁移体验,且早已采用各种优化手段(例如ARP代理)来优化大二层虚拟网络。
f
LVS核心模块就是IPVS,安装在Director上,Director就是一个路由器,他包含有完成lvs功能的路由表,通过这些路由表把用户请求分发到real server。
同时,在Director上还要安装对realserver的监控模块LDirectord(LDirectord是heartbeat里面的一个插件,还需要perl-MailTools这个rpm包),这个模块用于监测各个real server服务的健康状况, 在real server不可用时把其从lvs路由表中剔除,在恢复时再重新加入
real server可以是:Linux、Windows、Unix、BSD等系统
LVS即使其中一台web服务器挂掉,LVS依然会把请求分发到挂掉的服务器,这是LVS的缺点
LVS权重最大100 最小0
用户的登录态的保持
1、服务器间用共享存储
2、用长连接,不允许会话切换web服务器,让会话保持在一台服务器
服务器:session
客户端:cookies
三种模式区别
$IPVSADM -a -t 192.168.31.166:80 -r 192.168.21.100:80 -m -w 1 //-a增加一个real server -m NAT模式 -g dr模式 -t tun模式 -w权重
NAT模式:realserver不需要公网ip,director负责接受请求和返回请求
DR模式/TUN模式:每个realserver都需要有公网ip,返回请求不需要经过director,director只负责分发接受的请求
DR模式和TUN模式区别:TUN模式realserver和dr通信使用隧道(修改了ip包头),DR模式不使用隧道(修改MAC地址)
dip:director ip
rip:real server ip
上半节课
三种模式区别
LVS/NAT 配置
LVS/DR 配置
下半节课
LVS/DR + keepalived配置
nginx ip_hash 实现长连接
LVS是四层LB
注意down掉网卡的方法
nginx效率没有LVS高
ipvsadm命令集
! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id MySQL-HA } vrrp_instance VI_1 { state MASTER interface eth1 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.92.81.164 10.92.81.165 } } virtual_server 10.92.81.164 3306 { delay_loop 6 lb_algo rr lb_kind NAT nat_mask 255.255.255.128 persistence_timeout 50 protocol TCP real_server 10.92.81.132 3306 { weight 3 notify_down /etc/mysql/mysql.sh TCP_CHECK{ connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connetct_port 3306 } } } virtual_server 10.92.81.165 3306 { delay_loop 6 lb_algo rr lb_kind NAT nat_mask 255.255.255.128 persistence_timeout 50 protocol TCP real_server 10.92.81.132 3306 { weight 3 notify_down /etc/mysql/mysql.sh TCP_CHECK{ connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connetct_port 3306 } } }
View Code
负载均衡的发展历程 http://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=403078442&idx=2&sn=bd31fddfccafde520a2fb0060e9b6522&scene=0#wechat_redirect 1996 F5成立
1998 LVS项目成立
2000 HAProxy项目成立
2004 NGINX推出公共版本
2004 F5推出TMOS平台
2007 F5开始提供应用交付(ADC)产品
负载平衡、SSL卸载、压缩优化、TCP连接优化
(一)LVS的痛点
LVS最常用的有NAT、DR以及新的FULL NAT模式。上图比较了几种常见转发模式的优缺点。
我们认为LVS的每种模式都有其优点和缺点,但最大的问题是其复杂性。相信很多朋友看到这三种方式的优缺点、还有F5的单臂模式、双臂模式都会有云里雾里的感觉。
(二)LVS集群的痛点
雪上加霜的是咱们还需要考虑LVS的性能扩展和容灾方法,这使得整个方案更加的复杂。常见的有基于Keepalived的主备方式和ECMP两种。
Keepalived主备模式设备利用率低;不能横向扩展;VRRP协议,有脑裂的风险。而ECMP的方式需要了解动态路由协议,LVS和交换机均需要较复杂配置;交换机的HASH算法一般比较简单,增加删除节点会造成HASH重分布,可能导致当前TCP连接全部中断;部分交换机的ECMP在处理分片包时会有BUG。
基于DR转发方式
LVS支持四种转发模式:NAT、DR、TUNNEL和FULLNAT(FULLNAT最近新加入的模式 还为合并到内核主线),其实各有利弊。Vortex在设计之初就对四种模式做了评估,最后发现在虚拟化的环境下DR方式在各方面比较平衡,并且符合我们追求极致性能的理念。
DR方式最大的优点是绝佳的性能,只有request需要负载均衡器处理,response可以直接从后端服务器返回客户机,不论是吞吐还是延时都是最好的分发方式。
其次,DR方式不像NAT模式需要复杂的路由设置,而且不像NAT模式当client和后端服务器处于同一个子网就无法正常工作。DR的这个特性使他特别合适作为内网负载均衡。
此外,不像FULLNAT一样需要先修改源IP再使用 TOA 传递源地址,还得在负载均衡器和后端服务器上都编译非主线的Kernel Module,DR可以KISS(Keep It Simple, Stupid)地将源地址传递给后端服务器。
最后,虚拟化环境中已经采用Overlay虚拟网络了,所以TUNNEL的方式变得完全多余。而DR方式最大的缺点:需要LB和后端服务器在同一个二层网络,而这在UCloud的虚拟化网络中完全不是问题。主流的SDN方案追求的正是大二层带来的无缝迁移体验,且早已采用各种优化手段(例如ARP代理)来优化大二层虚拟网络。
f
相关文章推荐
- nginx 安装手记
- django-nginx-uwsgi
- PHP+PHP-fpm+PHP-cgi+nginx+yii2
- Nginx服务启动脚本
- nginx+keepalived双主高可用负载均衡
- 浅谈Nginx
- CentOS 6.7 编译安装Nginx 1.8.0
- Linux Is Not Matrix——Nginx做成linux服务
- nginx安装第三方模块的方法
- Nginx的红黑树结构
- nginx 负载均衡配置
- nginx+uwsgi+flask小例子
- nginx 配置优化详解
- nginx 配置详解
- (总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
- Nginx/LVS/HAProxy负载均衡软件的优缺点详解
- Nginx的双向链表(ngx_queue_t)
- 1.9Nginx配置(二)web部署
- Windows下启动,关闭Nginx命令
- Linux 安装 nginx注意