一、LVS简介及工作模式
1. LVS简介
Linux Virtual Server,该软件的功能是实现LB(load balance)
2.LVS的三种工作模式
1)NAT模式(NAT)
LVS 服务器同时充当一台NAT 网关,拥有公有IP ,同时负责将针对此公共IP的请求依据算法将请求转发给LAN 中的某台真实服务器(node) ,node 处理完成请求后将结果返回至LVS Server(调度器), 在由LVS Server 将结果返回给用户。可以将内部网络隐藏 (VIP虚拟IP,RIP真实IP),适用于小规模(10~20台之间)、访问量较小的网络集群。
2)IP隧道模式(TUN)
可以实现让集群中的节点处于不同网络段
3)直连路由模式(DR)
当参与集群的计算机和作为控制管理的计算机在同一个网段时可以使用此种方法。
控制管理的计算机接收到请求包时直接送到参与集群的node 上。当node 处理完请求后将直接把结果返还至用户而不通过LVS Server 返还。
DR的优势在于速度快、开销少。
二、三种工作模式的使用范围
NAT 方式适用于在同一个LAN中实现小型LB
TUN 方式适用于node部分在Internet上
DR 方式使用与在同一个LAN中实现较为大型LB
三、LVS的调度算法
1. 算法
 将客户端的请求按照不同的算法转发给web服务器
2.算法的种类
1)rr:轮询 rr 算法就是将外部请求顺序轮流分配到集群中的node 上,但不考虑每台node 的负载情况。
2)wrr:加权轮询 wrr 算法在rr 算法的基础上会考察每台node的负载情况,并尝试让负较轻的node 承担更多请求。
3)lc:最少连接 算法可以让LVS 尝试把新的请求交给当前连接数最少的node ,直到此node 连接数不再属于最少标准
4)wlc:加权最少连接 wlc 算法也由权重的干预。LVS 会根据每台node的权重并综合连接数控制转发行为
5)lblc:局部最少连接 算法会加上针对源请求IP地址的路由估算,并尝试把请求发送到与源请求IP路由最近的node 上。此种方法一般用于远程或者是大规模的集群组
6)lblcr:带有复制的局部最少连接算法 lblcr 算法是在lblc 算法的基础上增加了一个node 列表,先依据lblc 算法计算出与源请求IP地址最近的一组node ,然后在决定把请求发送到最近一组中的最近的一台node 。若此node没有超载则将请求转发给这台node, 如果超载则依据”最少连接”原则找到最少连接的node 并将此node 加入集群组中。并将请求转给此node
7)dh:目标地址散列算法 相当于随机
8)sh:原地址散列算法 相当于随机
四、ipvsadm语法规则
注:需安装lvs软件:yum install ipvsadm -y
1.ipvsadm -C:清空kernel中的lvs列表(清空虚拟主机及转发记录)
ipvsadm -A (增加一条虚拟主机记录)-t (协议tcp)虚拟主机IP:80  -s 算法 :声明一个虚拟主机
ipvsadm -a(增加一条转发记录) -t(协议tcp) 虚拟主机IP:80  -r 接受连接的真实服务器IP:80  lvs的模式 -w 权重值
2.三种模式
-i     TUN模式
-g     DR模式
-m    NAT模式
五、Linux下LBC的实现
1.LVS集群实现NAT方式
注:一般将lvs-server 称为Director Server(前端调度器),一般将node称为real-server(真实服务)
在lvs-server上安装软件:yum install ipvsadm -y
2)在server1,server2上安装apache服务器:yum install httpd -y
echo "web1-test" > /var/www/html/index.html
echo "web2-test" > /var/www/html/index.html
chmod 705 /var/www/html/index.html
systemctl restart httpd
3)在lvs-server上编辑lvs的DR的集群配置
vim lvs-dr.sh
#!/bin/bash
VIP=192.168.0.254
RIP1=192.168.0.3
RIP2=192.168.0.4
ipvsadm -C
ifconfig eno33554960:0 $VIP broadcast $VIP netmask 255.255.255.255 up
route add -host $VIP dev eno33554960:0
ipvsadm -A -t $VIP:80 -s wlc
ipvsadm -a -t $VIP:80 -r $RIP1:80 -g -w 1
ipvsadm -a -t $VIP:80 -r $RIP2:80 -g -w 1
 
 
 
 
 
编辑完脚本后运行:bash lvs-tun.sh
4)在server1和server2上编辑web.sh脚本
#!/bin/bash
VIP=192.168.0.254
/sbin/ifconfig tunl0 down
/sbin/ifconfig tunl0 up
echo 1 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/tunl0/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
/sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev tunl0
 编辑完脚本后运行:bash web.sh
 5)在客户端测试:elinks http://192.168.0.254
 
 
 
 
 

