一、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. 对spring的简单了解

    对spring的简单了解 什么是spring Spring是一个开源框架,是为了解决企业应用开发的复杂性而创建的,同时Spring也是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架 特点 ...

  2. box-shadow 用法总结

    一.基础知识 box-shadow 属性向框添加一个或多个阴影. 语法 box-shadow: offset-x offset-y blur spread color inset; box-shado ...

  3. 人工智能对人类有哪些影响 选择Python入门怎样

    人工智能对人类有哪些影响?选择Python入门怎样?人工智能是科技时代进步的产物,也是目前人们非常关注的一个产业.那么,随着人工智能的发展,对人类生活的有哪些影响呢? 1.人工智能对文化产业影响 据了 ...

  4. Mybatis笔记1

    Mybatis 持久层框架,数据访问层 mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动,创建连接,创建sta ...

  5. C++基础(静态数据成员和静态成员函数)

    [简介] 1.静态数据成员在类中声明,在源文件中定义并初始化: 2.静态成员函数没有this指针,只能访问静态数据成员: 3.调用静态成员函数:(1)对象.(2)直接调用: 4.静态成员函数的地址可用 ...

  6. 利用Python进行数据分析 第7章 数据清洗和准备(1)

    学习时间:2019/10/25 周五晚上22点半开始. 学习目标:Page188-Page217,共30页,目标6天学完,每天5页,预期1029学完. 实际反馈:集中学习1.5小时,学习6页:集中学习 ...

  7. •C#进阶系列——WebApi接口测试工具:WebApiTestClient

    阅读目录 一.WebApiTestClient介绍 二.WebApiTestClient展示 三.WebApiTestClient使用 1.如何引入组件 2.如何使用组件 四.总结 正文 前言:这两天 ...

  8. MySQL 体系结构及存储引擎

    MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ...

  9. Spring Cloud Alibaba学习笔记(12) - 使用Spring Cloud Stream 构建消息驱动微服务

    什么是Spring Cloud Stream 一个用于构建消息驱动的微服务的框架 应用程序通过 inputs 或者 outputs 来与 Spring Cloud Stream 中binder 交互, ...

  10. java influx DB工具类

    配置 application-properties: spring.influxdb.url=${influxdb_host:127.0.0.1} spring.influxdb.port=${inf ...