LVS的三种工作模式简述

打印 上一主题 下一主题

主题 1784|帖子 1784|积分 5352

一、弁言

   在过去的十几年中,Internet从几个研究机构相连为信息共享的网络发展成为拥有大量应用和服务的环球性网络,它正成为人们生活中不可缺少的 一部分。虽然Internet发展速率很快,但建设和维护大型网络服务依然是一项挑战性的任务,因为体系必须是高性能的、高可靠的,尤其当访问负载不断增 长时,体系必须能被扩展来满意不断增长的性能需求。由于缺少创建可伸缩网络服务的框架和设计方法,这意味着只有拥有非常精彩工程和管理人才的机构才能创建 和维护大型的网络服务。
  针对这种情形,本文先给出LVS集群的通用体系结构,并讨论了其的设计原则和相应的特点;末了将LVS集群应用于创建可伸缩的Web、Media、Cache和Mail等网络服务。
  二、LVS简介

   LVS(Linux Virtual Server)是一个基于Linux平台的开源负载平衡体系。它通过将多个服务器组成一个虚拟服务器集群,实现了高效的负载平衡和流量分发。LVS的核心头脑是利用IP负载平衡技术和内容哀求分发机制,将客户端的哀求平衡地分配给服务器集群中的各个节点。这种机制能够有效地提高服务器的利用率,低落单点故障的风险,并提供高可用性和可伸缩性的服务。
LVS的三种工作模式分别是NAT模式、IP隧道模式(TUN)和直接路由模式(DR)
  1、LVS的工作原理 

   
  LVS通过负载平衡技术将用户哀求分发到后端服务器,从而实现高性能、高可用的服务。LVS的根本工作原理是用户哀求到达LVS的虚拟IP(VIP),LVS根据转发方式和算法,将哀求转发给后端服务器,后端服务器处理哀求并返回效果给用户。
  2、LVS集群的体系结构 

   LVS集群采用IP负载平衡技术和基于内容哀求分发技术。调度用具有很好的吞吐率,将哀求平衡地转移到差别的服务器上执行,且调度器自动屏蔽掉服 务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。
  
 
   体系结构如图1所示,三层主要组成部分为:
  

  • 负载调度器(load balancer),它是整个集群对表面的前端机,负责将客户的哀求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。
  • 服务器池(server pool),是一组真正执行客户哀求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。
  • 共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有雷同的内容,提供雷同的服务。
  三、LVS三种工作模式

1、NAT模式

   NAT模式工作原理:用户哀求到达LVS的调度器,调度器将哀求的目的IP改为后端服务器的IP,同时修改目的端口,然后将哀求发送到后端服务器。后端服务器处理哀求后,将响应返回给调度器,再由调度器返回给用户
  1.1NAT模式体系结构

   在一组服务器前有一个调度器,它们是通过Switch/HUB相连接的。这些服务器 提供雷同的网络服务、雷同的内容,即不管哀求被发送到哪一台服务器,执行效果是一样的。服务的内容可以复制到每台服务器的本地硬盘上,可以通过网络文件系 统(如NFS)共享,也可以通过一个分布式文件体系来提供。
  1.2NAT体系结构图 


 
2、DR模式

   DR模式的工作原理:用户哀求到达LVS的调度器,调度器将哀求的目的MAC地址改为后端服务器的MAC地址,目的IP保持不变,然后将哀求发送到后端服务器。后端服务器直接将响应返回给用户。
  2.1DR模式的体系结构

   调度器和服务器组都必须在物理上有一个网卡通过不分断的局域网相连,如通过高速的交换机大概HUB相连。VIP地址为调度器和服务器组共享,调度 器配置的VIP地址是对外可见的,用于吸收虚拟服务的哀求报文;所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对表面是不可见的,只是用于处理目的地址为VIP的网络哀求。
  2.2DR模式体系结构图

 

 
3、TUN模式

   TUN模式工作原理:用户哀求到达LVS的调度器,调度器通过IP隧道技术将哀求封装到一个新的IP包中,然后发送到后端服务器。后端服务器解封装后处理哀求,并直接将响应返回给用户
  3.1TUN模式的体系结构 

   利用IP隧道技术将哀求报文封装转 发给后端服务器,响应报文能从后端服务器直接返回给客户。但在这里,后端服务器有一组而非一个,所以我们不可能静态地创建逐一对应的隧道,而是动态地选择 一台服务器,将哀求报文封装和转发给选出的服务器。这样,我们可以利用IP隧道的原理将一组服务器上的网络服务组成在一个IP地址上的虚拟网络服务。
  3.2TUN模式体系结构图

 
