LVS负载均衡群集-NAT

一LVS群集应用基础

群集(或集群)和称呼来自于英文单词cluster,表示一群、一串的意思,用在服务器领域则表示大量服务器的集合体,以区分于单个服务器

·群集的含义

由至少包括两台节点服务器主机构成,但对外只表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机

·群集的类型

根据群集所针对的目标差异,可分为以下三种类型

负载均衡(Load Balancer)群集

以提高应用系统的响应能力,尽可能处理更多的访问请求,减少延迟为目标,获得高并发、高负载的整体性能。LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载压力

高可用(High Available)群集

以提高应用系统的可靠性,尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果。HA的工作方式包括双工、主从两种模式------双工即所有节点同时在线,主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点

高性能运算(High Performance Computer)群集

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

二负载均衡群集

·负载均衡群集的分层结构

在典型的负载均衡群集中,包括三个层次的组件,如图所示

前端至少有一个负载调度器(load balancer,或称为director),负责响应并分发来自客户机的访问请求;后端由大量真实服务器(real server)构成服务器池(server pool),提供实际的应用服务,整个群集的伸缩性通过增加、删除服务器节点来完成,而这些过程对客户机是透明的;为了保持服务的一致性,所有节点使用共享存储设备

第一层,负载调度器

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

第二层,服务器池

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

第三层,共享存储

为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的纺一性,在linux/unix环境中,共享存储可以使用NAS设备或者提供NFS共享服务的专用服务器

·负载均衡的工作模式

关于群集的负载调度技术,可以基于IP、端口、内容等进行分发,其中基于IP的负载调度是效果最高的。基于IP的负载均衡模式中,常见的有地址转换(NAT)、IP隧道(TUN)、直接路由(DR)这三种工作模式

地址转换

简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口。服务器节点使用私有IP地址。与负载调度器位于同一个物理网络,安全性要优于其他两种方式

IP隧道(IP TUNNEL)

简称TUN模式,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的INTERNET连接直接回应客户机,而不再经过负载调度器。服务器节点分散在互联网中的不同位置。具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信

直接路由(direct routing)

简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道

以上三种工作模式中,NAT方式只需要一个公网IP地址,从而成为最易用的一种负载均衡模式,安全性也比较好,许多硬件负载均衡设备就是采用这种方式,相比较而言,DR和TUN模式的负载能力更强大,适用范围更广,但节点的安全性要稍差一些

·LVS负载均衡群集

Linux virtual server:是针对LINUX内核开发的一个负载均衡项目(类似功能的项目有多重,还有第三方软件也可以实现)

1998年5月,由我国的章文嵩博士创建

LVS实际上相当于基于IP地址的虚拟化应用。LVS现在已成为LINUX内核的一部分,默认编译为ip_vs模块,必要时能够自动调用

官方网站:http://www.linuxvirtualserver.org/

·LVS的负载调度算法

针对不同的网络服务和配置需要,LVS调度器提供各种不同的负载调度算法,包括

轮询(rr)

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

加权轮询(wrr)

根据真实服务器的处理能力轮流分配收到的访问请求,调度器可以自动查询各节点的负载情况,并动态调整其权重。这样可以保证处理能力强的服务器承担更多的访问流量。

最少连接(lc)

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

加权最少连接(wlc)

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

二配置NAT模式的LVS负载群集

·准备环境(web服务器的群集)

如图所示

四台以上RHEL6主机:一台配置为负载均衡调度器、一台配置为NFS共享存储服务器、其他的作为节点主机

节点主机:作为web服务器,网关指向调度器内网卡地址

负载均衡调度器:作为网关,需要两块网卡;在给RHEL6添加新的网卡后,使用setup配置网卡地址时,发现只有eth0,没有eth1,并且没有它的配置文件,这时需要做一下操作

1复制ifcfg-eth0文件

2复制网卡2的MAC地址

3修改ifcfg-eth1,将其MAC地址替换为复制的MAC

节点主机:网关指向调度器内网卡地址

