LVS是什么:
LVS是Linux虚拟服务器的缩写,是开源的集群系统,负载调度器,内核集成;章文嵩博士在1998年创建的。
LVS的工作原理是通过一个前端的负载调度器(Load Balancer)将客户的请求按照一定的算法分发到后端的不同服务器进行处理。这个负载调度器负责将客户的请求转发到正确的服务器,并根据服务器的状态和设定的调度算法从服务器池中选择一个合适的服务器来处理请求。这种工作模式使得LVS能够提供较高的吞吐率和可用性,同时具有良好的可伸缩性和易管理性。
提到这里,就需要提出集群与分布式的概念了
集群Cluster
1.定义:集群是为了解决某个特定问题将多台计算机组合起来形成的单个系统
2.分类(常见的类型):
- 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%(数字越大)
- HPC:(High-performance computing)高性能计算,国家战略资源,不在课程范围内
分布式:
-
存储:Ceph,GlusterFs,FastDFS,MogileFs
-
计算:hadoop,Spark
-
常见的应用:
-
分布式应用-服务按照功能拆分,使用微服务
-
分布式静态资源--静态资源放在不同的存储集群上
-
分布式数据和存储--使用key-value缓存系统
-
分布式计算--对特殊业务使用分布式计算,比如Hadoop集群
-
分布式与集群的区别:
-
集群:同一个业务系统,部署在多台服务器上,集群中,每一台服务器实现的功能没有差别,数据和代码都是一样的
-
分布式:一个业务被拆成多个子业务,或者本身就是不同的业务,部署在多台服务器上。分布式中,每一台服务器实现的功能是有差别的,数据和代码也是不一样的,分布式每台服务器功能加起来,才是完整的业务
-
分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率,
-
对于大型网站,访问用户很多,实现一个群集,在前面部署一个负载均衡服务器,后面几台服务器完成同一业务。如果有用户进行相应业务访问时,负载均衡器根据后端哪台服务器的负载情况,决定由给哪一台去完成响应,并且台服务器垮了,其它的服务器可以顶上来。分布式的每一个节点,都完成不同的业务,如果一个节点垮了,那这个业务可能就会失败。
LVS的运行原理
-
定义 : Linux Virtual Server,负载调度器,内核集成
----------章文嵩,阿里的四层SLB(Server LoadBalance)是基
于LVS+keepalived实现.
-
工作原理:VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS
LVS集群的类型分类
部署NAT模式集群案例 (后续还会更新其他模式哟~)
-
定义(lvs-nat):本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和
PORT实现转发。
-
注意事项:
-
RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP
-
请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈
-
支持端口映射,可修改请求报文的目标PORT
-
VS必须是Linux系统,RS可以是任意OS系统
工作流程
访问流程:CIP <--> VIP == DIP <--> RIP
实验环境
准备四台主机
LVS主机 :两张网卡(NAT+仅主机)
eth0---172.25.254.100 eth1--192.168.0.100
websever1: 仅主机 192.168.0.10
websever2: 仅主机 192.168.0.20
一台测试机,自己的电脑也可以(可以用win+R里测试)
步骤
-
准备主机,3台均为9.4的虚拟机
-
配置LVS主机
#采用 vmset.sh(3.脚本自动获取)的方式
[root@lvs ~]# vmset.sh eth1 192.168.0.100 lvs.txy.org
[root@lvs ~]# vmset.sh eth0 172.25.254.100 lvs.txy.org
- 配置websever1和websever2
[root@websever1 ~]# vmset.sh eth0 192.168.0.10 websever1.txy.org
[root@websever2 ~]# vmset.sh eth0 192.168.0.20 websever2.txy.org
#注意修改网关
[root@websever1 ~]# vim /etc/NetworkManager/system-connections/eth1.nmconnection
- LVS中 配路由策略 开内核,开路由策略 编辑文件配置
#配置文件
[root@lvs ~]# vim /etc/sysctl.conf
# 或者
[root@lvs ~]# echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/ip_forward.conf
[root@lvs ~]# sysctl --system
- 安装在LVS中安装ipvsadm
[root@lvs ~]# yum install ipvsadm -y
- 在LVS中添加调度策略
[root@lvs ~]# ipvsadm -A -t 172.25.254.100:80 -s rr
[root@lvs ~]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80
[root@lvs ~]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m
[root@lvs ~]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20:80 -m#查看
[root@lvs ~]# ipvsadm -Ln#保存
[root@lvs ~]# ipvsadm -Sn#删除
[root@lvs ~]# ipvsadm -C
[root@lvs ~]# ipvsadm -Ln
- 测试 用自己的主机win+R
命令: curl 172.25.254.100
加油哟~