文章目录

  • 前言
  • 一、群集与分布式
    • 1.1 群集的含义
    • 1.2 系统性能扩展方式
    • 1.3 群集的三种类型
    • 1.4 LVS的负载调度算法
    • 1.5 分布式系统
    • 1.6 集群和分布式
    • 1.7 负载均衡群集架构
  • 二、Linux Virtual Server简介
    • 2.1 LVS介绍
    • 2.2 LVS工作原理
    • 2.3 LVS 功能及组织架构
    • 2.4 LVS集群类型中的术语
  • 三、LVS工作模式和相关命令
    • 3.1 LVS集群的工作模式
  • 四、ipvsadm 工具
  • 五、NAT模式 LVS负载均衡部署
    • 5.1 部署共享存储
    • 5.2 节点Web服务器
    • 5.3 负载调度器
    • 5.4 Windows客户机
  • 总结

前言

LVS(Linux Virtual Server)Linux虚拟服务器,通过虚拟IP来接受请求,通过一定的方法(由LVS的模式决定)转发到对应的real server(RS)实际服务器,达到流量分发、负载均衡的目的。

一、群集与分布式

1.1 群集的含义

群集又称为集群、Cluster,是由多台主机构成,但是对外依然是一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。

在实际应用中,随着站点对性能的、响应速度、数据可靠性、服务器稳定性等要求越来越高,单台服务器已经无法满足负载均衡及高可用要求。

1、使用价格昂贵的小型机、大型机,即提升硬件性能。
2、使用多台相对廉价的普通服务器进行构建服务集群。

1.2 系统性能扩展方式

1.Scale UP:垂直扩展,向上扩展,增强,性能更强的计算机运行同样的服务

2.Scale Out:水平扩展,向外扩展,增加设备,并行地运行多个服务调度分配问题,Cluster(集群)

3.随着计算机性能的增长,其价格会成倍增长,垂直扩展不再提及,单台计算机的性能是有上限的,不可能无限制地垂直扩展,多核CPU意味着即使是单台计算机也可以并行的,也就是使用集群技术

1.3 群集的三种类型

负载均衡群集
1.LB: Load Balancing,负载均衡,多个主机组成,每个主机只承担一部分访问请求

2.提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能
LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而环节整个系统的负载压力。
高可用群集
HA: High Availiablity,高可用,避免 SPOF(single Point Of failure)

3.提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果
HA的工作方式包括双工和主从两种模式,双工即所有的节点都同时在线;主从则只有主节点在线,但是一旦出现故障从节点就能自动切换成主节点。
高性能运算群集
HPC: High-performance computing,高性能

4.提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力
5.高性能依赖于“分布式运算”、“并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力,如:“云计算” “网格计算” 等。

1.4 LVS的负载调度算法

1.轮询(Round Robin)

将收到的访问请求按照顺序轮流分配给群集中的各节点 (真实服务器)
均等地对待每台服务器,而不管服务器实际的连接数和系统负载。
2.加权轮询(Weighted Round Robin)

根据调度器设置的权重值来分发请求
权重值高的节点优先获得任务并且分配的请求越多
这样可以保证性能高的节点承担更 多请求。
3.最少连接(Least Connections)

根据真实服务器已建立的连接数进行分配
将收到的访问请求优先分配给连接数最少的节点
如果所有的服务器节点性能相近,采用这种方式可以更好的均衡负载
4.加权最少连接(Weighted Least Connections)

在服务器节点的性能差异较大的 情况下,调度器可以根据节点服务器负载自动调整权重
权重较高的节点将承担更 大比例的活动连接负载。

1.5 分布式系统

1.分布式存储: 将数据分散存储在多台独立的设备上 。Ceph(分布式文件系统),GlusterFS,FastDFS(开源的轻量级分布式文件系统),MogileFS(高效的文件自动备份组件)

2.分布式计算: 将该应用分解成许多小的部分,分配给多台计算机进行处理。 hadoop(分布式系统基础架构),Spark

分布式常见应用

