HA:
centos6.4 之后引入keepalived
LB常用的解决方案:
F5 BIG-IP
思杰公司的 Netscaler
A10
array
linux :LVS
linux virtual server
ipvs ---netfilter
ipvs:框架,需要依赖于规则完成转发
lvs工作在内核中实现的,不到达用户空间;client请求到达vritual server后进入input链,input链基于ipvs转发规则,做postouting到后端指定服务器,
LVS:四层交换、四层路由
Cip---->Vip---->Dip---->Rip
lvs类型:
NAT
DR
TUN
FULLNAT(需要给内核打补丁,原生态的不支持)
LVS的nat类型相当于DNAT,IP改为后台real server中的1台
LVS的特性:
1、real server 应该使用私有地址(但不是必须的)
2、real server 的网关必须指向DIP.
3、Rip和Dip 必须在同一网段内;
4、请求和相应的保温都得经过Director,请求报文由director完成后目标地址转换,响应报文由Director完成源地址转换.
5、支持端口映射.
6、RS可以使用任意支持集群服务的OS.
LVS DR的特性:
1、让前端路由将请求发往VIP,只能是Director上都得VIP;
解决方案:
静态地址绑定.
未必有路由器的配置权限;
Director调用时静态地址绑定将难以使用:
arptables
修改Linux内核参数,将RS上的VIp配置为lo接口的别名,限制Linux仅对对应接口的ARP请求做响应.
LVS DR类型的特性:
1、RS可以使用私有地址;但也可以使用公网地址,此时可以直接通过互联网连入RS以实现配置、监控等。
2、RS的网关一定不能指向DIP。
3、RS跟Directory要在同一物理网络内。(不能由路由器分割)
4、请求报文经过Directory,但响应报文一定不经过Directory。
5、不支持端口映射.(请求哪个端口就用哪个端口响应)
6、RS可以使用大多数的操作系统.
LVS TUN类型:IP隧道
1、RIP/DIP/VIP都得是公网地址。
2、RS的网关不会指向也不可能指向DIP。
3、请求报文经过Directory,但响应报文一定不经过Directory:
4、不支持端口映射;
5、RS的OS必须得支持隧道功能:
LVS的调度算法:10种
静态方法:仅根据算法本身进行调度
rr:Round Robin
wrr:Weighted RR
sh:source hashingh
sh:destination hashing
动态方法:根据算法及RS当前负载状况
lc:Least Contenction
Overhead =Active *256 + Inactive
结果最小者胜出;
wlc :Weighted LC
Overhead = (Active*256+ Inactive)/weight
sed :Short Expect Delay
Overhead=(Active+1)*256/weight
nq : Nerver Queue
Session持久机制:
1、session绑定:始终将同一个请求者的连接定向至同一个RS(第一次请求时仍由调度方法选择);没有容错能力,有损均衡效果。
2、session复制:在RS之间同步session,因此,每个RS集群中所有的session;对于大规模集群环境不适用;
3、session服务器:利用单独部署的服务器来统一管理session;
#查看内核支持哪些ipvs的选项
grep -i "ipvs" /boot/config-2.6.32-431.el6.x86_64
ipvsadm 命令参数:
-A :添加一个集群服务
-t : tcp
-u : udp
-f : forewall mark 通常用于将两个或以上的服务绑定为一个服务进行处理时使用.
service-address:
-t IP:port
-u IP:port
-f firewall_mark
-s 调度方法,默认为wlc
-E 修改集群服务
-p timeout : 超时时间
RS相关
-a :向指定的CS中添加RS
-r : 指定RS,可以包含IP:port
LVS类型:
-g: Gateway ,DR
-i:ipip,TUN
-m:地址伪装
指定RS权重:
- w
-e :修改指定RS的属性
-d: 从指定的集群服务中删除RS
-D:删除指定的集群服务
-C 清空所有的集群服务
保存规则:(使用输出重定向)
ipvsadm-save = ipvsadm -S
载入指定的规则:(使用输入重定向)
ipvsadm-restore = ipvsadm -R
查看ipcs规则:
-L
-n :数字显示ip地址
-c:显示连接数相关信息
--statts: 显示统计数据
--rate:速率
--exact:显示统计数据的精确值
-Z:计数器清零