集群的种类:
LB:Load Balance负载均衡集群,提供并发处理能力
HA:High Available高可用集群,提供服务在线能力
在线时间/(在线时间+故障处理时间)
HP:High Performance高性能集群,并行处理集群,科学计算集群
Hardware
F5,BIG IP
Citrix,Netscaler
A10
Software
四层:LVS
七层:
Nginx:http/smtp/POP3/imap、Haproxy
Haproxy:http,tcp(mysql,smtp)
LB: Load Balancing
lvs
haproxy
HA:
heartbeat
corosync+openais: (pacemaker) RHCS
ultramokey
keepalived
HP:
bowerful
======================================================================================================
LVS部分
LVS:Linux Virtual Server(工作在内核上的INPUT链,不可与iptables同时使用)
---- realserver
---director ---- realserver
(调度器)---- realserver
iptables构成:
①用户空间:iptables负责写规则
②内核空间:netfilter框架用来过滤
LVS构成:
①用户空间:ipvsadm用来管理集群服务的命令行工具
②内核空间:ipvs工作在INPUT链负责监控是否要转发包(根据ip:port规则判断)
LVS类型以及特点:
NAT: 地址转换
1,集群节点跟director必须在同一个IP(vlan,subnets)网络中
2,RIP通常是私有地址,引用于各集群节点间的通信
3,director负责位于client和real server之间,负责处理进出的所有通信
4,realserver必须将网关指向DIP
5,director支持端口映射(即向外提供的端口和内部的端口可以不同)
6,realserver可以使用任意操作系统
7,较大规模应用场景中,director易成为系统的瓶颈
DR :直接路由
1,集群节点跟director必须在同一个二层网络中(一个交换机上)
2,RIP可以使用公网地址,实现便捷的远程管理和监控
3,director只响应入站请求,响应报文由realservers直接发往客户端
4,realserver不能将网关指向DIP,直接使用前端的网关
5,不支持端口映射
6,大多数OS可以用在realserver上,因为OS必须支持隐藏VIP
TUN:隧道
1,集群节点跟director可以跨越Internet
2,RIP必须是公网地址
3,director只响应入站请求,响应报文由realservers直接发往客户端
4,realserver网关不能指向director
5,只有支持隧道功能的OS才能用于realserver
6,不支持端口映射
常见调度算法
①静态(固定)调度:不考虑服务器是否繁忙,活动连接和非活动连接的情况
rr :轮叫,轮询
wrr:Weight,加权轮询
sh :source hash,源地址哈希
缺点: 一定程度上打破了负载均衡
优点:由于http协议是无状态,每次请求都认为是新的。
web服务通过“客户端cookie-服务器session”记录用户信息
dh :可以理解为相同的请求在一个目的缓存服务器上
②动态调度
lc:最少连接
active*256+inactive
谁小,选谁
wlc:加权最少连接
(active*256+inactive)/weight
sed:最迟期望延迟
(active*256)/weight
nq: never queue,改进sed,即使是最低负载量的机器,也分配任务。
LBLC:基于本地的最少连接
LBLCR:基于本地的带复制功能的最少连接
默认方法:wlc
ipvsadm:
管理集群服务
添加:-A -t|u|f service-address [-s scheduler]
-t: TCP协议的集群
-u: UDP协议的集群
service-address: IP:PORT
-f: FWM 防火墙标记
service-address: Mark Number
修改: -E
删除:-D -t|u|f service-address
# ipvsadm -A -t 172.16.100.1:80 -s rr
管理集群服务中的RS
添加:-a -t|u|f service-address -r service-address [-g|i|m] [-w weight]
-t|u|f: 事先定义好的集群服务
-r service-address: 某个RS的地址,在NAT模型中,可使用IP:PORT实现端口映射
service-address: IP:PORT
[-g|i|m]: LVS类型
-g: DR
-i: TUN
-m:NAT
修改: -e
删除:-d -t|u|f service-address -r service-address
# ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 -m
# ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -m
查看:
-L|l
-n:数字格式显示主机地址和端口
--state:统计数据
--rete:速率
--timeout:显示tcp,tcpfin和udp的会话超时时长
-c:显示当前ipvs连接状况
删除所有集群服务
-C:清空ipvs规则
保存规则
-S:
# ipvsadm -S > /path/to/somefile (导出)
# ipvsadm -R > /path/to/somefile(导入)
(待续)
备份地址: 【Cluster】