概述

群集的类型:
无论是哪种服务器,都至少包括两台节点服务器,而对外表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。根据群集所针对的目标差异,可以分为以下三个类型:
  1.负载均衡(Load Balancer)群集
以提高应用系统的响应能力.尽可能处理更多的访问请求.减少延迟为目标,获得高并发,高负载(LB)的整体性能,例如"DNS轮询"、"应用层交换","反向代理"等都可用作负载均衡群集。LB的负载分配依赖干主节点的分流算法将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载压力。
  2.高可用(High Available)群集
以提高应用系统的可靠性,尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果,例如"故障切换","双机热备","多机热备"等都属于高可用群集技术。HA的工作方式包括双工,主从两种模式——双工即所有节点同时在线,主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点。
  3. 高性能运算(High Performance Computer)群集
以提高应用系统的CP运算速度,扩展硬件资源和分析能力为目标获得相当于大型,超级计算机的高性能运算(HPC)能力,例如“云计算”,“网格计算”也可视为高性能运算的一种。HPC的高性能依赖于,分布式运算”并行计算“,通过专用硬件和软件将多个服务器的CPU,内存等资源整合在一起实现只有大型,超级计算机才具备的计算能力。

负载均衡的分层结构:

  第一层,负载调度器:这是访问整个群集系统的微医入口,对外使用共有的VIP(Virtual IP,虚拟IP)地址,也称为群集IP地址;

  第二层,服务器池:群集所提供的应用服务由服务器池承担,其中的每个节点具有独立的RIP(真实IP)地址,只处理调度器分发过来的客户机请求;

  第三层,共享存储:为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性;

负载均衡的工作模:

关于群集的负载调度技术,可以基于IP端口,内容等进行分发,其中基于IP的负载调度是效率最高的。基于IP的负载均衡模式中,常见的有地址转换,IP隧道、直接路由这三种工作模式:
  1.地址转换(Netwo出AddressTranslat旧n):简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口。服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式。

  2.IP隧道(IPTunnel):简称TUN模式,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器。服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信。
  3.直接路由(DirectRout旧g);简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。

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

LVS的负载调度算法:

LVS调度器提供多种不同的负载调度算法其中最常用的四种算法包括:

  1.轮间(Round Robin):将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器)均等地对待每一台服务器,而不管服务器实际的连接数和系统负载。
  2.加权轮询(Weghted Round Robin):根据真实服务器的处理能力轮流分配收到的访问请求,调度器可以自动査询各节点的负载情况,并动态调整其权重。这样可以保证处理能力强的服务器承担更多的访问流量。
  3.最少连接(Least Connections):根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。如果所有的服务器节点性能相近,采用这种方式可以更好地均衡负载。
  4.加权最少连接(Weighted Least Connections);在服务器节点的性能差异较大的情况下,可以为真实服务器自动调整权重,权重较高的节点将承担更大比例的活动连接负载。
LVS负载均衡的使用方式灵活多变,可以应用在Web,FTP,DHCP,DNS等各种服务器中。

ipvsadm工具的使用

LVS现在已经成为Linux内核的一部分,默认编译为ip_vs模块,可使用ipvsadm工具管理LVS群集

1.加载ip_vs模块

[root@LVS ~]# modprobe ip_vs        //加载模块
[root@LVS ~]# lsmod | grep ip_vs //查看状态
ip_vs
libcrc32c ip_vs
ipv6 ip_vs,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6
2.安装ipvsadm工具
[root@LVS ~]#  rpm -ivh /mnt/Packages/ipvsadm-1.25-.el6.i686.rpm    <==rpm软件包安装方法
[root@LVS ~]# yum -y install ipvsadm <==yum安装方法
[root@LVS ~]# ipvsadm -v <==查看ipvsadm版本

3.使用

1) 创建虚拟服务器

[root@LVS ~]# ipvsadm -A -t 172.16.1.128: -s rr

参数详解:
-A  表示添加虚拟服务器
-t   用来指定VIP地址及TCP端口
-s   用来指定负载调度算法——轮询(rr),加权轮询(wrr),最少连接(lc),加权最少连接(wlc)

2)添加服务器节点

