本博文主要简单介绍一下LVS负载均衡集群的一个基本负载均衡机制:LVS-DR;如有汇总不当之处,请各位在评论中多多指出。

LVS-DR原理:

LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。它是我们国家的章文嵩博士的一个开源项目。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。我们都知道LVS有LVS-DR,LVS-NAT,LVS-TUN三种模式,其中DR模式意为Direct Routing(直接路由),是调度器与实际服务器都有一块网卡连在同一物理网段上的情况。

而LVS-DR的工作原理就是:通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址,源IP/PORT,以及目标IP/PORT均保持不变

LVS-DR:直接路由的特点

Director和各RS上都配置使用VIP

(1)确保前端路由将目标IP为VIP的请求报文发往Director

(a)在前端网关做静态绑定

(b)在RS上使用arptables

(c)在RS上修改内核参数以限制ARP通告和应答级别

arp_announce

arp-ignore

(2)RS的RIP可以使用私网地址,也可以是公网地址,RIP与DIP在同一IP网络,RIP的网关不能指向DIP,以确保响应报文不会经由Director

(3)RS跟Director要在同一个物理网络

(4)请求报文要经由Director,但响应不能经由Director,而是由RS直接发往Client

(5)不支持端口映射

LVS-DR部署简单步骤介绍:

下图为LVS-DR的拓扑配置图:

1.服务器IP分配:

2.在RS服务器端安装nginx,并配置好RS的测试页面文件(test.html)

~]#yum install -y nginx

~]#vim /usr/share/nginx/html/test.html

RS1设置:

~]# cat /usr/share/nginx/html/test.html

<h1>RS1-192.168.73.142</h1>

RS2设置:

~]# cat /usr/share/nginx/html/test.html

<h1>RS2-192.168.73.143</h1>

注意:RS1与RS2配置步骤一致,但在配置测试页面文件时,为了显示测试效果,会显示实际RS的hostname以及对于IP地址

3.配置RS1网卡的VIP,添加本地route限定并修改arp_announce和arp_ignore的设置

~]#ifconfig lo:0 192.168.73.160 netmask 255.255.255.255 broadcast 192.168.73.160 up

~]#route add -host 192.168.73.160 dev lo:0

~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

注:配置RS2服务器,步骤跟RS1配置一致即可

4.在Director安装ipvsadm,并配置网卡设置,添加ipvsadm规则

~]#yum install -y ipvsadm

~]#ifconfig ens33:0 192.168.73.160 netmask 255.255.255.255 broadcast 192.168.73.160 up

~]#route add -host 192.168.73.160 dev ens33:0

~]# ipvsadm -At 192.168.73.160 -s rr

Zero port specified for non-persistent service

~]# ipvsadm -At 192.168.73.160:80 -s rr

~]# ipvsadm -a -t 192.168.73.160:80 -r 192.168.73.142 -g

~]# ipvsadm -a -t 192.168.73.160:80 -r 192.168.73.143 -g

~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.73.160:80 rr

-> 192.168.73.142:80            Route   1      0          0

-> 192.168.73.143:80            Route   1      0          0

5.启动各服务器的nginx服务,同时为了简便,关闭所有服务器的firewalld

~]#systemctl start nginx

~]#systemctl stop firewalld

~]#setenforce 0

6.在客户端测试访问,http://192.168.73.160/test.html

注意:LVS-DR模式其实可以通过脚本来直接实现,下面为各服务器的简单脚本,建议为了熟悉配置,前期还是自己手动设置比较好,

此脚本较简单,请大神勿喷!

#!/bin/bash

#lvs-dr模式部署脚本

vip=192.168.73.160

mask=255.255.255.255

iface='lo:0'

case $1 in

start)

ifconfig $iface $vip netmask $mask broadcast $vip up

route add -host $vip dev $iface

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

;;

stop)

ifconfig $iface down

echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce

echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce

;;

*)

echo "Usage:$(basename $0) start|stop"

exit 2

;;

esac

同步博客地址:https://blog.51cto.com/12068974