·配置负载调度器

1加载ip_vs内核模块

设置开机自动加载

2安装ipvsadm管理工具

ipvsadm是在负载调度器上使用的LVS群集管理工具,通过调用ip_vs模块来添加、删除服务器节点,以及查看群集的运行状态。在RHEL6系统中,要手动安装ipvsadm-1.25-9软件包

LVS群集的管理工作主要包括:创建虚拟服务器、添加服务器节点、查看群集节点状态、删除服务器节点、保存负载分配策略等

3配置SNAT转发策略

使用iptables为出站响应配置SNAT转发规则,以便节点服务器能够访问internet

修改sysctl.conf文件,开启路由转发功能并使修改生效

在nat表的postrouting规则链上创建SNAT策略

创建允许http数据流的规则(因为本文是以http服务器群集为例)

4配置负载分配策略

在NAT模式的群集中,其外网地址同时也作为整个群集的VIP地址;

创建虚拟服务器和添加服务器节点

其中

ipvsadm –C :清除ipvsadm原有的策略或service ipvsadm stop也可以清除策略

第2条命令:创建虚拟服务器,针对TCP的80端口提供负载分流服务,使用的调度算法为轮询; 选项-A表示添加虚拟服务器,-t用来指定VIP地址及TCP端口,-s用来指定负载调度算法:轮询(rr)、加权轮询(wrr),最少连接(lc)、加权最少连接(wlc)

第3、4条命令:添加服务器节点,为虚拟服务器添加两个服务器节点(实际中可自行添加);选项-a:表示添加真实服务器;-t用来指定VIP地址及TCP端口,-r用来指定RIP地址及TCP端口,-m表示使用NAT群集模式(-g: DR模式、-i:TUN模式),-w用来设置权重(权重为0时表示暂停节点)

第5条命令:保存策略,要停止selinux,否则策略不会被保存;也可以使用ipvsadm-save >/etc/sysconfig/ipvsadm保存策略(start表示重建规则)

第6条命令:设置ipvsadm服务为自动启动

ipvsadm其他命令

查看节点状态

Forward列下的Masq对应masquerade(地址伪装),表示采用的群集模式为NAT,如果是Route,则表示采用的群集模式为DR

查看负载情况

删除服务器节点

ipvsadm –d –r 192.168.1.10:80 –t 1.1.1.1:80

确认保存结果

·配置共享存储服务器

这里使用NFS发布共享服务;NFS(Network File System)是一种基于TCP/IP传输的网络文件系统协议;通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源;NFS服务的实现依赖于RPC(远端过程调用)机制,以完成远程到本地的映射过程

需安装nfs-utils、rpcbind软件包,RHEL6中默认已安装(如果没有安装请先安装)

1设置共享目录

NFS的配置文件为/etc/exports,文件内容默认为空;添加如下内容(创建需要共享的文件夹)

其中