1.分布式应用-服务按照功能拆分,使用微服务(单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值服务)
分布式静态资源–静态资源放在不同的存储集群上
2.分布式数据和存储–使用key-value缓存系统
分布式计算–对特殊业务使用分布式计算,比如Hadoop集群

1.6 集群和分布式

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

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

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

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

1.7 负载均衡群集架构

1.第一层:负载调度器 (Load Balancer)
访问整个群集系统的唯一入口,对外使用所有服务器的共有的VIP(虚拟IP)地址,也称之为群集IP地址。通常会配置主、备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用性。

2.第二层:服务器池 (Server Pool)
群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址(真实IP),只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。

3.第三层:共享存储(Share Storage)
为服务器池中的所有节点提供稳定、一致的文件存储服务,确保整个群集的统一性。共享存储可用使用NAS设备,或者提供NFS共享服务的专用服务器。

二、Linux Virtual Server简介

2.1 LVS介绍

LVS:Linux Virtual Server,负载调度器
针对Linux内核的负载均衡解决方案
1998年5月,由我国的章文嵩博士创建
官方网站:http://www.linuxvirtualserver.org/

2.2 LVS工作原理

VS根据请求报文的目标 IP 和目标协议及端口将其调度转发至某 RS,根据调度算法来挑选 RS。LVS 是内核级功能,工作在 INPUT 链的位置,将发往 INPUT 的流量进行“处理”

2.3 LVS 功能及组织架构

负载均衡的应用场景为高访问量的业务,提高应用程序的可用性和可靠性。

2.4 LVS集群类型中的术语

1.VS:Virtual Server,Director Server(DS), Dispatcher(调度器),Load Balancer(lvs服务器)

2.RS:Real Server(lvs), upstream server(nginx), backend server(haproxy)(真实服务器)

3.CIP:Client IP(客户机IP)

4.VIP:Virtual serve IP (VS外网的IP)

5.DIP:Director IP (VS内网的IP)

6.RIP:Real server IP (真实IP)

三、LVS工作模式和相关命令

3.1 LVS集群的工作模式

负载均衡群集是目前企业用的最多的群集类型。

群集的负载调度有三种工作模式:1.lvs-nat:地址转换(NAT)2.lvs-dr: 直接路由(DR)3.lvs-tun:IP隧道

LVS的NAT模式

1.类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口。

2.服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式。

3.直接路由

4.采用半开放式网络结构,与TUN模式结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。

5.负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。

IP隧道
IP Tunnel,加成TUN模式
采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器。特点是节点可以分散在各地

LVS工作模式总结和比较:
NAT和DR都会将调度器作为客户机访问入口,但是NAT模式进行回应客户机请求时候的出口,也是调度器作为出口。而DR则不经过调度器,直接回应客户机。

NAT的安全性也要比DR高,因为NAT会进行一次SNAT转换,而DR是直接回应客户机,服务器地址直接暴露给客户端,所以安全性低一点

四、ipvsadm 工具

ipvsadm 功能 与 选项

 -A :     添加虚拟服务器-D :     删除整个虚拟服务器-s :     指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)> -a :     表示添加真实服务器(节点服务器)-d :     删除某一个节点-t :     指定 VIP地址及 TCP端口-r :     指定 RIP地址及 TCP端口-m :     表示使用 NAT群集模式-g :     表示使用 DR模式-i :     表示使用 TUN模式-w :     设置权重(权重为 0 时表示暂停节点)-p  60 : 表示保持长连接60秒-l :     列表查看 LVS 虚拟服务器(默认为查看所有)-n :     以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -ln

五、NAT模式 LVS负载均衡部署

负载调度器:配置双网卡 内网:192.168.24.10(ens33) 外网卡:12.0.0.1(ens37)(Vmnet1)

二台WEB服务器集群池:192.168.24.20、192.168.24.30

一台NFS共享服务器:192.168.24.40

客户端:(win10):12.0.0.100 (Vmnet1)

5.1 部署共享存储

(NFS服务器:192.168.24.40)

