运维工程师之集群相关概念
1.1 集群概述:
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以统一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。简单总结为:一组协同工作但对外表现为一个整体的服务器组。
1.2 集群系统的优点:
-
高可扩展性:可以通过增加服务器数量达到性能扩展。
-
-
高性能:负载均衡集群允许系统同时接入更多的用户。
-
高性价比:可以采用廉价的硬件服务器构造高性能的系统。
1.3 负载均衡和分布式的区别:
饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,这两个厨师的关系是负载均衡。为了让厨师专心炒菜,把菜做到极致,又请了个配菜师负责切菜,备菜,备料,厨师和配菜师的关系是分布式,一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是负载均衡
1.4 流量相关:
-
PV:PV(page view)即页面浏览量或点击量,是衡量一个网站或网页用户访问量。具体的说,PV值就是所有访问者在24小时(0点到24点)内看了某个网站多少个页面或某个网页多少次。PV是指页面刷新的次数,每一次页面刷新,就算做一次PV流量。
-
UV:UV(Unique Visitor)独立访客,统计1天内访问某站点的用户数(以cookie为依据);访问网站的一台电脑客户端为一个访客。可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过来访电脑的cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的。如果用户不保存cookies访问、清除了cookies或者更换设备访问,计数会加1。00:00-24:00内相同的客户端多次访问只计为1个访客。
-
IP:IP可以理解为独立IP的访问用户,指1天内使用不同IP地址的用户访问网站的数量,同一IP无论访问了几个页面,独立IP数均为1。但是假如说两台机器访问而使用的是同一个IP,那么只能算是一个IP的访问。
一般情况:PV > UV > IP
其他情况:IP和UV之间的数据不会有太大的差异,通常UV量和比IP量高出一点,每个UV相对于每个IP更准确地对应一个实际的浏览者。
-
UV大于IP:这种情况就是在网吧、学校、公司等,公用相同IP的场所中不同的用户,或者多种不同浏览器访问您网站,那么UV数会大于IP数。
-
UV小于IP:在家庭中大多数电脑使用ADSL拨号上网,所以同一个用户在家里不同时间访问您网站时,IP可能会不同,因为它会根据时间变动IP,即动态的IP地址,但是实际访客数唯一,便会出现UV数小于IP数。
1.5 性能扩展:
-
垂直扩展(纵向扩展):为同样的计算资源池加入更多资源,比如增加更多内存、磁盘或是虚拟cpu,来应对增加的应用负载,典型案例:对称多处理机(SMP)、内存、硬盘
-
水平扩展(横向扩展):需要向计算平台加入更多的机器或设备,来处理增长的需求。
1.6 扩展命令:
nohup bash -x ./amoeba &
功能一:bash -x #执行命令时,先输出执行了的命令,再输出结果 功能二:nohup & #脱离终端运行,rsync脚本 功能三:nohup #生成执行过程 写入到 nohup.out文件中,当做执行日志(注意文件位置)
1.7 集群的分类:
-
LBC:负载均衡集群
-
NAT模式
-
DR模式
-
TUN模式
-
HAC:高可用集群
-
HPC:高性能计算集群(科学计算集群)
负载均衡集群
# 概念:由两个或两个以上的服务实体协调、配合完成一系列工作的模式,对外表现为一个整体
# 目的:提高业务性能,降低单台服务器压力
# 特性:不同节点之间相互独立,不共享任何硬件资源;通过一定算法将客户端的访问请求分配到群集的各个节点上,充分利用每个节点的资源。负载均衡扩展了网络设备和服务器带宽,增加吞吐量,加强网络数据处理能力
# 实现方式:
硬件:单独的硬件设备(独立专门的操作系统)F5(BigIP) A10(Thunder系列) redware
软件:DNS、LVS、Nginx、RAC、Haproxy等
LVS:是Linux Virtual Server的缩写,名为Linux虚拟服务器,中国最早的纳入Linux内核的应用层程序
RAC:是real application clusters的缩写,名为实时应用集群,是Oracle 的负载调用软件
说明:DNS将同一个域名解析为多个不同IP
缺点:1.DNS的解析缓存造成任务分配不均,导致单个服务器压力过大;2.无法实现健康状态检查、缓存dns无法实现分配用户请求
# 算法:
RR(Round-Robin):轮询
WRR(wight-Round-Robin):权重(加权轮询)
# 结构:
agent--->负载调度器
业务层---> 服务器池
存储--->共享存储
# 层级:
硬件:二层、四层、七层
软件:四层负载调度器(LVS/RAC)、七层负载调度器(mysql proxy/nginx/haproxy)
软件区别:
1、触发条件不同
四层:工作在传输层,转发数据依靠的是三层的ip和四层的port
七层:工作在应用层,数据依靠URL或主机名{FQDN}来区分,进多次连接
2、实现原理不同
四层负载调度器:TCP连接建立一次,客户端和RS主机之间
七层负载调度器:TCP连接建立两次,客户端和负载调度器;负载调度器和RS主机
3、应用场景不同
四层负载调度器:TCP应用为主;应用:OA、ERP
七层负载调度器:以HTTP协议为主,根据用户访问页面进行判断调度
4、安全性不同
四层负载调度器:转发SYN攻击
七层负载调度器:拦截SYN攻击
# LVS工作原理:
IPVS:钩子函数,内核机制,在请求没有到达目的地址之前,捕获并取得优先控制权的函数
IPVSADM:工作在用户空间,负责为ipvs内核框架编写规则,定义谁是集群服务,谁是后端真实的服务器
# 名词解释:
CIP:客户端IP
DIP:负载调度器IP
VIP:集群IP
RIP:真实服务器IP
# 负载调度器算法:
1.静态算法:只考虑算法本身,不考虑服务器状态
rr(轮循):从1开始到n结束
wrr(加权轮循):按权重比例进行调度,权重越大,负责的请求越多
sh(源地址hash):实现会话绑定,保留之前建立的会话信息。将来自于同一个ip地址的请求发送给一个真实服务器
dh(目标地址hash):将同一个目标地址的请求,发送给同一个服务器节点。提高缓存命中率
2.动态算法:既要考虑算法本身,也要考虑服务器状态(原理:通过hash表记录连接状态----active/inactive)
LC(最少连接):将新的连接请求分配给当前连接数最少的服务器。 公式:活动连接*256+非活动连接
WLC(加权最少连接):最少连接的特殊模式。#公式:(活动连接*256+非活动连接)/权重
SED(最短期望延迟):加权最少连接的特殊模式。#公式:(活动连接 +1)*256/权重
NQ (永不排队):sed的特殊模式,当某台真实服务器连接为0时,直接分配,不计算
LBLC(基于局部性的最少连接):dh的特殊模式,既要提高缓存命中率,又要考虑连接数量。先根据请求的目标 IP 地址寻找最近的该 目标 IP 地址所有使用的服务器,如果这台服务器依然可用,并且有能力处理该请求,调度器会尽量选择相同的服务器,否则 会继续选择其它可行的服务器
LBLCR(带复制的基于局部性的最少连接):LBLCR=LBLC+缓存共享机制
高可用(可靠)集群
# 概念:
高可用性(HA,High Availablity)是指通过尽量缩短系统停机时间(因日常的维护操作或突发的系统崩溃等),以提高系统和应用的可用性。一般是2个节点做出的HA集群,有很多通俗不科学的名称,比如“双机热备(主从关系)”,“双机互备(互为主从关系)”。 这样做的好处是当服务启动的时候,两台服务器一个作主(ser1),另外一个作从(ser2)。测试机每几秒会ping主机,当发现主机没有回应,就证明主机宕机了,那么从机马上会启动相应的服务,继续进行服务。这样就可保证服务部间断。
# 目的:最大限度的保证用户的应用程序持久、不间断的提供服务。(故障转移)
# 最大限度:
| 利用率 | 一年宕机总时长 |
| ------- | -------------- |
| 99% | 87.6h |
| 99.9% | 8.8h |
| 99.99% | 53m |
| 99.999% | 5m |
# 故障切换:
1.心跳检测:
RS232串口线:串行电缆被认为是比以太网连接安全性稍好些的连接方式,因为hacker无法通过串行连接运行诸如telnet、ssh或rsh 类的程序,从而可以降低其通过已劫持的服务器再次侵入备份服务器的几率。但串行线缆受限于可用长度,因此主、备服务器的距离必须非常短。
双机备份软件:Rose Haproxy Keepalived Heartbeat
2.脑分裂:
在一个网络或线缆故障时导致两个节点同时认为自已是唯一处于活动状态的服务器从而出现争用资源的情况,这种争用资源的场景即是所 谓的“脑裂”,造成数据不完整,服务不可访问。
# 解决:
方法一:设置参考ip,抢夺资源之前,都去ping参考ip(网关),ping不通时,不去抢资源,而是释放资源,将控制权交出去
方法二:设置冗余线路,设置两条心跳线,两个网卡,第一个测时不同,再拿第二个去测。
方法三:stonish(shoot the other node in the head 爆头):基于能够通过软件指令关闭某节点特殊的硬件设备,掐电源。
# keepalived概述:
案例环境专为LVS和HA设计的一款健康检查工具
支持故障自动切换
支持节点健康状态检查
主备模式,共用同一个IP地址,但优先级不同
- 点赞
- 收藏
- 关注作者
评论(0)