服务负载之LVS

duang!duang!duang!今天开始写服务高可用之lvs。

回顾一下,我们一般服务集群可分为以下三种:

1.负载均衡集群,如lvs,nginx(7层负载),haproxy(4层,7层都可以)等

2.高可用集群,如keepalive,heartbeat组成的高可用,数据自身的主从高可用,主主高可用

3.高性能集群,如某些运算工作站

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。lvs是根据TCP/IP4层协议,依赖内核的netfilter,工作在INPUT链上,实现4层负载,突破了套接字的限制,具有强大的并发能力。由于它不关心服务是否可用,在轮询等算法中,前端访问服务时,会出现固定比例的访问不可达,没有冗余功能。

lvs工作模式可分为:

1.nat,多目标DNAT,顾名思义,目标地址转换,修改请求报文的目标地址(有时也会修改端口),转发给后端服务器。

2.dr,直接路由,修改请求报文的目标mac地址,转发给同网段服务器。

3.tun,隧道,不修改请求报文的IP首部,在原有的IP首部上,再封装一个IP首部,有可能会突破mut的限制,可能有一些手段限制请求包的大小。

lvs支持的算法:

1.rr,轮询,根据ipvsadm管理表里面的次序,依次循环分配请求,绝对公平

2.wrr,加权轮询,根据服务性能设置权重,根据权重比例分配请求,手握权重,我优先

3.sh,源地址hash,把来自同一IP的请求始终分配同一RS主机,可以实现类似session会话保持功能

4.dh,目标地址hash,对同一目标请求始终分配给同一RS主机,实现类似提高缓存命中功能

上面4种为静态算法。何为静态呢?是指,前端负载,不管后端服务的性能差异,始终我行我素的按照规则分配,根据现实社会规律,当人数太多,而每个人的能力强弱不一样,平均分配会使能力差的人不太公平,古人云,能者多劳。于是有了下面的算法;

5.lc,最少链接,最少的家伙优先分配,公式:活动链接数*256+非活动链接数之和

6.wlc,加权最少链接,lc升级版,权重大的优先分配,公式:(活动链接数*256+非活动链接数)/权重

7.sed,最短期望延迟,公式:(活动链接数+1)*256/权重

8.nq,按照权重大小一次分配,再按照sed算法

9.lblc,基于本地最小链接的目标地址hash,即为动态DH算法,先LC,再DH,目前主要用于Cache集群系统

10.lblcr,带复制功能的LBLC

ipvs管理工具:ipvsadm

常用命令:

添加服务:ipvsadm -A -t 192.168.0.50:80 -s rr

修改服务:ipvsadm -E -t
192.168.0.50:80 -s wrr

保存服务:ipvsadm-save = ipvsadm -S

载入服务:ipvsadm-restore =ipvsadm -R

添加RS:ipvsadm -a -t 192.168.0.50:80 -r 172.16.1.90 -m -w 1 (-m为nat工作模式)

修改RS:ipvsadm -e -t 192.168.0.50:80 -r 172.16.1.90 -g -w 1 (-g为dr工作模式)

显示链接报文数: ipvsadm -L -n --stats

由于ipvs是工作在内核上的,我们只需要安装ipvsadm,往ipvs上面写规则就是了。

yum install -y ipvsadm

基于nat工作模式的lvs

在lvs服务端,清空iptables规则,准备2台httpd服务器

在服务端添加

iptables -F

ipvsadm -A -t
172.16.2.10:80 -s rr

ipvsadm -a -t
172.16.2.10:80 -r 172.16.1.90 -g -w 1

ipvsadm -a -t
172.16.2.10:80 -r 172.16.1.91 -g -w 1

基于dr工作模式lvs

服务端配置:

iptables
-F

ifconfig
eth0:0 172.16.2.10 up

route add
-host 172.16.2.10 dev eth0:0

添加ipvs命令

ipvsadm -A -t
172.16.2.10:80 -s rr

ipvsadm -a -t
172.16.2.10:80 -r 172.16.1.90 -g -w 1

ipvsadm -a -t
172.16.2.10:80 -r 172.16.1.91 -g -w 1

所有客户端配置:

先定义参数:

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

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

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

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

在lo上配置ip别名

ifconfiglo:0 172.16.2.10/32 broadcast 172.16.2.10 up

添加lo到网卡的路由

route add
-host 172.16.2.10 dev lo:0

时间: 2024-10-24 01:14:18

服务负载之LVS的相关文章

Linux集群-负载均衡lvs介绍及lvs-nat实现https