以上内容均来自LVS官方文档详情请自行访问该网站LVS项目中的有关中文文档
 
四、LVS负载平衡的搭建


注意:开始搭建之前所有虚拟机都需要关闭防火墙和SELinux
基于NAT的LVS负载平衡

1、节点规划

主机角色体系网络IPclientclientredhat 9.5仅主机192.168.75.100/24lvslvsredhat 9.5仅主机 NAT192.168.75.200/24 VIP 192.168.250.8/24 DIPnginxrs1redhat 9.5NAT192.168.250.7/24nginxrs2redhat 9.5NAT192.168.250.17/24nginxrs3redhat9.5NAT192.168.250.27/24 2、实验搭建

(1)更改网络设置

将主机lvs增加一块虚拟网卡模式为仅主机,将客户机的网卡改成仅主机模式,然后查看仅主机的网段。
注意:每个人的仅主机模式网段各不雷同,需要查看后自行修改,否则将会出现连不上xshell的问题
查看仅主机模式网段方法:1、打开vm点击编辑2、点击虚拟网络编辑器3、单击仅主机模式

网段查看好以后,利用nmcli命令修改IP地址。
注意:修改各主机ip时,要将LVS的ip作为rs1、rs2、rs3的网关
 (2)配置RS

先从rs1开始逐一配置
a、rs1

安装nginx
  1. dnf install nginx -y
复制代码
修改nginx的默认访问页
修改前如果忘记路径可利用rpm -ql  nginx查看
  1. echo $(hostname)  $(hostname -I) > /usr/share/nginx/html/index.html
复制代码
 b、rs2

安装nginx
  1. dnf install nginx -y
复制代码
修改nginx的默认访问页
  1. echo $(hostname)  $(hostname -I) > /usr/share/nginx/html/index.html
复制代码
c、rs3

安装nginx
  1. dnf install nginx -y
复制代码
修改nginx的默认访问页
  1. echo $(hostname)  $(hostname -I) > /usr/share/nginx/html/index.html
复制代码

(3)配置LVS

 修改网卡名称
  1. nmcli c modify 'Wired connection 1' connection.id ens224
复制代码
安装ipvsadm
  1. dnf install ipvsadm -y
复制代码
客户端只需要修改ip即可,无需任何配置。
启动ipvsadm
  1. ipvsadm-save > /etc/sysconfig/ipvsadm
  2. systemctl start ipvsadm
复制代码
需要在 LVS 服务器上配置ip转发内核参数
  1. vim /etc/sysctl.conf
  2. net.ipv4.ip_forward=1
复制代码
 
配置LVS规则匹配
  1. ipvsadm -A -t 192.168.75.200:80 -s rr
复制代码
 为规则增加RS
  1. ipvsadm -a -t 192.168.75.200:80 -r 192.168.250.7:80 -m -w 2
  2. ipvsadm -a -t 192.168.75.200:80 -r 192.168.250.17:80 -m -w 2
  3. ipvsadm -a -t 192.168.75.200:80 -r 192.168.250.27:80 -m -w 2
复制代码
查看LVS规则
  1. [root@lvs ~]# ipvsadm -Ln
  2. IP Virtual Server version 1.2.1 (size=4096)
  3. Prot LocalAddress:Port Scheduler Flags
  4.   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
  5. TCP  192.168.75.200:80 rr
  6.   -> 192.168.250.7:80             Masq    2      0          0         
  7.   -> 192.168.250.17:80            Masq    2      0          0         
  8.   -> 192.168.250.27:80            Masq    2      0          0         
复制代码
 重新启动ipvsadm服务
  1. systemctl restart ipvsadm
复制代码
(4)测试 

 在客户机上利用curl命令测试RS上的nginx服务
  1. [root@client ~]# curl 192.168.75.200
  2. RS3 192.168.250.27
  3. [root@client ~]# curl 192.168.75.200
  4. RS2 192.168.250.17
  5. [root@client ~]# curl 192.168.75.200
  6. RS1 192.168.250.7
复制代码
(5)总结 

1、LVS服务器需要有两块网卡,一块用于虚拟IP,便于用户访问;另一块作为后端真实主机的网关。
2、在配置规则时,需要通过 -m 参数来指定是 NAT 模式
3、需要在 LVS 服务器上配置ip转发内核参数



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曹旭辉

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表