LVS入门

随着互联网进入寻常百姓家,网络流量愈来愈大,大规模的网路访问如果都使用一个服务器提供服务,那么网络通讯注定会拥堵不堪。为了解决这些问题,达到使网络流量均衡地分散到各个服务器上的目的,一些技术大牛发明了LVS负载均衡技术。

 

LVS简介

 

LVS(Linux Virtual Server)即为Linux虚拟服务器,使由章文嵩博士主导开发的,这也是我们中国人对开源界的一大贡献,目前LVS已经被收录在了内核中,小伙伴们在使用较新版Linux系统时默认会附加这个功能。

什么是负载均衡呢?简单来说就是通过技术手段,将前端访问数据流通过调度算法分派给后端服务器的过程。按照实现技术手段不同,可以分为NAT DR TUNEFULLNAT四种类型。

 

基于NAT LVS

此种类型的负载均衡与iptables的源地址转发较类似,主要区别在于:负载均衡在PREROUTING链上没有规则,接收到的报文会发送给本机的INPUT链,然后通过内核调度直接把报文按照设定的规则通过POSTROUTING链发送给网络服务器。

 

基于DRLVS

此种类型的负载均衡在LVS服务器接收到客户端的报文后会修改报文的目标MAC地址,然后将其重新发送给交换机,交换机接收到之后再按照新的目标MAC地址将报文发送给网络服务器,网络服务器的内部回环设置与LVS相同的IP地址,并通过技术手段禁止此地址在局域网广播,在响应客户端请求时会使用此IP地址,达到伪装LVS 地址的作用。

由于此种类型的响应报文不经过LVS服务器的转发,其效率最好,但配置方法最复杂。

 

基于TUNELVS

此种类型的负载均衡的LVS服务器在接收报文时会在收到IP段首部添加目标网络服务器的IP首部,并发送发给远程网络服务器,当网络服务器接收到这些报文时会拆分数据报,并使用与LVS相同的IP地址将响应报文发送给客户端。

 

基于FULLNATLVS

此种类型的负载均衡的LVS服务器与NAT类似,只不过在接收报文时会将报文中的源和目的地址都进行修改,这样即使局域网中有多个路由器,也可以把响应报文准确传给LVS服务器。

 

LVS调度算法

上述四种模式都包含了以下几种调度算法:

轮询调度

加权轮询调度

最小连接调度

加权最小连接调度

基于局部性最少连接调度

目标地址散列调度

源地址散列调度

下面以NAT模式为例,介绍下LVS安装使用流程

yum安装ipvsadm

yum install –y ipvsadm

 

ipvsadm 选项  服务器地址 –s 算法

ipvsadm 选项  服务器地址 –r 真实服务器地址[工作模式][权重]

ipvsadm常用参数:

-A 添加一个虚拟服务器

-E 编辑一个虚拟服务器

-D 删除一个虚拟服务器

-C 清空虚拟服务器列表

-R 从标准输入中还原规则

-S 保存规则

-a 向虚拟服务器中添加一个真实服务器

-e 修改一个真实服务器

-d 删除一个真实服务器

-L 显示虚拟服务器列表

-t 使用tcp

-u 使用udp

-s 指定LVS的调度算法

-r 设置真实服务器IP地址和端口信息

-g 设置LVS工作模式为DR

-I 设置LVS工作模式为TUN

-m设置LVS工作模式为NAT

-w 设置指定服务器权重

-c 连接状态

-n 数字格式输出

 

例:以NAT模式添加LVS

ipvsadm –A –t 172.18.55.62:80 –s rr
ipvsadm –a –t 172.18.55.62:80 –r 192.168.0.1:80 –m
ipvsadm –a –t 172.18.55.62:80 –r 192.168.0.2:80 –m

 

ipvsadm –Ln #查看LVS规则
ipvsadm –Lnc #查看调度状态

 

例:备份和加载LVS配置

ipvsadm –S > /etc/lvs.bak
ipvsadm –R < /etc/lvs.bak

 

 

原创文章,作者:realmaster,如若转载,请注明出处:http://www.178linux.com/75149

(0)
realmasterrealmaster
上一篇 2017-05-09
下一篇 2017-05-10

相关推荐

  • 操作系统,内核以及硬件之间的关系

    一般我们将计算机系统区分为硬件系统与软件系统构成。 计算机硬件我们可以分成5大组件构成,即: 1)计算器:用于数据计算,如:CPU 2)控制器:控制数据流和指令流,与各个组件之间进行数据交互,并控制协调各个组件之间协同工作,如:主板的南桥,内桥,各个组件自身的独立控制芯片等 3)存储器:用户数据的存放,如:一级/二级等内存芯片;flash芯片 4)输入设备:…

    Linux干货 2016-10-26
  • 如何监控Linux文件系统事件:inotify使用指南

    如何监控Linux文件系统事件:inotify使用指南 §·inotify初识 Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。学习如何将 inotify 集成到您的应用程序中,并发现一组可用来进一步自动化系统治理的命令行工具。 §·inoti…

    Linux干货 2016-10-30
  • gitlab-ce并发超过30引起ip被封1小时的问题

    系统环境描述 System information System:     Ubuntu 14.04 Current User:   git Using RVM:  no Ruby Version: …

    Linux干货 2015-09-06
  • CentOS 系统启动流程[转载]

    Linux(CentOS)系统启动过程大致按照如下顺序: POST –> BootSequence(BIOS) –>Bootloader(MBR) –>Kernel(ramdisk)–>rootfs(readonly)–>switchroot–>/sb…

    Linux干货 2017-01-28
  • 搭建一套LVS-DR模型的高性能集群(LVS-DR+Nginx+Mariadb+Nfs+php-fpm+wordpress)

    架构简介 参加马哥linux培训一周了,自己感觉每天都进步很多,现在来说说这个架构,也是架构师第一周的作业第二题。搭建一套LVS-DR模型的高性能集群,做了两天终于完成并实现了这个架构,我设计的架构图如下所示: 此架构主要是用ipvsadm来实现高性能集群,Realserver(RS1,RS2)安装配置nginx,RS服务器分别配置了一个内网,一个外网。正常…

    Linux干货 2016-12-06
  • LVM 逻辑卷管理

    一、概述: LVM: logical Volumn Manager  LVM是建立在硬盘和分区之上的一个逻辑层。可以将多个物理分区整合起来,无需停机,可以对文件系统的大小进行调整。同时,还提供快照功能 二、概念及实现过程: PE :每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的…

    Linux干货 2015-10-05