[root@LVS ~]# ipvsadm -a -t 172.16.1.128: -r 192.168.1.1: -m -w
[root@LVS ~]# ipvsadm -a -t 172.16.1.128: -r 192.168.1.2: -m -w

参数详解:
-a   表示添加真实服务器
-t    用来指定VIP地址及TCP端口
-r    用来指定RIP地址及TCP端口
-m  表示使用NAT群集模式(-g DR模式,-i TUN模式)
-W  用来设置权重(权重为0表示暂停节点)

3)查看群集节点状态

[root@LVS ~]# ipvsadm -L -n    <==查看节点状态
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.16.1.128: rr
-> 192.168.1.1: Masq
-> 192.168.1.2: Masq
#Forward 列下对应Masquerade(地址伪装),表示采用群集模式为NAT,如果是Route表示采用群集模式为DR。
[root@LVS ~]# ipvsadm -Lnc <==查看负载连接情况
IPVS connection entries
pro expire state source virtual destination
TCP : FIN_WAIT 172.16.1.33: 172.16.1.128: 192.168.1.1:
TCP : FIN_WAIT 172.16.1.33: 172.16.1.128: 192.168.1.2:

4) 删除服务器节点

[root@LVS ~]# ipvsadm -d -r 192.168.1.2: -t 172.16.1.128:

5)删除此虚拟服务器

[root@LVS ~]# ipvsadm -D -t 172.16.1.128:
-A -t 172.16.1.128: -s rr
-a -t 172.16.1.128: -r 192.168.1.1: -m -w
-a -t 172.16.1.128: -r 192.168.1.2: -m -w

6)服务管理

[root@LVS ~]# service ipvsadm stop    <==停止服务
[root@LVS ~]# service ipvsadm start <==启动服务
[root@LVS ~]# chkconfig ipvsadm on <==加入开机自启动

NAT模式的LVS群集

步骤:

1.配置IP

客户机和Web服务器需要配置网关

2.配置LVS服务器

1)开启LVS服务器的路由转发

[root@LVS ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward =
[root@LVS ~]# sysctl -p

2)给内部的Web服务器做SNAT转换

[root@LVS ~]# service iptables start
[root@LVS ~]# iptables -F -t nat
[root@LVS ~]# iptables -F -t mangle
[root@LVS ~]# iptables -F -t raw
[root@LVS ~]# iptables -F -t filter
[root@LVS ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/ -o eth0 -j SNAT --to-source 1.1.1.1
[root@LVS ~]# service iptables save

3)加载ip_vs模块,安装ipvsadm工具

[root@LVS ~]# modprobe ip_vs
[root@LVS ~]# yum -y install ipvsadm

4)配置负载分配规则

[root@LVS ~]# service ipvsadm stop        //清除原有规则
[root@LVS ~]# ipvsadm -A -t 1.1.1.1: -s rr
[root@LVS ~]# ipvsadm -a -t 1.1.1.1: -r 192.168.10.100: -m -w
[root@LVS ~]# ipvsadm -a -t 1.1.1.1: -r 192.168.10.200: -m -w
[root@LVS ~]# service ipvsadm save //保存规则
[root@LVS ~]# chkconfig --add ipvsadm

5.配置Web节点服务器(各Web服务器配置相同)

安装httpd服务,创建测试页面,并启动httpd服务

[root@Web1 ~]#echo "LVS test 1" > /var/www/html/index.html            //第一个web服务器内容
[root@Web2 ~]#echo "LVS test 2" > /var/www/html/index.html //第二个web服务器内容

6.客户验证

轮询的访问两个服务器的web站点,因为设置的首页不同,因此很容易看出效果

[root@LVS ~]# ipvsadm -Lnc
IPVS connection entries
pro expire state source virtual destination
TCP : TIME_WAIT 1.1.1.254: 1.1.1.1: 192.168.10.100:
TCP : TIME_WAIT 1.1.1.254: 1.1.1.1: 192.168.10.200:
TCP : TIME_WAIT 1.1.1.254: 1.1.1.1: 192.168.10.200:
TCP : TIME_WAIT 1.1.1.254: 1.1.1.1: 192.168.10.100:
TCP : TIME_WAIT 1.1.1.254: 1.1.1.1: 192.168.10.100:
TCP : TIME_WAIT 1.1.1.254: 1.1.1.1: 192.168.10.200:80
.....

