LVS集群

一、集群

1、定义:为解决某个特定的问题将多个计算机组合起来形成一个单系统

****2、作用:****解决系统的性能瓶颈

早期集群:垂直扩展(向上扩展)------增加单个机器的性能,升级硬件。硬件升级有瓶颈,运应而生水平扩展(淘汰)

目前集群:水平扩展------向外扩展,增加设备,并行的运行多个服务,通过网络和算法来调度服务分配的问题

3、类型

(1)负载均衡集群LB(Load Balance):多个主机组成,每个主机只承担一部分访问请求,依靠负载均衡算法实现

(2)高可用集群HA(High Availiability):避免单点故障SPOF(Single point of failure),系统中有一部分组件出现故障,可以保证整个系统继续运行。现在的集群既能实现主从,也能实现同步和负载均衡

(3)高性能集群HPC(High-performance computing):快速转发、快速响应------大型企业

4、可靠性指标

(1)MTBF(mean time between failure):系统在正常运行期间无故障的平均时间,一般用小时或天数表示。MTBF越高,系统可靠性越高,出现故障的概率越小

(2)MTTR:系统从发生故障到恢复正常运行的平均时间,一般用小时或天数表示。MTTR越小,系统恢复故障的能力越强

(3)A:系统的可靠性指标。A越高越好

计算公式:A=MTBF/(MTBF+MTTR)

假设A=99.9%,1年=365天=8760小时,故障时间=8760*0.1%=8.76小时

(4)停机时间:

①计划内停机:预定时间内的维护或者检修时间(自定义)

②计划外停机:运维人员关注重点

5、集群 设计 原则

(1)可扩展性:集群要有随时可以添加或删除设备的能力,动态的扩缩容能力

(2)可靠性:若集群中有节点发生故障,可以快速检测并自动切换

(3)负载均衡:合理的分配负载,避免单个节点过载影响整体性能

(4)可维护性:能够方便的进行配置、部署、维护、监控,降低成本------与运维无关

(5)安全性:防止恶意攻击、数据泄密、数据丢失------与运维无关

(6)易用性:相关的工作人员,可以方便的进入集群,快速的开发、部署、测试等------与运维无关

二、LVS 集群 linux virtual server

1、定义:LVS集群是一个部署在linux系统上,通过内核层面实现负载均衡的软件。开源免费

2、作用:多个后端服务器组成一个高可用,高性能,负载均衡的高性能集群。通过负载均衡的算法,将客户端请求发送到后端服务器实现高可用,高性能,负载均衡

3、术语

(1)VS(virtual server):lvs服务的逻辑名称,外部访问lvs集群时提供的一个虚拟ip地址和端口号DS(director server):lvs集群中的主服务器或调度器,是整个lvs集群的核心。作用:接收客户端的请求转发到后端RS

(2)RS(real server):lvs集群的后端的真实服务器的ip。作用:接收到DS请求后,由RS处理请求并返回响应结果

(3)CIP(client ip):客户端的ip地址

(4)VIP(virtual ip):对外提供访问的统一的、虚拟的ip地址

(5)DIP(director ip):DS调度器在lvs内部使用的ip地址。作用:用于和RS进行通信

(6)RIP(real ip):后端真实服务器的ip地址

4、lvs访问的大致流程

(1)客户端访问vip

(2)DS调度器接收到请求,根据调度算法选择后端服务器RS,请求发送给RS

(3)RS处理请求并将响应发送到DS调度器

(4)DS会把RS真实服务器的响应包装成自己的响应,然后发送到客户端

客户端不知道请求的真实服务器,也不知道响应的服务器是谁

5、lvs的负载均衡方式

(1)NAT模式------地址转换(常用)

(2)DR模式------直接路由(最常用)

(3)TUN模式------隧道vpn协议(不用)【花钱】

NAT模式:

NAT模式是最常用的lvs负载均衡方式之一

工作原理:

1、在调度器上配置双网卡,一个指向内部,一个指向外部

2、配置一个可以和公网进行通信的vip

3、配置转发策略,如果访问vip,会把请求的数据转发到后台的RS。请求以报文的格式请求,调度器会修改目标ip地址和端口

