集群,LVS,分布式讲解

二.集群和分布式简介

2.1.系统性能扩展方式
  • Scale UP:向上扩展,增强(硬件增强有局限性)

  • Scale Out:向外扩展,增加设备,调度分配问题,Cluster

2.2.集群Cluster

Cluster: 集群是为了解决某个特定问题将堕胎计算机组合起来形成的单个系统

Cluster常见的三种类型:

  • LB :LoadBalancing(负载均衡)由多个主机组成,每个主机只承担一部分访问**(解决访问压力问题)**

  • HA :High Availiablity(高可用)SPOF(single Point Of failure) MTBF:Mean Time Between Failure 平均无故障时间,正常时间 MTTR:Mean Time To Restoration( repair)平均恢复前时间,故障时间 A=MTBF/(MTBF+MTTR) (0,1):99%, 99.5%, 99.9%, 99.99%, 99.999% SLA:Service level agreement(服务等级协议)是在一定开销下为保障服务的性能和可用性,服 务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服务质量的主要因素。在 常规的领域中,总是设定所谓的三个9,四个9来进行表示,当没有达到这种水平的时候,就会有一 些列的惩罚措施,而运维,最主要的目标就是达成这种服务水平。 停机时间又分为两种,一种是计划内停机时间,一种是计划外停机时间,而运维则主要关注计划外 停机时间**(解决出问题解决时间问题)**

  • HPC:High-performance computing(高性能计算,国家战略资源)

2.3.分布式

分布式存储:Ceph,GlusterFs,FastDFS,MogileFs

分布式计算:hadoop,Spark

分布式常见应用:

  • 分布式应用-服务按照功能拆分,使用微服务 (将一个任务拆分成多个任务,交给不同主机)

  • 分布式静态资源--静态资源放在不同的存储集群上

  • 分布式数据和存储--使用key-value缓存系统

  • 分布式计算--对特殊业务使用分布式计算,比如Hadoop集群

2.4.集群和分布式
  • 集群:同一个业务系统,部署在多台服务器上,集群中,每一台服务器实现的功能没有差别,数据 和代码都是一样的

  • 分布式:一个业务被拆成多个子业务,或者本身就是不同的业务,部署在多台服务器上。分布式 中,每一台服务器实现的功能是有差别的,数据和代码也是不一样的,分布式每台服务器功能加起 来,才是完整的业务

  • 分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数 来提升效率,

  • 对于大型网站,访问用户很多,实现一个群集,在前面部署一个负载均衡服务器,后面几台服务器 完成同一业务。如果有用户进行相应业务访问时,负载均衡器根据后端哪台服务器的负载情况,决 定由给哪一台去完成响应,并且台服务器垮了,其它的服务器可以顶上来。分布式的每一个节点, 都完成不同的业务,如果一个节点垮了,那这个业务可能就会失败

三.lvs(Linux virtual server)运行原理

3.1 lvs简介

LVS:Linux Virtual Server,负载调度器,内核集成,章文嵩,阿里的四层SLB(Server LoadBalance)是基 于LVS+keepalived实现

四层:只能解决到传输层。

LVS 官网: The Linux Virtual Server Project - Linux Server Cluster for Load Balancing

LVS 相关术语

  • VS: Virtual Server,负责调度

  • RS:RealServer,负责真正提供服务

3.3.LVS概念
  • VS:Virtual Server

  • RS:Real Server

  • CIP:Client IP

  • VIP: Virtual serve IP VS外网的IP

  • DIP: Director IP VS内网的IP

  • RIP: Real server IP

访问流程:CIP <--> VIP == DIP <--> RIP

3.4.lvs集群的类型

lvs-nat: 修改请求报文的目标IP,多目标IP的DNAT

lvs-dr: 操纵封装新的MAC地址

lvs-tun: 在原请求IP报文之外新加一个IP首部

lvs-fullnat: 修改请求报文的源和目标IP

3.5nat模式(写的比较简单)

1.客户端发送访问请求,请求数据包中含有请求来源(cip),访问目标地址(VIP)访问目标端口 (9000port)

2.VS服务器接收到访问请求做DNAT把请求数据包中的目的地由VIP换成RS的RIP和相应端口

3.RS1相应请求,发送响应数据包,包中的相应保温为数据来源(RIP1)响应目标(CIP)相应端口 (9000port)

4.VS服务器接收到响应数据包,改变包中的数据来源(RIP1-->VIP),响应目标端口(9000-->80)

5.VS服务器把修改过报文的响应数据包回传给客户端

6.lvs的NAT模式接收和返回客户端数据包时都要经过lvs的调度机,所以lvs的调度机容易阻塞

搭建一个负载均衡的集群

首先准备4个主机:客户,LVS,nod1.node2

1.Director 服务器采用双网卡,一个是桥接网卡连接外网,一个是仅主机网卡与后端Web服务器相连

2.Web服务器采用仅主机网卡与director相连

3.Web服务器网关指向DIP

4.后端web服务器不需要连接外网

网络配置:ip仅供参考

clict用的nat模式:ip为172.25.250.200.0/24网段

LVS两张网卡:nat的网卡网段172.25.250.200.0/24网段,仅主机网卡网段172.25.254.0/24网段

web1和web2:都为172.25.254.0/24网段

添加LVS网卡,一个选择net模式一个选择仅主机模式

node1,node2选择仅主机

客户选择net模式

LVS上下载软件:

yum install ipvsadm

修改内核参数:

net.ipv4.ip_forward = 1

sysctl -p重新加载

目的:使得LVS主机上两个网卡可以互通

