文章目录
集群
集群概述
什么是集群
- 一组通过高速网络互联的计算机组,并以单一系统的模式加以管理
- 讲很多服务器集中起来一起,提供同一种服务,在客户端看来就像是一个服务器
- 可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益
- 任务调度是集群系统中的核心技术
集群的目的
-
提高性能
如计算密集型应用,如:天气预报、核试验模拟
-
降低成本
相对百万级别得超级计算机,价格便宜
-
提高可扩展性
只要增加集群节点即可
-
提高可靠性
多个节点完成相同功能,避免单点失败
集群的分类
-
高性能计算集群HPC
通过以集群卡法的并行应用程序,解决复杂的科学问题
-
负载均衡(LB)集群
客户端负载在计算机集群中尽可能平均分摊
-
高可用(HA)集群
避免单点故障,当一个系统发生故障时,可以快速迁移
符合以上部分需求的软件有LVS,keepalived等
LVS项目介绍
- Linux虚拟服务器(LVS)是章文蒿在国防科技大学就读博士期间创建的
- LVS可以实现高可用的,可伸缩的web,Mail、Cache和Media等网络服务
- 最终目标是利用Linux操作系统和LVS集群软件实现一个高可用,高性能,低成本的服务器应用集群
- 该软件内置于Linux的内核之中
LVS集群组成
-
前端:负载均衡层
由一台或多台负载调度器构成
-
中间:服务器群组层
由一组实际运行应用服务的服务器组成
-
底端:数据共享存储层
提供共享存储空间的存储区域
LVS的常用术语
-
Director Server:调度服务器
将负载分发到Real Server服务器
有两个IP,一个为VIP,一个为DIP
-
Real Server:真实服务器
真正提供应用服务的服务器(RIP)
-
VIP: 虚拟IP地址
公布给用户访问的虚拟IP地址(一般为调度器的IP)
-
RIP:真实IP地址
集群节点上使用的IP地址
-
DIP:调度器连接节点服务器的IP地址
LVS的工作模式
lvs原理是路由器(数据包转发)
工作流程:客户机访问lvs,lvs转发数据包给web服务器,web服务器回应数据包给客户端
nginx原理为代理(帮客户访问)
工作流程:客户机访问nginx代理服务器,代理服务器帮客户机访问web服务器,web服务器把内容返回给nginx代理服务器,通过代理服务器返回给客户端
lvs和路由器相比,比路由器多了一个调度功能,调度功能是集群的核心
lvs是内核层面的东西,相比较nginx(nginx是操作系统层面的软件),lvs的性能更高,但是他的一些功能更少,比如就缺少健康检查等

NAT模式:
用户访问调度器,调度器把请求转给web1,web1从调度器回复用户
当用户访问量过多,所有的数据都会经过调度器,这时,网络的带宽就会成为整个集群的瓶颈。这种适合小规模的集群
- 通过网络地址转换实现的虚拟服务器
- 大并发访问时,调度器的性能成为瓶颈
TUN模式:
调度器和服务器不在同一个网,例:用户访问地址在A的调度器,调度器转发到地址为B的web服务器,中间跨过公网,所以要在代理服务器和web服务器中间搭建隧道
- 通过隧道方式实现虚拟服务器
DR模式:(直连路由模式)
用户访问调度器,调度器转发给web服务器,web服务器直接回复给用户
这种模式,缓解了调度器返回数据的压力,提高了并发访问量,适合较大规模的集群
- 直接使用路由技术实现虚拟服务器
- 节点服务器需要配置VIP,注意MAC地址广播
LVS负载均衡调度算法
-
LVS目前实现了10种调度算法
-
常用调度算法有四种
轮询(rr):将客户端请求平均分发到Real Server
加权轮询(wrr):根据Real Server权重值进行轮询调度
最少连接(lc):选择连接数最少的服务器
加权最少连接(wlc):根据Real Server权重值,选择连接数最少的服务器
-
其他调度算法
源地址散列算法:(sh)根据请求的目标IP地址,作为散列键(Hash Key)从静态分配到散列表中赵出对应的服务器,与nginx中的ip_hash效果一致(客户端IP不变,服务器集群中有固定服务器进行回应)
基于局部性的最少连接
带复制的基于局部性最少连接
目标地址散列(dh)
最短的期望的延迟
最少队列调度
LVS-NAT集群:
LVS的IP负载均衡技术是通过IPVS模块实现的,这里需要使用ipvsadm命令
这里先进行实验前的准备
ipvsadm命令用法
问题:
使用Linux服务器,安装ipvsadm软件包,练习使用ipvsadm命令,实现以下功能
- 使用命令添加基于TCP的一些集群服务
- 在集群中添加若干台后端真实服务器
- 实现一些客户端访问,调度器分配固定服务器
- 会使用ipvsadm实现规则的增删改
- 保存ipvsadm规则
方案:
安装ipvsadm软件包
常用ipvsadm命令语法如下所示
| 命令选项 | 含义 |
|---|---|
| ipvsadm -A | 添加虚拟服务器 |
| ipvsadm -E | 修改虚拟服务器 |
| ipvsadm -D | 删除虚拟服务器 |
| ipvsadm -C | 清空所有 |
| ipvsadm -a | 添加真实服务器 |
| ipvsadm -e | 修改真实服务器 |
| ipvsadm -d | 删除真实服务器 |
| ipvsadm -L | 查看LVS规则表 |
| -s [rr|wrr|lc|wlc|sh] | 指定集群算法 |
实例
| 命令 | 含义 |
|---|---|
| ipvsadm -A -t|u 192.168.19.10:80 -s [算法] | 添加虚拟服务器,协议为tcp(-t)或者udp(-u) |
| ipvsadm -E -t|u 192.168.19.10:80 -s [算法] | 修改虚拟服务器,协议为tcp(-t)或者udp(-u) |
| ipvsadm -D -t|u 192.168.19.10:80 | 删除虚拟服务器,协议为tcp(-t)或者udp(-u) |
| ipvsadm -C | 清空所有 |
| ipvsadm -a -t|u 192.168.19.10:80 -r 192.168.20.10 [-g|i|m] [-w 权重] | 添加真实服务器-g(DR模式)-i(隧道模式)-m(NAT模式) |
| ipvsadm -e -t|u 192.168.19.10:80 -r 192.168.20.10 [-g|i|m] [-w 权重] | 修改真实服务器 |
| ipvsadm -d -t|u 192.168.19.10:80 -r 192.168.20.10 |
本文详细介绍了Linux虚拟服务器(LVS)的集群概念、目的和分类,重点讲解了LVS的NAT、TUN和DR三种工作模式。通过LVS-NAT集群和LVS-DR集群的实践案例,阐述了如何配置调度器、添加和管理真实服务器,以及使用ipvsadm命令进行规则管理。此外,还探讨了LVS的负载均衡调度算法,包括轮询、加权轮询、最少连接和加权最少连接等,并提供了健康检查脚本的示例。
最低0.47元/天 解锁文章

4482

被折叠的 条评论
为什么被折叠?