DR模式的LVS群集

1.配置IP地址

2.配置LVS服务器(关闭防火墙)

1)配置VIP

[root@LVS ~]# cd /etc/sysconfig/network-scripts/
[root@LVS network-scripts]# cp ifcfg-eth0 ifcfg-eth0:
[root@aery network-scripts]# vim ifcfg-eth0:
#修改为:
DEVICE=eth0:
ONBOOT=yes
IPADDR=192.168.10.1
NETMASK=255.255.255.0
[root@LVS ~]# ifconfig eth0:
eth0: Link encap:Ethernet HWaddr :0C::::8F
inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU: Metric:

2)配置响应参数(关闭重定向,不进行跳转,提高相应速度)

[root@LVS ~]# vim /etc/sysctl.con
添加:
net.ipv4.conf.all.send_redirects =
net.ipv4.conf.default.send_redirects =
net.ipv4.conf.eth0.send_redirects =
[root@LVS ~]# sysctl -p

3)安装并配置ipvsadm

[root@LVS ~]# yum -y install ipvsadm
[root@LVS ~]# modprobe ip_vs
[root@LVS ~]# service ipvsadm stop
[root@LVS ~]# ipvsadm -A -t 192.168.10.1: -s rr
[root@LVS ~]# ipvsadm -a -t 192.168.10.1: -r 192.168.10.100: -g -w
[root@LVS ~]# ipvsadm -a -t 192.168.10.1: -r 192.168.10.200: -g -w
[root@LVS ~]# service ipvsadm save
[root@LVS ~]# chkconfig --add ipvsadm
[root@LVS ~]# chkconfig ipvsadm on

3.配置Web节点服务器(各Web服务器配置相同)

1)配置VIP

[root@Web ~]# cd /etc/sysconfig/network-scripts/
[root@Web network-scripts]# cp ifcfg-lo ifcfg-lo:
[root@Web network-scripts]# vim ifcfg-lo:
#修改为:
DEVICE=lo:
IPADDR=192.168.10.1 //群集地址
NETMASK=255.255.255.255 //子网掩码必须全为1
ONBOOT=yes
[root@Web network-scripts]# ifdown lo:
[root@Web network-scripts]# ifup lo:
[root@Web ~]# ifconfig lo:
lo: Link encap:Local Loopback
inet addr:192.168.10.1 Mask:255.255.255.255
UP LOOPBACK RUNNING MTU: Metric:
[root@Web network-scripts]# route add -host 192.168.10.1 dev lo: //添加VIP本地访问路由
[root@Web ~]# vim /etc/rc.local //添加到文件,开机自动执行
添加:
route add -host 192.168.10.1 dev lo: //添加VIP本地访问路由

2)调整/proc参数(使用单播访问,提高相应速度)

[root@localhost ]# vim /etc/sysctl.conf
添加:
net.ipv4.conf.all.arp_ignore =
net.ipv4.conf.all.arp_announce =
net.ipv4.conf.default.arp_ignore =
net.ipv4.conf.default.arp_announce =
net.ipv4.conf.lo.arp_ignore =
net.ipv4.conf.lo.arp_announce =
[root@localhost ]# sysctl -p

3)安装httpd服务,创建测试页面,并启动httpd服务

[root@Web1 ~]#echo "LVS test 1" > /var/www/html/index.html            //第一个web服务器内容
[root@Web2 ~]#echo "LVS test 2" > /var/www/html/index.html //第二个web服务器内容

4.客户验证

轮询的访问两个服务器的web站点,因为设置的首页不同,因此很容易看出效果