设置转换规则:

root@LVS \~\]# ipvsadm -A -t 172.25.250.200:80 -s rr \[root@LVS \~\]# ipvsadm -a -t 172.25.250.200:80 -r 172.25.254.10:80 -m \[root@LVS \~\]# ipvsadm -a -t 172.25.250.200:80 -r 172.25.254.20:80 -m \[root@LVS \~\]# ipvsadm -Ln #查看配置规则 **配置服务端两个主机的web服务:** \[root@node1 \~\]# yum install httpd \[root@node1 \~\]# echo web1 \> /var/www/html/index.html \[root@node1 \~\]# systemctl enable --now httpd \[root@node2 \~\]# yum install httpd \[root@node2 \~\]# echo web2 \> /var/www/html/index.html \[root@node2 \~\]# systemctl enable --now httpd 效果: ![](https://i-blog.csdnimg.cn/direct/462d82d52874404faefdb9a429a1a603.png) ###### **NAT模式总结** ![](https://i-blog.csdnimg.cn/direct/e74fbbb52d8a4188a296f746055a7ca4.png) **缺点:lvs调度器的NAT模式接收和返回客户端数据包时都要经过lvs的调度机,所以lvs的调度机容易阻塞** ##### 3.6DR模式(比较详细) DR:Direct Routing,直接路由,LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行 转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源 IP/PORT,以及目标IP/PORT均保持不变 mac地址的转换 ###### 搭建一个DR模式的集群 架构图: ![](https://i-blog.csdnimg.cn/direct/c897584eb1de4eb58b781483b72b754e.png) 网络解释: net模式网段:172.25.250.0/24 仅主机网段:172.25.254.0/24 路由器有两个网卡:一个net一个仅主机 LVS,web1,web2:用一个仅主机网卡再用一个环回网卡 **注意:这里VIP的地址用环回网卡,lo用仅主机的网卡(画图的时候lo标记错了)** **注意:需要打开路由器的内核路由功能使得路由器本身的两个网卡可以相互通信。并且设置Web服务器的ARP广播的响应,使得客户端发送172.25.254.200请求时只有LVS响应,web不响应。** ###### 一:ip设置 注意:客户端的网关写路由器的172.25.250.0网段,lvs,web1,web2写路由器的172.25.254.0网段 客户端: ![](https://i-blog.csdnimg.cn/direct/bb48acf94422451f89b2072c348616b5.png) 路由器: ![](https://i-blog.csdnimg.cn/direct/d043d0243b7646f8bf98b30d13f6f46d.png) LVS: ![](https://i-blog.csdnimg.cn/direct/407c3c9c93a44b3e984e72e5a2a1f313.png) Web1: ![](https://i-blog.csdnimg.cn/direct/e4b6f649bce84f46b723e7a062fa0f95.png) Web2: ![](https://i-blog.csdnimg.cn/direct/d1045558335243ab9ac79307e2b3dd58.png) ###### 二:路由器打开内核路由功能 vim /etc/sysctl.conf ![](https://i-blog.csdnimg.cn/direct/8fa737ce5a554a33b9d77b2415228c2e.png) sysctl -p 重新加载配置文件 ###### 三:部署LVS 软件下载:yum install ipvsadm -y 管理集群: \[root@lvs \~\]# ipvsadm -A -t 172.25.254.200:80 -s rr 管理集群中RealServer: \[root@lvs \~\]# ipvsadm -a -t 172.25.254.200:80 -r 172.25.254.10:80 -g \[root@lvs \~\]# ipvsadm -a -t 172.25.254.200:80 -r 172.25.254.20:80 -g ![](https://i-blog.csdnimg.cn/direct/b9c5dc78254448eb92270802017fd6f7.png) ###### 四:配置服务器上的web服务 web1: yum install httpd -y echo web1 \> /var/www/html/index.html 关arp echo 1 \> /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 \> /proc/sys/net/ipv4/conf/all/arp_announce echo 1 \> /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 \> /proc/sys/net/ipv4/conf/lo/arp_announce web2: yum install httpd -y echo web2 \> /var/www/html/index.html 关ARP echo 1 \> /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 \> /proc/sys/net/ipv4/conf/all/arp_announce echo 1 \> /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 \> /proc/sys/net/ipv4/conf/lo/arp_announce ###### 五:测试 ![](https://i-blog.csdnimg.cn/direct/e4ca62ab931340968cb2a99ada6ba9ac.png)

相关推荐
郭涤生1 小时前
Chapter 11: Stream Processing_《Designing Data-Intensive Application》
笔记·分布式
rainFFrain1 小时前
日志与策略模式
linux·运维·vscode·策略模式
xxc_my3 小时前
LVS高可用负载均衡
服务器·负载均衡·lvs·高可用
无情白3 小时前
k8s运维面试总结(持续更新)
运维·面试·kubernetes
H1346948905 小时前
企业服务器备份软件,企业服务器备份的方法有哪些?
运维·服务器·负载均衡
惊醒幡然15 小时前
消息队列之-Kafka
分布式·kafka
kill bert5 小时前
第30周Java分布式入门 消息队列 RabbitMQ
java·分布式·java-rabbitmq
塔能物联运维6 小时前
塔能科技:精准节能,擎动工厂可持续发展巨轮
大数据·运维
小王努力学编程7 小时前
【Linux系统编程】进程概念,进程状态
linux·运维·服务器·c++
liuliu03237 小时前
戴尔笔记本 ubuntu 22.04 开机后进入initramfs界面
linux·运维·ubuntu