集群技术概述
LB LoadBalancer 负载均衡集群
硬件:F5 BIG-IP
软件:LVS(4层-传输层tcp/udp等端口协议进行负载调度),Nginx,Haproxy(4/7层-应用层,如识别http协议中的url等进行调度)
LB集群主要解决高并发能力问题
HA HighAvailability 高可用集群
在线时间(在线时间+故障恢复时间)
Keepalived,RHCS,hearbeat,Pacemaker,rose(windows),PowerHA(AIX)
HA集群主要解决提高服务在线时间
HPC High-Performance Computing 高性能计算
MapReduce
追踪任务完成状态
Hadoop
HPC集群主要解决大任务计算的问题
LVS三种工作模式
VS/NAT:网络地址转换模式,进站出站的数据流量均经过调度器
any:Linux/Windows 是否支持Non-arp device均可
private:私有网络
low:10~20real server
gateway:所有real server网关必须指向调度器
VS/TUN:隧道模式,只有进站的数据流量经过分发器
VS/DR:直接路由模式,只有进站的数据流量经过分发器,调度器和真实服务器必须在同一网段
VS/NAT VS/TUN VS/DR
server any Tunneling Non-arp device
server network private LAN/WAN LAN
server number low(10~20) Hign(100) High(100)
server gateway load balance own router own router
VS/NAT实例拓扑
调度器通过修改网络层(三层)的目标IP地址达到调度分发的目的
Client: CIP:192.168.122.0/24
Director(调度器): eth0: VIP: 192.168.122.100
-----------------------------------------------------------------------------
eth1: DIP: 10.10.10.1
Real Server: RIP: 10.10.10.10/20/30
DNS Server: www.suminem.com ===> 192.168.122.100
#VS/NAT实施
1、准备工作
IP、hostname、hosts、iptables/firewalld、SELinux、ssh trust、ntp
2、real server配置
配置好网站服务器,测试所有RS
默认网关均指向Directory的DIP
3、Director分发器配置
配置VIP
ip r //查看路由表
ip addr add dev eth0 192.168.122.10/24 //临时IP
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p //确保打开路由转发
定义LVS的分发出策略
yum -y install ipvsadm //RHEL确保LoadBalancer仓库可用
//以下均可用keepalived管理
ipvsadm -A -t 192.168.122.100:80 -s rr // -A 增加一个virtual service虚拟服务
ipvsadm -a -t 192.168.122.100:80 -r 10.10.10.10 -m //-a 增加一个real server ;-m masquerading(NAT)
ipvsadm -a -t 192.168.122.100:80 -r 10.10.10.20 -m
ipvsadm -a -t 192.168.122.100:80 -r 10.10.10.30 -m
ipvsadm -Ln //查看ipvs的路由表,调度信息
service ipvsadm save
ipvsadm -L -n --stats
ipvsadm -L -n --rate //看速率
ipvsadm -Ln -c //查看LVS的连接条目
watch -n.5 'ipvsadm -Ln -c' //动态查看
4、测试
elinks -dump http://192.168.122.100
ab -c 1000 -n 1000 http://192.168.122.100/ //apache自带压力测试工具
5、小结
VS/NAT模式的原理是:当Director收到Client请求时,Direct将数据包的目标IP有VIP转换为选中的RIP实现分发,要求RS将网关指向Director的DIP。
特点:配置简单。进出站数据包都经过分发器,数据量大时可能会出现网络瓶颈,支持的RS数量少
注意:Director必须开启kernel ip_forward
所有RS默认网关需要指向DIP
Director使用DIP和RIP通信
6、常见问题排查
偶发页面访问异常
ipvsadm -Lnc //查看LVS的连接条目
state出现 SYN_RECV 时,检查对应的RS,如调度器上可正常访问,则看网关指向
#VS/DR原理
为了让Client接受RS直接返回的结果,RS上需要有VIP;Client请求过来时,为了避免VIP地址冲突,需要让RS开启no-arp,即广播时询问谁是VIP时,只有调度器应答;
实现方法为在环回接口lo上设置VIP(环回接口优先,也可以设置在未插网线的网卡),为了不造成IP地址冲突,掩码设置成32,不会产生路由,掩码32代表网络位为32,没有主机,因此不产生路由;
通过修改链路层的mac地址实现调度分发的目的,分发时修改mac地址为RS的mac地址,回包时通过查看自己的路由表,直接修改目标mac地址为网关的MAC地址,不经过调度器。
#VS/DR实施
DR模式要求Director的DIP和所有RS的RIP必须在同一个网段及广播域
所有节点的网关均指向真实的网关。
Director的VIP接收请求,RS的VIP设置在lo接口上,开启no-arp,不接收请求及广播询问
1、准备工作
IP、hostname、hosts、iptables/firewalld、SELinux、ssh trust、ntp
2、RS配置
yum -y install httpd
ip addr add dev lo 192.168.122.100/32 //在lo接口上绑定VIP
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore //non-arp
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
3、Director调度器配置
配置VIP
ip addr add dev eth0 192.168.122.100/32 //配置VIP
yum -y install ipvsadm
定义LVS分发策略
ipvsadmin -C
ipvsadm -A -t 192.168.122.100:80 -s rr // -A 增加一个virtual service虚拟服务
ipvsadm -a -t 192.168.122.100:80 -r 192.168.122.10 -g //
ipvsadm -a -t 192.168.122.100:80 -r 192.168.122.20 -g
ipvsadm -a -t 192.168.122.100:80 -r 192.168.122.30 -g
ipvsadm -Ln //查看ipvs的路由表,调度信息
service ipvsadm save