LVS负载均衡群集的更多相关文章

  1. LVS负载均衡群集部署——DR模式

    LVS负载均衡群集部署--DR模式 1.LVS-DR概述 2.部署实验 1.LVS-DR概述: LVS-DR(Linux Virtual Server Director Server)工作模式,是生产 ...

  2. LVS负载均衡群集部署——NAT模式

    LVS负载均衡群集部署--NAT模式 1.群集应用概述 2.NAT模式LVS负载均衡群集部署 1.群集应用概述: 存在的问题: 互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等要求 ...

  3. 21.LVS负载均衡群集-DR群集

    LVS负载均衡群集-DR群集 目录 LVS负载均衡群集-DR群集 数据包流向分析 DR模式的特点 LVS-DR中的ARP问题 IP地址冲突 解决办法 路由根据ARP表项,会将新来的请求报文转发给Rea ...

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

    LVS负载均衡群集-NAT模式实例 目录 LVS负载均衡群集-NAT模式实例 群集引用概述 群集的含义 问题 解决方法 企业群集分类 群集的三种类型 负载均衡群集(Load Balance Clust ...

  5. NAT模式 LVS负载均衡群集部署

    NAT模式 LVS负载均衡群集部署的操作步骤 实验环境准备: 负载调度器:内网关 ens33:172.16.10.1,外网关 ens37:12.0.0.1 Web节点服务器1:172.16.10.10 ...

  6. 搭建Lvs负载均衡群集

    一.Lvs详解 lvs内核模型 1.模型分析 用户访问的数据可以进入调度器 匹配调度器分配的虚拟IP|IP+端口(路由走向) 根据调度器的算法确定匹配的服务器 2.调度条件:基于IP.基于端口.基于内 ...

  7. LVS负载均衡群集(NAT)

    ----构建NAT模式的LVS群集----------client---------------LVS----------------WEB1-----------WEB2------------NF ...

  8. LVS负载均衡集群--DR模式部署

    目录: 一.LVS-DR数据包流向分析 二.DR 模式的特点 三.LVS-DR中的ARP问题 四.DR模式 LVS负载均衡群集部署 一.LVS-DR数据包流向分析 1.为方便进行原理分析,将clien ...

  9. LVS负载均衡集群--NAT模式部署

    目录: 一.企业群集应用概述 二.负载均衡群集架构 三.负载均衡群集工作模式分析 四.关于LVS虚拟服务器 五.NAT模式 LVS负载均衡群集部署 一.企业群集应用概述 1.群集的含义 Cluster ...

随机推荐

  1. Maven 安装和配置

    一.Maven 简介 Maven 是一个强大的Java项目构建工具,类似.NET中的NuGet ,Node.js的NPM. 正如nuget.org ,Maven有一个中央仓库 maven.org,可以 ...

  2. How to Install MemSQL

    MemSQL runs natively on 64-bit Linux operating systems. Your system hardware must have at least 4 CP ...

  3. Dockerfile centos7_php5.6.36

    Dockerfile: FROM centos:7 MAINTAINER www.ctnrs.com RUN yum install epel-release -y && \ yum ...

  4. C++常用代码优化策略

    C++代码常用的优化策略 1.不存在指向空值的引用,意味着引用比指针的效率更高,因为在使用引用之前不需要测试它的合法性:指针可以被重新赋值以指向另一个不同的对象,但是引用总是指向它初始化时指定的对象. ...

  5. pycharm异常问题之Unable to save settings: Failed to save settings. Please restart PyCharm

    pycharm异常之Unable to save settings: Failed to save settings. Please restart PyCharm 今天一不小心将电脑关了,但是关机之 ...

  6. 常用ASCII码对照表

        

  7. MySQL 通过多个示例学习索引

    最近在准备面试,关于索引这一块,发现很多以前忽略的点,这里好好整理一下 首先为什么要建立索引 一本书,有章.节.段.行这种单位. 如果现在需要找一个内容:第9章>第2节>第3段>第4 ...

  8. Java Core - 序列化和反序列化

    把对象转换为字节序列的过程称为对象的序列化 把字节序列恢复成对象的过程称为对象的反序列化 一.对象的序列化的应用: 1.把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中. 2.在网络上传送对象 ...

  9. Spring、MyBatis、Shiro、Quartz、Activiti框架

    https://www.renren.io/ 人人开源:基于Spring.MyBatis.Shiro框架,开发的一套后台脚手架框架(权限系统),极低门槛,拿来即用.支持分布式部署.Quartz分布式集 ...

  10. 【知乎】WinForm 与 WPF的区别

    你想上班 那么针对公司需求学如果只是自己写着玩 那么区分一下1.你的程序运行在 自己机器a.一个工具而已 要的是cooooooool 那么WPFb.一个工具而已 要的是useful easy 那么wi ...