负载均衡集群(LBC)的更多相关文章

  1. nginx负载均衡集群

    nginx负载均衡集群  0.前言:nginx 负载均衡,属于网络7层模型中的应用层,说白了就是一个代理,要用 upstrem 模块实现,代理则用proxy模块 1.可以针对域名做转发,lvs只能针对 ...

  2. LVS+Keepalived搭建MyCAT高可用负载均衡集群

    LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...

  3. LB(Load balance)负载均衡集群--{LVS-[NAT+DR]单实例实验+LVS+keeplived实验} 菜鸟入门级

    LB(Load balance)负载均衡集群 LVS-[NAT+DR]单实例实验 LVS+keeplived实验 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一 ...

  4. 测试LVS+Keepalived高可用负载均衡集群

    测试LVS+Keepalived高可用负载均衡集群 1. 启动LVS高可用集群服务 此时查看Keepalived服务的系统日志信息如下: [root@localhost ~]# tail -f /va ...

  5. 通过LVS+Keepalived搭建高可用的负载均衡集群系统

    1. 安装LVS软件      (1)安装前准备操作系统:统一采用Centos6.5版本,地址规划如下: 服务器名 IP地址 网关 虚拟设备名 虚拟ip Director Server 192.168 ...

  6. windows配置nginx实现负载均衡集群

    windows配置nginx实现负载均衡集群2014-08-20 09:44:40   来源:www.abcde.cn   评论:0 点击:617 网上大部分关于nginx负载均衡集群的教程都是lin ...

  7. Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载

    转载地址:http://blog.163.com/chenhui_java/blog/static/17267249420128101191860/ 注: 由于长期受转载毒害,所以本人日志均是原创:其 ...

  8. LVS负载均衡集群服务搭建详解(二)

    lvs-nat模型构建 1.lvs-nat模型示意图 本次构建的lvs-nat模型的示意图如下,其中所有的服务器和测试客户端均使用VMware虚拟机模拟,所使用的CentOS 7 VS内核都支持ipv ...

  9. LVS负载均衡集群服务搭建详解(一)

    LVS概述 1.LVS:Linux Virtual Server 四层交换(路由):根据请求报文的目标IP和目标PORT将其转发至后端主机集群中的某台服务器(根据调度算法): 不能够实现应用层的负载均 ...

  10. 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群

    高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...

随机推荐

  1. qbittorrent搜索在线插件

    https://raw.githubusercontent.com/khensolomon/leyts/master/yts.py https://raw.githubusercontent.com/ ...

  2. 漏洞复现之JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)

    前言: 序列化就是把对象转换成字节流,便于保存在内存.文件.数据库中:反序列化即逆过程,由字节流还原成对象. Java中的ObjectOutputStream类的writeObject()方法可以实现 ...

  3. Deep Learning Recommendation Model for Personalization and Recommendation Systems

    这篇文章出自facebook,主要探索了如何利用类别型特征(categorical features)并且构建一个深度推荐系统.值得注意的是,文章还特别强调了工业实现上如何实现并行,也很良心地给出了基 ...

  4. 033 Android App启动的闪屏效果+新手向导(多个图片滑动效果)+ViewPager使用

    1.目标效果 App启动时,出现闪屏效果(利用动画实现). App新手使用时,会出现新手向导效果. 2.XML页面布局 (1)闪屏页面 <?xml version="1.0" ...

  5. 《Mysql - 幻读》

    一:准备 - 为了深入了解幻读,准备数据. CREATE TABLE `t` ( `id` ) NOT NULL, `c` ) DEFAULT NULL, `d` ) DEFAULT NULL, PR ...

  6. C语言的关键字和数据类型

    C语言关键字 C语言数据类型

  7. springboot整合druid、mybatis

    目的: 1.springboot配置数据库连接池druid 测试druid中url监控 2.springboot整合mybatis 测试查删案例 3.springboot整合pagehelper sp ...

  8. VS.NET(C#)--2.8HTML服务器控件

    HTML服务器控件 服务器不处理HTML控件,例如:<h1>.<a>超链接.<input>,直接送到客户端,由浏览器呈现. 把HTML控件转换成HTML服务器控件, ...

  9. android 错误解决

    转自:https://blog.csdn.net/gbstyle/article/details/82926358 错误1: com.android.ddmlib.AdbCommandRejected ...

  10. kafka的安装及使用(单节点)

    介绍了linux环境下,kafka 服务的安装与配置 安装 jdk 环境 下载 kafka 源码包放到服务器,解压 开启 zookeeper 开启 kafka server 创建主题 开启生产者 开启 ...