一.Linux集群 Linux集群系统保护集群管理器和集群节点两部分组成.集群节点简称为节点.服务器或服务器节点,是用来提供资源,进行集群的实际工作.一般来说,它必须进行配置后才能称为集群的一部分,同时也要运行集群用到的应用程序.Linux集群管理器再将各节点捆绑在一起,它用于将任务分解到所有的节点.简单的说,就是按照某种方式把服务器连起来来完成一种特定的任务,提高服务器的响应能力. scale on 在单台主机上提高服务器性能, scale out 增加服务器的数量来提高,负载均衡的集群. 二

负载均衡--LVS+Keepalived

利用LVS+Keepalived 实现高性能高可用负载均衡    背景: 随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时实现商业硬件一样的高性能高可用的功能?有什么好的负载均衡可伸张可扩展的方案吗?答案是肯定的!有!我们利用LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器. 一.LVS+Keepalived 介绍 1. LVS LVS是Linux

乾坤大挪移之负载均衡LVS

乾坤大挪移:乃在颠倒一刚一柔.一阴一阳的乾坤二气,乾坤心法"汇集藏密与西域绝世秘传心法之精华,其功效震古烁今,至高无上.勤修之则催动任何武林上乘功法如探囊取物耳.其式寥寥数言,但气效极巨,正所谓"大道至简"也. 这"乾坤大挪移"心法,实则是运劲用力的一项极巧妙法门,(第一层)龙象成就,(第二层)十诀剑气,(第三层)逍遥乾坤,(第四层)吸劲神魔,(第五层)横空挪移,(第六层)乾坤归一,(第七层)无极心法,伪道养形,真道养神,通此道者,能存能亡,神能飞行,并能

keepalived 主备服务负载均衡、基于LAMP平台

一.keepalived的基本原理介绍 keepalived最初设计的目的是为了实现lvs前端director的高可用,非常轻量级.主要的实现的vrrp协议. VRRP是一种容错协议,它保证当主机的下一跳路由器出现故障时,由另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性. VRRP具有如下优点: 简化网络管理:在具有多播或广播能力的局域网(如以太网)中,借助VRRP 能在某台设备出现故障时仍然提供高可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,而无需修改

负载均衡LVS—ipvsadm应用详解

负载均衡LVS-ipvsadm应用详解 环境:64位Centos 6.4 1.在director上安装ipvsadm工具(这里使用RPM包) //挂载光盘,搜索ipvsadm工具安装包 [[email protected] ~]# mount /dev/cdrom /media/cdrom/ [[email protected] ~]# cd /media/cdrom/Packages [[email protected] Packages]# ll |grep ipvsadm //安装ipvs

CentOS 6.5实现LAMP+NFS双web服务负载均衡

CentOS 6.5实现LAMP+NFS双web服务负载均衡 环境说明: CentOS 6.5最小化安装,安装相应的组件: [[email protected] ~]# yum groupinstall -y"Development tools" [[email protected] ~]# yum groupinstall -y"Server Platform Development" 准备三台主机: httpa: 192.168.1.217  搭建web服务器

负载均衡LVS之NAT模式实现的详细步骤

负载均衡LVS之NAT模式实现的详细步骤 1.数据流程图 2.环境说明 1) 四台主机,时间同步,关闭防火墙和selinux 2) 各主机角色 1] 客户端:192.168.110.27 仅主机(vmnet1) 网关:无 2] RS服务器: 192.168.136.36 仅主机(vmnet6) 网关:192.168.136.35 192.168.136.37 仅主机(vmnet6) 网关:192.168.136.35 3] VS服务器:192.168.110.35 仅主机(vmnet1) 192

lvs DR模式 +keepalived 实现directory 高可用、httpd服务负载均衡集群

功能: lvs+keepalived高可用负载均衡集群中: ·keepalived负责后端real server健康状态检查 如果一台real server服务出现故障,则会从集群服务中剔除,等恢复之后再自动加入到集群. ·keepalived负责负载均衡器(directory server)高可用 A和B两台虚拟机装lvs+keepalived(主)和lvs+keepalived(备),但是对外表现为一个虚拟IP,主服务器会发送消息给备服务器,当备服务器收不到消息的时候,认为主出现故障,然后接

构建负载均衡服务器之二 LVS详解及应用

在上一篇中介绍了负载均衡及集群的原理,本篇主要介绍下下实现负载均衡的软件之LVS的原理及应用. 一.LVS的介绍 1.  LVS的定义 一般来说,LVS采用三层结构:负载调度器.服务器池.共享存储.工作在TCP/IP协议的四层,其转发是依赖于四层协议的特征进行转发的,由于其转发要依赖于协议的特征进行转发,因此需要在内核的TCP/IP协议栈进行过滤筛选,可想而知,这就需要在内核的模块来完成,而这样的过滤转发规则又是由管理员进行定义的,所以,LVS就是两段式的架构设计,在内核空间中工作的是"ipvs