一、集群的类型
1、负载均衡集群(LB)
2、高可用集群(HA)
3、高性能集群(HP/HPC)
二、集群的实现
1、负载均衡集群的实现
(1)硬件设备
F5、BIG IP、Citrix、Netscaler、A10等
(2)软件设备
四层:LVS,七层:nginx、haproxy等
2、高可用集群的实现
三、集群的特点
高可伸缩性、高可管理性、高可用性
四、集群的部署
五、LVS集群
1、lvs的三种类型
(1)NAT:地址转换
lvs关联iptables/netfiler(PREROUTING--INPUT--FORWORD--OUTPUT--POSTROUTING)
特点:
集群节点跟director必须在同一个ip网络中;
Rip通常是私有地址,仅用于各集群节点间的通信;
Dirctor位于client和real server之间,并负责处理进出的所有通信;
Real server必须将网关指向dip;
支持端口映射;
Real server可以使用任意os;
在较大规模应用场景中,director易成为系统瓶颈;
(2)DR:直接路由
特点:
集群节点跟director必须在同一个物联网络中;
Rip可以使用公网地址,实现便捷的远程管理和监控;
Director仅负责处理入站请求,响应报文则由director直接发给客户端;
Real server不能将网关指向dip;
不支持端口映射;
(3)TUN:隧道
特点:
集群节点可以跨越internet;
RIP必须是公网地址;
Director仅负责处理入站请求,响应报文则由real server直接发送给客户端;
Real server网关不能指向director,响应报文不能通过dir;
只有支持隧道功能的os才能用于real server;
不支持端口映射;
2、lvs的调度方法
(1)固定调度(静态调度)
rr:轮询、轮调
wrr:加权轮调
sh:源地址hash;将同一客户端的用户请求发送至同一个real server
dh:主要用于缓存,不考虑cache的连接数
(2)动态调度
lc:最少连接;计算当前后端每个real server的动态连接数和非动态连接数总数并做比较以后哪一个数目小就挑选哪一个
计算方法:active*256+inactive 谁的小,挑谁
wlc:加权最少连接;默认,最理想的方法;
计算方法:(active*256+inactive)/weight 谁小,挑谁
nq:永不排队;权重大的先被发送连接,不考虑非连接的活动状况
sed:最短期望延迟,不再计算inactive的连接数
计算方法:(active*256)/weight 谁小,挑谁
LBLC:基于本地的最少连接;wlc算法,和dh差不多,考虑cache连接数
LBLCR:基于本地的带复制功能的最少连接;缓存复制机制
3、lvs工具
(1)ipvsadm:管理集群服务的命令行工具
主要功能:
a、管理集群服务:
添加:-A |E -t|u|f service-address [-s scheduler]
-t:TCP协议的集群
-u:UDP协议的集群
Service-address: IP:PORT
-f:firwallMark(FWM)防火墙标记
Service-address: Mark Number
示例:ipvsadm -A -t 172.16.100.1:80 -s rr //添加一个集群服务
删除:-D -t|u|f service-address
修改:-E
b、管理集群服务中的real server
添加:-a|e -t|u|f service-address -r server-address [-g|i|m] [-x upper] [-y lower]
-t|u|f Service-address:事先已经定义好的某集群服务地址
-r server-address:某real server的地址,在NAT模型中可以使用IP:PORT形式实现端口映射
[-g|i|m]:lvs的类型
-g:DR 默认
-i:TUN
-m:NAT
[-g|i|m]:lvs的类型:定义服务器权重
删除:-d -t|u|f service-address -r server-address
修改:-e
示例:ipvsadm -a -t 172.16.100.1:80 -r 192.168.4.101 -m //添加real server服务器
c、查看
-L|l [options] 可与以下参数一起使用
-n:数字格式显示主机地址和端口
--stats:统计数据
--rate:速率
CPS:每秒连接个数 InPPS:每秒入站报文的个数 OutPPS:每秒出站的包个数 InBPS: 每秒入站的字节个数 OutBPS:每秒出站的字节个数
--timeout:显示tcp、tcpfin、udp的会话超时时间长度
--daemon:显示进程,不常用
--sort:排序,默认升序
-c:显示当前ipvs有多少个客户端连接
示例:ipvsadm -L -n --stats
d、删除所有集群服务
-C:清空ipvs规则
e、保存规则
-S
示例:ipvsadm -S > /path/to/somefile
f、载入此前的规则:
-R
示例:ipvsadm -R > /path/from/somefile
(2)ipvs:内核模块
Grep -i ‘ipvs’ /boot/config-补全 //查看内核中是否有ipvs的功能
4、DR模式
(1)每个RS都需要有vip地址
Arp_ignore:定义只对什么样级别的网卡响应。当接收到arp请求时候响应级别的。
默认级别0:只要本地配置有相应地址,就给予响应;
1表示仅在请求的目标地址与配置请求到达的接口上的时候,才给予响应;
Arp_announce:用来定义向外通告自己本机源地址时候它的通告级别的。
默认级别0:将本机上任何接口上的任何地址向外通告;
1表示试图仅向目标网络通告与其网络匹配的地址;
2表示仅向与本地接口上地址匹配的网络进行通告。
三、keepalived知识
1、VRRP协议:虚拟的路由冗余协议--三层协议(基于四层也是可以使用的)
在网络中,用于网关冗余。
2、堆叠技术(使用专门的堆叠线来完成)
keepalived也通过VRRP来实现服务的高可用性。
全局配置:
管理名称和邮箱
VRRP实例的配置:
主备角色
优先级的配置
vip的配置:
虚拟地址;