1.NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。对于大多数负载均衡 群集来说,使用 NFS 协议来共享数据存储是比较常见的做法,NFS 也是 NAS 存储设备必然支 持的一种协议。

2.NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,以完成远程 到本地的映射过程。在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持

1. #关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 02. #安装nfs服务
yum install nfs-utils rpcbind -y3. #新建目录,并创建站点文件
cd /opt/
mkdir kk ka
echo "this is kk kk " > kk/index.html
echo "this is ka ka" > ka/index.html4. #开启服务
systemctl start rpcbind
systemctl start nfs5. #授权
chmod 777 kk/ ka/6. #设置共享策略
vim /etc/exports
/opt/yxp 192.168.24.0/24(rw,sync)
/opt/dhc 192.168.24.0/24(rw,sync)7. #发布服务
systemctl restart nfs
exportfs -rv




5.2 节点Web服务器

第一台(192.168.24.20)

1. #关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 02. #安装httpd
yum install -y httpd3. #查看nfs服务
showmount -e 192.168.24.404. #挂载站点
#法一:临时挂载
mount 192.168.24.40:/opt/ka /var/www/html/
df  -Th
cat /var/www/html/index.html#法二:永久挂载
vim /etc/fstab
192.168.24.40:/opt/ka/  /var/www/html/        nfs     defaults,_netdev 0 0
mount -a5. #开启httpd服务
systemctl start httpd6. #指定网关
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.24.10
#DNS1=8.8.8.87. #重启网络服务
systemctl restart network





第二台(192.168.24.30)

1. #关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 02. #安装httpd
yum install -y httpd3. #查看nfs服务
showmount -e 192.168.24.404. #挂载站点
#法一:临时挂载
mount 192.168.24.40:/opt/kk /var/www/html/
df  -Th
cat /var/www/html/index.html#法二:永久挂载
vim /etc/fstab
192.168.24.40:/opt/kk/  /var/www/html/        nfs     defaults,_netdev 0 0
mount -a5. #开启httpd服务
systemctl start httpd6. #指定网关
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.24.10
#DNS1=8.8.8.87. #重启网络服务
systemctl restart network



5.3 负载调度器

内网:192.168.24.10(ens33) 外网卡:12.0.0.1(ens37)

1. #关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 02. #安装ipvsadm
yum install -y ipvsadm3. #添加一块网卡,ens37,配置网卡,重启网络
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens37
vim ifcfg-ens37
去掉网关、UUID、修改IP
systemctl restart network4. #打开路由转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p5. #防火墙做策略
#查看策略
iptables -nL -t nat
#清空策略
iptables -F
#添加策略
iptables -t nat -A POSTROUTING -s 192.168.24.0/24 -o ens37 -j SNAT --to 12.0.0.1
#查看策略
iptables -nL -t nat6. #加载LVS内核模块
modprobe ip_vs
cat /proc/net/ip_vs7. #开启ipvsadm服务
ipvsadm-save >/etc/sysconfig/ipvsadm
systemctl start ipvsadm.service8. #清空策略
ipvsadm -C9. #制定策略
#指定IP地址 外网的入口  -s rr  轮询
ipvsadm -A -t 12.0.0.1:80 -s rr
#先指定虚拟服务器再添加真实服务器地址,-r:真实服务器地址 -m指定nat模式
ipvsadm -a -t 12.0.0.1:80 -r 192.168.24.20:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.24.30:80 -m
#开启服务
ipvsadm10. 查看策略
ipvsadm -ln








5.4 Windows客户机

修改网络 12.0.0.100


总结

理解负载均衡集群的原理
掌握LVS-NAT的部署

