LVS集群

计算机集群

计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。 集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。 集群计算机通常用来改进单个计算机的计算速度和可靠性。 集群就是一组独立的计算机,通过网络连接组合成一个组合来共同完一个任务。

系统扩展的发展:
scale up 向上扩展,更换更高配置的主机
scale out 向外扩展,增加主机数量来处理相同问题

集群的类型:

LB 负载均衡集群(Load Balance Cluster)
高可用性集群(High-availabilityclusters)简称HAC
高性能计算集群(High-perfomanceclusters)简称HPC
GSLB : GLObal Service Load Balancing 全局服务负载均衡
SLB : Service load Balancing 服务负载均衡

LB 负载均衡集群

负载均衡集群中有一个分发器或者叫调度器,我们将其称之为Director,它处在多台服务器的上面,分发器根据内部锁定义的规则或调度方式从下面的服务器群中选择一个以此来响应客户端发送的请求
在这里插入图片描述

高可用性集群

在这里插入图片描述

高可用集群是服务的可用性比较高,当我们某台服务器死机后不会造成我们的服务不可用。其工作模式则是将一个具有故障的服务转交给一个正常工作的服务器,从而 达到服务不会中断。一般来说我们集群中工作在前端(分发器)的服务器都会对我们的后端服务器做一个健康检查,如果发现我们服务器当机就不会对其在做转发。

衡量标准:可用性=在线时间/(在线时间+故障处理时间) 99%、99.9%、99.99%、99.999%

高性能的集群

高性能的集群是当某一个任务量非常大的时候,我们做一个集群共同来完成这一个任务。这种处理方式我们称为并行处理集群,并行处理集群是将大任务划分为小任务,分别进行处理的机制。一般这样的集群用来科学研究与大数据运算等方面的工作。现在比较火的Hadoop就是使用的并行处理集群。

LB集群的实现:
硬件:
F5 BIG-IP
CITRIX NetScaler
A10
Redware

软件:
lvs
haproorx
ats ( apache traffic serer)
perlbal

基于工作的协议层次划分:
传输层: lvs, haproxy (mode tcp )
应用层: haproxygen,nginx ,ats,perlbal

lvs集群

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。

  • 流行度不亚于apache的httpd,基于TCP/IP做的路由和转发,稳定性和效率很高
  • LVS有三种常见的模式:NAT、DR、IP Tunnel
  • LVS架构中有一个核心角色叫做分发器(Load balance),它用来分发用户的请求,还有诸多处理用户请求的服务器(Real Server,简称rs)

LVS的工作原理

在这里插入图片描述

LVS集群一般采用三层结构,其主要组成部分为:
负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。
服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。
共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。
netfilter: 流量过滤器

LVS的工作模式四种

LVS/NAT模式(Network address translation)
LVS/TUN模式(tunneling)
LVS/ DR模式(Direct routing)
LVS/FULLNAT模式

性能比较:DR>TUN>NAT>FULLNAT
l4:四层交换,四层路由:
根据请求报文的目标IP和PORT将其转发至后端主机集群中的某一台主机(根据挑选算法)

PREROUTING --> INPUT
    PREROUTING --> FORWARD --> POSTROUTING
    OUTPUT --> POSTROUTING

lvs:
ipvsadm/ipvs
ipvsadm:用户空间的命令行工具,用于管理集群服务
ipvs:工作于内核中netfilter INPUT钩子上

支持TCP,UDP,AH,EST,AH_EST,SCTP等诸多协议

[root@lb ~]# grep -i -A 2 'ipvs' /boot/config-4.18.0-193.el8.x86_64  // 查看系统对ipvs的支持l内核等情况,包括算法

[root@lb ~]# yum provides *bin/ipvsadm  // 查看由那个包提供的
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:01:28 ago on Wed 11 Nov 2020 01:31:51 AM CST.
ipvsadm-1.31-1.el8.x86_64 : Utility to administer the Linux
                         : Virtual Server
Repo        : AppStream
Matched from:
Other       : *bin/ipvsadm

[root@lb ~]# yum -y install ipvsadm  //安装ipvsadm

lvs arch:
调度器:director,dispatcher,balancer
RS:Real Server