/opt/www是要共享的文件目录;客户机地址可以是主机名、IP地址、网段地址,允许使用*或?通配符;权限选项中的rw表示允许读写(ro为只读),sync表示同步写入,no_root_squash表示当客户机以root身份访问时赋予本地root权限(默认是root_squash,将作为nfsnobody用户降权对侍

2启动相关服务

先启动rpcbind服务,再启动nfs服务;注意:rhel5系统中RPC服务脚本是portmap

3设置开机自启动和设置防火墙规则

因为NFS服务的默认端口是不固定的,可以设置为固定,这里清空防火墙规则

设置完毕可以查看一下本机的共享信息

·配置节点服务器

所有的节点服务器均使用相同的配置,包括httpd服务端口、网站文档内容;各节点的网站文档可存放在共享存储设备中,从而免去同步的过程

1搭建httpd服务

RHEL6中默认已安装,如果为安装,请自行安装

2创建测试站点

这里的测试站点位于共享目录中,因此需要先连接共享存储设备;客户机也必须支持RPC,需要启动rpcbind服务

查看并挂载连接共享目录

创建测试网页

此网页实际是创建到了共享存储服务器中

3启动httpd服务并设置开机自动挂载

4配置防火墙规则

要在防火墙上创建允许http数据流的规则

其他服务器节点同样的操作配置

·测试LVS群集

安排多台测试机,直接访问http://1.1.1.1,将能够看到由真实服务器提供的网面内容

这时在查看当前负载分配情况,对于轮询算法来说,每个节点所获得的连接负载应大致相当

转载于:https://blog.51cto.com/itit0/1334712

10 LVS负载均衡群集-NAT相关推荐

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

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

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

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

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

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

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

    文章目录 前言 一.群集与分布式 1.1 群集的含义 1.2 系统性能扩展方式 1.3 群集的三种类型 1.4 LVS的负载调度算法 1.5 分布式系统 1.6 集群和分布式 1.7 负载均衡群集架构 ...

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

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

  6. LVS负载均衡群集概念

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

  7. LVS负载均衡群集部署之——NAT模式的介绍及搭建步骤

    文章目录 一.企业群集应用概述 1.1 群集的三种类型 1 负载均衡群集 2 高可用群集 3 高性能运算群集 1.2 负载均衡结构 1.3 负载均衡群集工作模式 (1) NAT模式--地址转换 (2) ...

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

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

  9. LVS负载均衡群集之构建NAT模式,可跟做!!!

    有关于LVS负载均衡群集的相关概念可以参考博文:LVS负载均衡群集详解 一.案例概述 LVS负载均衡模式-NAT模式:NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一 ...

  10. LVS负载均衡群集概念、NAT模式LVS负载均衡实战部署

    目录 引言: 一.群集的含义 1.1 群集存在的必要 1.2 解决方法 二.群集的种类 2.1 负载均衡群集(Load Balance Cluster) 2.2 高可用群集 (High Availab ...

最新文章

  1. CVPR 2017 全部及部分论文解读集锦
  2. python怎么读取txt文件内容然后保存到excel-Python实现读取txt文件并转换为excel的方法示例...
  3. 配置CITRIX XML 服务与IIS 7.x共享端口
  4. Linux中断子系统之Workqueue
  5. java static 修饰变量吗_Java面试 - static 修饰的变量和方法有哪些特点?
  6. C#可逆加密-Rijndael算法
  7. ProcessOnLoading
  8. OpenCV-双边滤波cv::bilateralFilter
  9. python模拟微信投票_python 模拟微信投票
  10. IAR8.4.2安装方法
  11. python运行代码无反应_linux执行python命令后没有反应,不打印日志信息
  12. .Net程序员飞扬有用的85个工具
  13. 一个程序员失败的爱情
  14. 论NOIP2015我是如何滚粗的
  15. ie css 图片边框颜色,CSS-在Chrome / IE9中删除图片边框
  16. Apple三里屯景泰蓝壁纸(mac版)
  17. 使用Python遍历文件夹下文件寻找关键词
  18. 炼石喜获“2020中国网络安全产业联盟突出贡献单位奖”
  19. OTA前装搭载率逼近50%,哪些供应商正在领跑细分赛道
  20. java对比俩个word文件内容差异

热门文章

  1. 【LeetCode】【字符串】题号:*657. 机器人能否返回原点
  2. 从零基础入门Tensorflow2.0 ----六、32cifar10数据训练
  3. SaveRasterFile failed: IDLnaMetadata Error:naGetMetadata-GetMetadataJob failed
  4. 《剑指offer》面试题21——包含min函数的栈(C++)
  5. Java环境安装及环境变量的配置
  6. SuperMap iClient3D for WebGL 示范案例(一)倾斜模型加载
  7. 一、坐标系之WGS84坐标系与WGS84 Web Mercator
  8. centos服务器安装python3,CentOS7 服务器上如何安装python3
  9. Doc2EDAG: An End-to-End Document-level Framework for Chinese Financial Event Extraction
  10. vue前台导出zip文件_在vue.js中使用JSZip实现在前端解压文件的方法