20.LVS负载均衡群集—NAT模式实例
LVS负载均衡群集—NAT模式实例
目录
- LVS负载均衡群集—NAT模式实例
群集引用概述
群集的含义
- Cluster,集群、群集
- 由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。
问题
- 互联网应用中,随着站点对硬件性能、影响速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足负载均衡及高可用的要求
解决方法
- 使用价格昂贵的小型机、大型机
- 使用多台相对廉价的普通服务器构建集群
通过整合多台服务器,使用lvs来达到服务器的高可用和负载均衡,并以同一个IP地址对外提供相对的服务。
企业群集分类
群集的三种类型
- 负载均衡群集
- 高可用群集
- 高性能运算群集
负载均衡群集(Load Balance Cluster)
- 提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能
- LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载压力。例如,“DNS轮询”“反向代理”等
高可用群集(High Availability Cluster)
- 提高应用系统的可靠性、尽可能的减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果
- HA的工作方式包括双工和主从两种模式,双工及所有节点同时在线;主从则只有主节点在线,当出现故障时从节点能自动切换为主节点。例如故障切换、双机热备等。
高性能运算群集(High Performance Computer Cluster)
- 以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力
- 高性能依赖于“分布式运算”、“合并计算”,通过装用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算机能力。例如,“云计算” “网格计算”等
负载均衡集群架构
第一层负载调度器(Load Balancer或Director)
访问整个集群系统的唯一入口,对外使用所有服务器共有的VIP地址,也成为群集IP地址。通常会配置主,备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用。
第二层服务器池(Srver Pool)
集群所提供的应用服务、由服务池承担,其中每个节点具有独立的RIP地址(真实IP),只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负责调度器的容错机制会将其隔离,等待错误排除以后在重新纳入服务器池。
第三层共享储存(Share Storage)
为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性。共享储存可以使用NAS设备,或者提供NFS共享服务的专用服务器。
负载均衡的结构
集群负载调度技术的三种工作模式
NAT模式
地址转换
- Network Address Translation,简称NAT模式
- 类似于防火墙的私有网络结构,负责调度器作为所有服务器节点的网关,及作为客户机的访问入口也是个节点回应客户机的访问出口,也就是说这个负载调度器会承受双倍的负载压力也是NAT模式最大的缺陷
- 服务器节点使用私有IP地址转换,与负载调度器位于同一个物理网络,安全性要优于其他两种模式
TUN模式
IP隧道
- IP Tunnel ,简称TUP模式
- 采用开放式的网络结构,负载调度器仅作为客户机的访问入口个节点通过internet连接直接回应客户机,而不经过负载调度器
- 服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信
DR模式
直接路由
- Direct Routing,简称DR模式
- 采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于一个物理网络
- 负载调度器与各节点服务器通过本地网络连接,不需要建立专业的IP隧道
LVS虚拟服务器
Linux Virtual Server
- 针对linux内核开发的负载均衡解决方案
- 1998年5月,由我国章文嵩博士创建
- 官方网站:http://www.linuxvirtualserver.org/
- LVS 实际上相当于基于IP地址的虚拟化应用,为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决方法
LVS现在已经成为linux内核的一部分,默认编译为ip_vs模块,必要时能够自动调用。在centos7系统中,以下操作可以手动加载ip_vs模块,并查看当前系统中的ip_vs模块版本信息。
modprobe ip_vs #加载 ip_vs模块
cat /proc/net/ip_vs #查看 ip_vs版本信息
lvs的负载调度算法
轮询(Round Robin)
- 将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均等地对待每一台服务器,而不管服务器实际的连接数和系统负载
加权轮询(Weighted Round Robin)
- 根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多
- 保证性能强的服务器承担更多的访问流量
最少连接(Least Connections)
- 根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点
加权最少连接(Weighted Least Connections)
- 在服务器节点的性能差异较大时,可以为真实服务器自动调整权重
- 性能较高的节点将承担更大比例的活动连接负载
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 | 以数字形式显示地址、端口等信息,常与"-"选项组合使用。ipvsadm -ln |
NAT模式 LVS负载均衡部署
环境配置
负载调度器:配置双网卡 内网:192.168.239.10(ens33) 外网卡:12.0.0.1(ens38)
二台WEB服务器集群池:192.168.239.20、192.168.239.30
一台NFS共享服务器:192.168.239.40
客户机windows :12.0.0.200
部署NFS共享服务器(192.168.239.40)
#关闭防火墙关闭开机自启
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
#创建两个共享目录文件便于区分并添加权限
cd /opt
mkdir nfs
cd nfs/
mkdir geng wang
chmod 777 geng/ wang/
echo "this is geng test">geng/index.html
echo "this is wang test">wang/index.html
#设置共享策略
vim /etc/exports
/opt/nfs/geng 192.168.239.0/24(rw,sync,no_root_squash)
/opt/nfs/wang 192.168.239.0/24(rw,sync,no_root_squash)
#开启服务
systemctl start rpcbind
systemctl start nfs
systemctl enable nfs
#查看共享目录
showmount -e
测试WEB服务器集群池搜索共享目录
部署两台节点web服务器(192.168.239.20、192.168.239.30 )
第一台部署(192.168.239.20)
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#安装apache web服务
yum install -y httpd
#将共享目录挂载到apache服务站点目录
mount 192.168.239.40:/opt/nfs/geng /var/www/html/
#重启服务
systemctl restart httpd
systemctl enable httpd
#修改网卡配置文件将网关地址指向负载调度器并重启网卡服务
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.239.10
systemctl restart network
第二台部署(192.168.239.20)
与第一台一致挂载文件不同
mount 192.168.239.40:/opt/nfs/wang /var/www/html/
负载调度器配置
#添加一块网卡
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
ifconfig #可以查看到以添加的网卡记住名字
cd /etc/sysconfig/network-scripts #切换到网卡配置文件目录
cp ifcfg-ens33 ifcfg-ens37 #复制已有的网卡配置文件进行修改
vim ifcfg-ens37 #删除uuid行修改以下几行NAME=ens37
DEVICE=ens37
IPADDR=12.0.0.1
#GATEWAY=192.168.239.2
#DNS1=8.8.8.8
systemctl restart network #重启网卡服务
vim /etc/sysctl.conf #编辑配置文件开启路由转发功能
net.ipv4.ip_forward = 1
sysctl -p #加载一下
#清空原有防火墙规则添加新的规则
iptables -F
iptables -F -t nat
iptables -t nat -A POSTROUTING -s 192.168.239.0/24 -o ens37 -j SNAT --to 12.0.0.1
iptables -nL -t nat #查看指定表规则
yum install -y ipvsadm #安装ipvsadm
#开启ipvsadm服务
ipvsadm-save >/etc/sysconfig/ipvsadm
systemctl restart ipvsadm.service
systemctl enable ipvsadm.service
#加载模块
modprobe ip_vs
cat /proc/net/ip_vs
ipvsadm -C #清空策略
#指定此策略
ipvsadm -A -t 12.0.0.1:80 -s rr #添加虚拟服务器指定vip地址指定调度策略为轮询
ipvsadm -a -t 12.0.0.1:80 -r 192.168.239.20:80 -m #添加节点服务器及IP地址指定模式lvs
ipvsadm -a -t 12.0.0.1:80 -r 192.168.239.30:80 -m
ipvsadm #加载
ipvsadm -ln #查看状态
客户机配置
修改ip
测试
过会再次刷新
20.LVS负载均衡群集—NAT模式实例的更多相关文章
- LVS负载均衡之NAT模式部署
1.LVS的NAT模式介绍 参考自官网:http://www.linuxvirtualserver.org/zh/lvs3.html 由于IPv4中IP地址空间的日益紧张和安全方面的原因,很多网络使用 ...
- LVS负载均衡群集(NAT)
----构建NAT模式的LVS群集----------client---------------LVS----------------WEB1-----------WEB2------------NF ...
- LVS负载均衡群集部署——NAT模式
LVS负载均衡群集部署--NAT模式 1.群集应用概述 2.NAT模式LVS负载均衡群集部署 1.群集应用概述: 存在的问题: 互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等要求 ...
- NAT模式 LVS负载均衡群集部署
NAT模式 LVS负载均衡群集部署的操作步骤 实验环境准备: 负载调度器:内网关 ens33:172.16.10.1,外网关 ens37:12.0.0.1 Web节点服务器1:172.16.10.10 ...
- LVS负载均衡群集部署——DR模式
LVS负载均衡群集部署--DR模式 1.LVS-DR概述 2.部署实验 1.LVS-DR概述: LVS-DR(Linux Virtual Server Director Server)工作模式,是生产 ...
- 21.LVS负载均衡群集-DR群集
LVS负载均衡群集-DR群集 目录 LVS负载均衡群集-DR群集 数据包流向分析 DR模式的特点 LVS-DR中的ARP问题 IP地址冲突 解决办法 路由根据ARP表项,会将新来的请求报文转发给Rea ...
- LVS负载均衡之DR模式原理介绍
LVS基本原理 流程解释: 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 PREROUTING 链首先会接收到用户请求,判断目标 IP 确定是本机 IP ...
- LVS负载均衡群集
概述 群集的类型:无论是哪种服务器,都至少包括两台节点服务器,而对外表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机.根据群集所针对的目标差异,可以分为以下三个类型: 1.负 ...
- LVS集群之NAT模式实例(3)
LVS集群NAT模式实例 1. 实验拓扑图 DS 必须有两块网卡,需要在上面做NAT. 2. 实验环境 3台CentOS6.4 64bit的服务器. 类型 IP DR eth0:10.20.73.20 ...
随机推荐
- Struts2-Action的基本流程
1.浏览器发送HTTP请求 2.Web容器调用Struts2过滤器的doFilter()方法 3.通过Struts2的内部处理机制,判断HTTP请求是否与某个Action对象匹配 4.如果有与之匹配的 ...
- C++五子棋(四)——走棋原理及权值计算
原理 计算 计算每个落子点的**"权值"**,找到权值最大的落子点 对于每个空白点,分别计算周围的八个方向 不妨以该空白点作为参照原点,以水平向右作为X轴正方向,以竖直向下为Y轴正 ...
- perf性能分析工具使用分享
@ 目录 前言 perf的介绍和安装 perf基本使用 perf list使用,可以列出所有的采样事件 perf stat 概览程序的运行情况 perf top实时显示当前系统的性能统计信息 perf ...
- vite初使用随记
vite的安装 按照官网文档来看,并不难. 先检查自己电脑node的版本与npm的版本/yarn的版本 可以直接用yarn安装,yarn create vite 这是最原始的安装,即类似于安装vue- ...
- Glade To Code 介绍
Glade To Code 简介 根据 Glade 文件生成指定语言的 GTK 代码的工具 使用说明 python3 glade-to-code.py -l [语言类型] -i [输入 Glade 文 ...
- Linux用命令设置终端背景色和字体颜色
用命令改 1.setterm -inversecreen on 背景字体颜色互换 2.setterm -inversecreen on 恢复默认 3.setterm -[选项] [参数] |-back ...
- Navicat导出结果显示科学计数法(PostgreSQL)
原因:在EXCEL录入数超过11位,就会变成科学记数法 解决方案: 在postgresql需要导出的列中加入制表符 示例: SELECT 6280920221390000000061:: TEXT | ...
- 技术分享 | SeleniumIDE用例录制
1.录制回放方式的稳定性和可靠性有限 2.只支持 Firefox.Chrome 3.对于复杂的页面逻辑其处理能力有限 环境准备 Chrome 插件:https://chrome.google.com/ ...
- XCTF练习题---MISC---快乐游戏题
XCTF练习题---MISC---快乐游戏题 flag:UNCTF{c783910550de39816d1de0f103b0ae32} 解题步骤: 1.观察题目,下载附件 2.还真是一个游戏,赢了就得 ...
- vue package.json 详解
示例: { "name": "scrm", "version": "0.1.0", "private" ...