LVS负载均衡机制之LVS-DR模式工作原理以及简单配置的更多相关文章

  1. LB负载均衡集群及DR模式配置

    一.系统环境准备: 1.dir服务器 主机名称:dir 系统环境:CentOS release 6.5 (Final) 外网ip:192.168.1.203(网络模式桥接) vip:192.168.1 ...

  2. octavia的实现与分析(一)·openstack负载均衡的现状与发展以及lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比

    [负载均衡] 大量用户发起请求的情况下,服务器负载过高,导致部分请求无法被响应或者及时响应. 负载均衡根据一定的算法将请求分发到不同的后端,保证所有的请求都可以被正常的下发并返回. [主流实现-LVS ...

  3. openstack octavia的实现与分析(一)openstack负载均衡的现状与发展以及lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比

    [负载均衡] 大量用户发起请求的情况下,服务器负载过高,导致部分请求无法被响应或者及时响应. 负载均衡根据一定的算法将请求分发到不同的后端,保证所有的请求都可以被正常的下发并返回. [主流实现-LVS ...

  4. LVS负载均衡理论以及算法概要

    一. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.or ...

  5. Linux中keepalived+LVS负载均衡的搭建测试

    1.1 LVS简介       LVS(Linux Virtual Server),也就是Linux虚拟服务器, 是一个自由软件项目.使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Lin ...

  6. linux运维、架构之路-LVS负载均衡

    一.LVS介绍 1.介绍           LVS是Linux Virtual Server的简写,是linux虚拟的服务器集群系统,可以在unix/linux平台下实现负载均衡集群功能,由章文嵩博 ...

  7. centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课

    centos   LB负载均衡集群 三种模式区别 LVS/NAT 配置  LVS/DR 配置  LVS/DR + keepalived配置  nginx ip_hash 实现长连接  LVS是四层LB ...

  8. LVS负载均衡DR模式

    什么是集群? 一组相互独立的计算机,利用高速通信网络组成的一个计算机系统,对于客户机来说像是一个单一服务器,实际上是一组服务器.简而言之,一堆机器协同工作就是集群.集群的基本特点:高性能.高并发.高吞 ...

  9. LVS负载均衡之DR模式部署

      1.LVS的DR模式介绍 参考自官网:http://www.linuxvirtualserver.org/zh/lvs3.html     VS/DR利用大多数Internet服务的非对称特点,负 ...

随机推荐

  1. Rxjava学习(一基础篇)

    一.Rxjava跟EventBus的区别 RxJava 是一个响应式编程框架,通过一种扩展的观察者设计模式来实现异步操作. 跟AsyncTask和Handler类似,但是比AsyncTask和Hand ...

  2. UX基础 - OmniGraffle新手指南

    原文地址:http://beforweb.com/node/202,大半夜找到,作为使用手册 我发现一事儿,就是最近这些年,每到入职一个新公司的时候,听得东西往往会比多数时候听得更重更金属些,此时以S ...

  3. ubuntu16.0.4安装mysql5.7以及设置远程访问

    1.安装mysql命令 sudo apt-get install mysql-server sudo apt install mysql-client sudo apt install libmysq ...

  4. Visual Studio 2017RC 版本相关资料

    Visual Studio 2017 RC版本说明 1.社区版 Visual Studio Community 2017 RC Visual Studio Community 2017 RC 是针对个 ...

  5. SQL Server ->> 使用Azure Active Directory Authentication连接到Azure SQL Database

    SQL Server 2016以后支持Azure AD集成验证,这当中有些数据驱动必须在高版本才可以使用,支持的包括sqlcmd,SSDT,JDBC,ODBC,SSMS等. 对于SSIS来讲,我们需要 ...

  6. winfrom 实现窗体圆角

    在窗体中加入一下代码 #region 窗体圆角的实现 private void ComFrmBase_Resize(object sender, EventArgs e) { if (this.Win ...

  7. MVC controller的Action获取HttpRequest

    HttpContext.ApplicationInstance.Context.Request

  8. 集合、深浅copy

    集合set: 集合也和列表数组一样有增加,但是集合是真正的没有顺序的  所以集合无法查找的,并且集合的外观你看着好像是字典和列表的组合,因为它是用字典的括号一样 ,但是又是里面并没有键值对  只是一个 ...

  9. Java学习---常见的模式

    Java的常见模式 适配器模式 package com.huawei; import java.io.BufferedReader; import java.io.IOException; impor ...

  10. SQL Server用户自定义函数(UDF)

    一.UDF的定义 和存储过程很相似,用户自定义函数也是一组有序的T-SQL语句,UDF被预先优化和编译并且可以作为一个单元来进行调用. UDF和存储过程的主要区别在于返回结果的方式: 使用UDF时可传 ...