负载均衡集群(LBC)
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
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:原地址散列算法 相当于随机
注:需安装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模式
1.LVS集群实现NAT方式
注:一般将lvs-server 称为Director Server(前端调度器),一般将node称为real-server(真实服务)

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

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


负载均衡集群(LBC)的更多相关文章
- nginx负载均衡集群
nginx负载均衡集群 0.前言:nginx 负载均衡,属于网络7层模型中的应用层,说白了就是一个代理,要用 upstrem 模块实现,代理则用proxy模块 1.可以针对域名做转发,lvs只能针对 ...
- LVS+Keepalived搭建MyCAT高可用负载均衡集群
LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...
- LB(Load balance)负载均衡集群--{LVS-[NAT+DR]单实例实验+LVS+keeplived实验} 菜鸟入门级
LB(Load balance)负载均衡集群 LVS-[NAT+DR]单实例实验 LVS+keeplived实验 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一 ...
- 测试LVS+Keepalived高可用负载均衡集群
测试LVS+Keepalived高可用负载均衡集群 1. 启动LVS高可用集群服务 此时查看Keepalived服务的系统日志信息如下: [root@localhost ~]# tail -f /va ...
- 通过LVS+Keepalived搭建高可用的负载均衡集群系统
1. 安装LVS软件 (1)安装前准备操作系统:统一采用Centos6.5版本,地址规划如下: 服务器名 IP地址 网关 虚拟设备名 虚拟ip Director Server 192.168 ...
- windows配置nginx实现负载均衡集群
windows配置nginx实现负载均衡集群2014-08-20 09:44:40 来源:www.abcde.cn 评论:0 点击:617 网上大部分关于nginx负载均衡集群的教程都是lin ...
- Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载
转载地址:http://blog.163.com/chenhui_java/blog/static/17267249420128101191860/ 注: 由于长期受转载毒害,所以本人日志均是原创:其 ...
- LVS负载均衡集群服务搭建详解(二)
lvs-nat模型构建 1.lvs-nat模型示意图 本次构建的lvs-nat模型的示意图如下,其中所有的服务器和测试客户端均使用VMware虚拟机模拟,所使用的CentOS 7 VS内核都支持ipv ...
- LVS负载均衡集群服务搭建详解(一)
LVS概述 1.LVS:Linux Virtual Server 四层交换(路由):根据请求报文的目标IP和目标PORT将其转发至后端主机集群中的某台服务器(根据调度算法): 不能够实现应用层的负载均 ...
- 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群
高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...
随机推荐
- 6.2.3 reginst中的yzm
@RequestMapping("/reginst/{yzm}") public Object reginst(User user,@PathVariable String yzm ...
- gensim中word2vec
from gensim.models import Word2Vec Word2Vec(self, sentences=None, size=100, alpha=0.025, window=5, m ...
- 最详细的maven教程
转载 https://blog.csdn.net/wymrdjm/article/details/78695956 所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.x ...
- 定时任务-SQL Server代理 作业
创建一个sqlserver作业 sqlserver的作业的功能更加偏向于数据库,处理数据,迁移等.当然也可以调用接口(存储过程调用接口 https://www.cnblogs.com/cynchan ...
- 剑指offer64:滑动窗口的最大值
1 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4 ...
- Django 在admin中自定义app名
前提条件,注册时是: 完整的注册,不是直接用app名进行注册 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'dj ...
- Oracle部分
做了很多年Oracle,转行到MySQL了,算是借鉴 Oracle日常维护管理指标 一. 基本硬件环境 1. 主机硬件环境 品牌 型号 数量 物理CPU核数及逻辑CPU数 内存大小 本地硬盘大小 光驱 ...
- Java内存模型学习笔记(一)—— 基础
1.并发编程模型的分类 在并发编程中,我们需要处理两个关键的问题:1.线程间如何通信,2.线程间如何同步.通信是指线程之间以何种机制来交换信息,同步是指程序用于不同线程之间操作发生相对顺序的机制. 在 ...
- 记一次关闭Hadoop时no namenode to stop异常
记一次关闭Hadoop时no namenode to stop异常 在自己的虚拟机环境上跑着hadoop集群,一直正常运行着,不用的时候直接挂起虚拟机,今天需要做些调整,但是发现集群突然无法正常关 ...
- 使用代码浏览WPF控件模版
纯代码创建,不需要创建界面,创建WPF工程后,直接复制代码就可以使用. 当你手头没有Blend,又不记得以下这段代码,但是又想浏览控件模版的时候,就可以直接复制拿来用了. public partial ...