集群入门简析
【Cluster : 集群】
通过调度器 组合了多台主机,完成同一个任务的组合。
(集群的节点至少要有三个(奇数个))
【三种类型的集群】
LB:load Balancing 负载均衡集群
目的:提高处理能力(一次能处理多少进程)
HA: high availability 高可用集群
目的: 增加服务可用性的(在线时长)
(可用性:在线time/(在线time+故障处理time))
HP: high perfomance 高性能集群(超级计算机)
目的: 处理复杂问题, 海量数据和大任务
并行处理集群
分布式文件系统
将大任务分隔为小任务,分别进行处理的机制
【数据存储方式】
DAS Direct Attached Storage 直接附加存储
NAS network Attached Storage) 网络附加存储
########################## LB 集群 ################################
概念:
在多个提供了相同能力的主机前端提供一个分发器接受用户请求,根据某种方式或策
略将用户请求分发到后端多台主机的集群类型,为了提供完善的工作能力,还为后端
主机做健康检查机制, 将客户请求转发到后端主机的标准是负载均衡器上的调度算法
常见的负载均衡器设备
【硬件负载均衡设备】Hardware
F5: BIG IP
Citrix: Netscaler
A10
【软件负载均衡设备】Software
四层:
LVS 工作性能好,
七层:(反向代理)操作性能好,工作性能略低
Nginx
主要场景: http, smtp, pop3 imap
Haproxy
主要场景: http, tcp (mysql,smtp)
############################# LVS ##################################
【LVS 相关的介绍】
LVS 是个负载均衡设备,它不提供任何服务,用户请求的时候只是将其转发到后端真正提
了该服务的服务器(这里称之为realserver)
*iptables/netfilter 不能和LVS 同时使用*
LVS:
Ipvsadm : 管理集群服务的命令行工具 工作在“用户空间”
Ipvs : 内核模块 (工作在内核)
微观工作剖析:
在用户空间使用ipvsadm写下规则,直接送给工作在内核的ipvs,ipvs工作在
INPUT链上, LVA监听在这个链上,一旦发现是集群请求,强行送到
FORWORD上
集群涉及到的IP
VIP : Directory用来向客户端提供服务的IP
RIP : realserver 的IP
DIP : 面向其他realserver提供服务的接口的IP
CIP :客户端的IP
- 【LVS 的三种类型】
LVS-NAT 地址转换 LVS-DR 直接路由 LVS-TUN 隧道
######################## 详解LVS的三种类型 ###########################
【NAT】
工作机制:
C端请求,交由director,根据请求发送到RS,之后数据又从director返回给C端
核心点:
1,集群节点和director在同以个IP网络中
2,RIP是私有地址,只能和DIP通信
3,director位于S端和C端之间,并负责处理进出的所有数据
4,RIP必须将网关指向DIP
5,directory支持端口映射
6,realserver任何类型的操作系统
7,较大规模应用场景中director易成为系统瓶颈
【DR】
工作机制:
C端请求,交由director,其通过调度算法得出要交给RS,RS直接将数据响应给C端
核心点:
1,各集群节点director必须在同一个物理网络中
2,RIP地址可以不是私有地址,(使用公有地址,可实现便携远程管理和监控)
3,director 值提供入站请求,响应报文 则由realserver直接发往客户端
4,realserver不能将网关指向DIP
5,director 不支持端口映射
6,大多数操作系统可以用在realserver (因为要求必须做到能隐藏vip)
7,DR模型的Director能够处理比NAT模型多的多的请求
【TUN】
工作机制:
TUN模型和DR模型相类似,但是TUN中DIP和RIP可以不在同一网络中, DIP-->VIP 基于隧道来传输,在数据包外层额外封装了S:DIP D :RIP 的地址
核心点:
1,各集群节点可以跨越internet
2,RIP必须是公网地址
3,directoer 只处理进站请求,响应报文 则由realserver直接发往客户端
4,响应报文一定不能通过director
5,只有支持隧道协议的OS才能用于realserver
6,不支持端口映射
#################### LVS调度方法: ##########################
静态(固定)调度
rr :轮询
wrr :加权轮询(weight)--
sh :源地址hash source hsash (用于会话绑定session affinity)
--
dh :目标地址hash (将同一个IP地址的请求发给同一个server)
调度的时候不考虑后台服务器是空闲的还是繁忙的
(不考虑后台服务器已经建立的活动链接和非活动链接)
链接已经建立数据正在传输:活动链接active)
数据输出完毕,链接还没断开:非活动链接inactive)
动态调度
lc :least-connection 最少链接
(考虑链接数目的多少,不考虑性能)
算法:active*256+inactive (谁小选谁)
wlc: 加权最少链接 (默认方法)
算法: (active*256+inactive)/weight
sed: 最少期望延迟
算法:(active+1)*256)/weight
nq: 永不排队
LBLC: 基于本地的最少链接
LBLCR: 基于本地的带复制功能的最少链接
###################### ipvsadm 命令的使用 ################################
ipvsadm
1,管理集群服务
添加 -A -t|u|f service-address [-s scheduler调度方法默认wlc] [-p [timeout]]
-t TCP协议的集群
-u UDP协议的集群
service-address: IP:PORT
-f firewallmark 防火墙标记(FWM)
service-address: Mark Number
修改 -E
删除 -D
-D -t|u|f service-address
2,管理集群服务中的RS
添加 -a -t|u|f service-address -r server-add [-g|i|m] [-w weight]
-t|u|f service-address: 事先定义好的某集群服务
r server-add 某RS的地址 在NAT模型中,可使用IP:PORT端口映射
[-g|i|m] LVS模型
-g : DR
-i ;TUN
-m : NAT (默认DR)
[-w weight] : 定义服务器权重
修改 -e
删除 -d -t|u|f service-address -r server-add
例子:#ipvsadm -a -t 172.16.21.1:80 -r 192.168.12.2 -m
3, 查看
-L|l|--list
-n 数字格式显示主机地址和端口
--stats 显示统计信息
--rate 用来显示速率 CPS 每秒连接数
--timeout tcp,udp,tcpfin的超时时间显示
-c 显示链接状态(有多少客户端链接进来了)
4,删除所有集群服务
-C: 清除ipvs规则
-Z: 清空数据
5,保存规则 servicr ipvsadm save
-S 例子;#ipvsadm -S >/path/to/somefile
6,载入此前的规则
-R 例子:#ipvsadm -r </path/to/somefile