LVS相关术语
  • DS:Director Server。指的是前端负载均衡器节点
  • RS:Real Server。后端真实的工作服务器
  • VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址
  • DIP:Director Server IP,主要用于和内部主机通讯的IP地址
  • RIP:Real Server IP,后端服务器的IP地址
  • CIP:Client IP,访问客户端的IP地址

LVS/NAT模式(Network address translation 路由转发模式)

在这里插入图片描述
lvs-nat 本质就是多目标DNAT (iptables) lxs-nat模式通过修改报文的目标ip地址(同时可能会修改目标端口)挑选出来的莫RS得·RIP地址实现转发

lvs-nat特点

RS的RIP和Director的响应都要经过director转发
所有配置时需要将director 的转发功能开启,极高负载的场景中,director可能会成为系统性能瓶颈
支持端口映射
RS可以使用任意OS
RS的RIP和Director的DIP必须在同一IP网络
lvs-dr(direct routing):lvs的默认模式,gateway
lvs-dr模式通过修改请求报文的目标MAC地址进行转发
请求和报文
RS和DIP应该使用私网地址,且RD的网关要指向DIP
真实服务器的网关必须设置为LVS的ip地址。

LVS/ DR模式(Direct routing 直接路由模式)

在这里插入图片描述
请求由 LVS 接受,由真实提供服务的服务器(RealServer, RS)直接返回给用户,返回的时候不经过 LVS。
DR 模式下需要 LVS 和绑定同一个 VIP(RS 通过将 VIP 绑定在 loopback 实现)。

一个请求过来时,LVS 只需要将网络帧的 MAC 地址修改为某一台 RS 的 MAC,该包就会被转发到相应的 RS 处理,注意此时的源 IP 和目标 IP 都没变,LVS 只是做了一下移花接木。
RS 收到 LVS 转发来的包,链路层发现 MAC 是自己的,到上面的网络层,发现 IP 也是自己的,于是这个包被合法地接受,RS 感知不到前面有 LVS 的存在。
而当 RS 返回响应时,只要直接向源 IP(即用户的 IP)返回即可,不再经过 LVS。
DR 模式是性能最好的一种模式。

lvs-dr的特点:

保证前端路由器将目标IP为VIP的请求报文发送给director,解决方案有以下三种:
1). 静态绑定
2). arptables
3). 修改RS主机内核的2个参数:
arp_announce:是否接收并记录别人的通告以及是否通告自己的mac地址给别人。

arp_announce有三个可选值,0,1,2,其意义如下:
  • 0(default,默认值为0):通告自己所拥有的所有地址
  • 1:尽量不通告与自己不在同一个网段的地址,比如不通告2.0网段的地址给1.0网段,不通告3.0网段的地址给1.0网段等,但是是尽量不通告,有可能还是会通告的
  • 2:总是不通告与自己不在同一个网段的地址,比如不通告2.0网段的地址给1.0网段,不通告3.0网段的地址给1.0网段等,绝对不会通告
arp_ignore:是否响应arp请求 arp_ignore有9个可选值,0,1,2,3,4,5,6,7,8,其意义如下:
  • 0(default,默认值为0):回应任何网络接口上对任何本地IP地址的arp查询请求
  • 1:请求报文从哪个接口进入的且请求的目标地址就是此接口配置的地址才予以响应,否则不响应 只回答目标IP地址是来访网络接口本地地址的ARP查询请求
  • 2:只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内
  • 3:不回应该网络接口的arp请求,而只对设置的唯一和连接地址做出回应
  • 4-7:保留未使用
  • 8:不回应所有(本地地址)的arp查询
    RS的RIP可以使用私有地址,也可以使用公网地址
    RS跟Director必须在同一物理网络中,中间不能有路由器相隔
    请求报文经由Director调度,但响应报文一定不能经由Director
    不支持端口映射
    RS可以是大多数OS
    RS的网关不能指向DIP
    lvs-tun(ip tunneling):ipip
    lvs-tun模式不修改请求报文的ip首部,而是通过在原有的ip首部(CIP<–>VIP)之外再封装一个ip首部(DIP<–>RIP)

LVS/TUN模式(tunneling)隧道模式

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值