LVS负载均衡群集—NAT模式实例相关推荐

  1. LVS负载均衡群集——NAT模式实例

    目录 一:企业群集应用概述 1.1群集的含义 1.2群集存在的必要 1.3解决的方法 二:企业群集的分类 2.1负载均衡群集(Load Balance Cluster) 2.2高可用群集(High A ...

  2. LVS 负载均衡群集----NAT模式

    目录 一.企业群集应用概述 1.1 群集的含义 1.2 问题 1.3 解决办法 1.4 系统性能扩展方式 二.企业群集分类 2.1  负载均衡群集 2.2  高可用群集 2.3  高性能运算群集 三. ...

  3. LVS负载均衡群集 --NAT模式实战部署(图文详解)

    目录 一.群集应用概述 1.1 群集的含义 1.2 应用场景出现高并发的解决方案 1.3 系统性能扩展方式 1.4 群集的三种分类 1.4.1 负载均衡群集 1.4.2 高可用群集 1.4.3 高性能 ...

  4. LVS负载均衡之NAT模式

    LVS负载均衡之NAT模式 重点理解NAT方式的实现原理和数据包的改变. (a). 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链. 此时报文的 ...

  5. LVS负载均衡群集——NAT地址转换

    目录 一.集群与分布式 1.1 集群的含义 1.2 LVS模型 1.3系统性能扩展方式 1.4 群集的三种类型 1.4.1. 负载均衡群集 1.4.2.高可用群集 1.4.3.高性能运算群集 1.5分 ...

  6. LVS负载均衡和nat模式的实操

    LVS理论和实操 一.企业群集应用概述 1.群集的含义 2.问题 3.解决方法 总结: 二.集群的分类 三.负载均衡群集架构 四.LVS负载均衡群集工作模式分析 1.负载均衡群集是目前企业用得最多的群 ...

  7. Lvs 负载均衡之nat模式配置

    2019独角兽企业重金招聘Python工程师标准>>> Lvs nat模式全称是Virtual Server via Network Address Translation(VS/N ...

  8. LVS负载均衡群集概念

    LVS负载均衡群集概念 一.群集的含义 1.1 群集的产生 1.2 群集构成方案 二.群集可分为三种 三.负载均衡群集架构 四.负载均衡群集工作模式分析 五.三种负载调度工作模式 5.1 NAT模式 ...

  9. LVS负载均衡群集之构建NAT模式

    一.案例概述 LVS负载均衡模式-NAT模式:NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网方式(源地址NAT).如果把NAT的过程稍微变化,就可以 成为负载 ...

最新文章

  1. Zabbix使用JMX监控tomcat
  2. python 数据分析学什么-python数据分析学什么?python数据分析入门
  3. 关于催收那些事儿(下)
  4. ERP、CRM、SCM三大系统整合是发展的必然趋势
  5. c++随机打乱数组_第四天 Java 数组与排序
  6. CoreData之增删改查
  7. ppt字体颜色如何修改
  8. 解决ThinkServer TS250中网卡在centos6.5中没有安装驱动
  9. 手工卸载各版本金蝶K/3客户端的方法
  10. 传输栅输入端异常导通
  11. sqli-labs 前五关
  12. Snaker-flow介绍
  13. word撰写格式系列2
  14. C# 同间字查询 (汉字转拼音 拼音转汉字 简体繁体互转 )
  15. 7-6 打妖怪 (10 分)
  16. choice量化交易数据接口引发的问题
  17. k均值算法的优化目标和随机初始化
  18. 邓白氏编码申请最后提交资料格式
  19. 可以借助Studio Display 实现旧款Macbook上的“Hey Siri”功能
  20. 如何查看mysql的安装路径

热门文章

  1. 【Excel函数】隔行取数并取最大值
  2. Redis底层 知识(校招、社招必看)
  3. 三年级下册计算机课程工作计划,三年级数学下册教学工作计划
  4. 各类游戏对应的服务端架构
  5. html添加启动项,电脑BIOS启动项怎么设置?bios设置启动项图解
  6. 提高电脑运行速度--关闭电脑无用服务
  7. mac mini u盘安装系统_用u盘安装win7系统安装步骤
  8. python怎么群发邮件_python群发邮件怎么做
  9. 吐槽智能手机上那些不爽的事
  10. 【轮播图】使用bootstrap轮播插件(Carousel)