12.0.0.1:80→192.0.168.233.30:80

4、RS处理完请求之后响应客户端。先到DS,调度器进行地址转换,把内网地址转换成公网地址,调度器响应给用户

192.168.233.30:80→调度器→nat转换→12.0.0.1:80→客户端

数据请求进入调度器做的是请求报文中ip地址的修改,数据响应进入调度器是根据nat配置进行地址转换

调度器的内网ip地址和真实服务器的ip地址要在同一网段,否则要用路由器转换

nat对于客户端来说请求地址始终不变,客户端不需要修改任何配置,转发由调度器通过算法来完成,后端服务器只管接收响应,也不需要修改任何配置。缺点:会造成调度器性能损失和单点故障

内网→外网:SNAT改变源ip地址

外网→内网:DNAT改变目的ip地址

DR模式:

特点:请求由调度器完成,响应给客户端由RS直接响应,不需要通过调度器

优点:性能高,可以配置vip地址的高可用,不存在单点故障

TUN模式:

特点:使用隧道协议把请求转发到后端服务器。需要在后端服务器配置隧道协议

6、设置lvs:

ipvsadam工具:管理ipvs内核模块的命令行工具,用于配置和管理lvs集群

(1)命令:

-A 添加虚拟服务器

-D 删除整个虚拟服务器

-s 指定负载调度的算法

-a 添加真实服务器

-d 删除真实服务器

-t 指定vip地址的端口号

-r 指定RIP的端口号

-m 使用nat模式

-g 使用DR模式

-i 使用隧道模式

-w 设置真实服务器的权重

-p 60 设定连接保持的时间60(秒)。默认不带,需指定

-ln 以数字及列表的形式查看lvs的配置信息

(2)负载调度算法:

静态调度(固定调度):

①rr轮询

②wrr加权轮询

③dh目的地址hash

④sh源地址hash

动态调度:

①lc 最小连接数调度

②wlc加权最小连接数调度:权重高的转发多,为了避免性能瓶颈,再加上最小连接数算法,可以把请求往连接数量较少的服务器继续转发

③lblc基于地址的最小连接数调度:将来自同一个目的地址的请求分配给RS,若这台服务器尚未满负荷,将此请求分配给连接数最小的RS,而且在下一次转法时会优先考虑这台RS

(3)ipvs模块

三、基于nginx做LVS集群实验(nat模式)

****实验条件:****4台服务器

1台客户端20.0.0.41(后面要修改ip地址)

1台DS调度服务器20.0.0.11

2台RS真实服务器20.0.0.21 20.0.0.31

实验步骤:

1、nginx2真实服务器

nginx3真实服务器

2、nginx1调度服务器

(1)下载安装包yum -y install ipvsadm*

下载安装包yum -y install iptables-services.x86_64 iptables

解决方法:保存配置文件

(2)修改网卡:nginx1调度服务器,nginx2、nginx3真实服务器

(3)添加网卡ens36

(4)配置策略SNAT

(5)配置调度服务器策略

(6)打开转发功能

(7)测试

相关推荐
sun0077003 小时前
ubuntu dpkg 删除安装包
运维·服务器·ubuntu
oi774 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器
吃肉不能购5 小时前
Label-studio-ml-backend 和YOLOV8 YOLO11自动化标注,目标检测,实例分割,图像分类,关键点估计,视频跟踪
运维·yolo·自动化
学Linux的语莫5 小时前
Ansible使用简介和基础使用
linux·运维·服务器·nginx·云计算·ansible
qq_312920115 小时前
docker 部署 kvm 图形化管理工具 WebVirtMgr
运维·docker·容器
Onlooker1295 小时前
云服务器部署WebSocket项目
服务器
学Linux的语莫6 小时前
搭建服务器VPN,Linux客户端连接WireGuard,Windows客户端连接WireGuard
linux·运维·服务器
legend_jz6 小时前
【Linux】线程控制
linux·服务器·开发语言·c++·笔记·学习·学习方法
黑牛先生6 小时前
【Linux】进程-PCB
linux·运维·服务器