linux下负载均衡(LVS安装与配置)【转】
一、LVS的三种包转发方式
LVS提供了三种包转发方式:NAT(网络地址映射)、IP Tunneling(IP隧道)、Direct Routing(直接路由)
不同的转发模式决定了不同的cluster的网络结构,下面对三种转发方式分别介始:
1、NAT(网络地址映射):
NAT方式可支持任何的操作系统,以及私有网络,并且只需一个Internet IP地址,但是整个系统的性能受到限制。因为执行NAT每次需要重写包
有一定的延迟;另外,大部分应用有80%的数据是从服务器流向客户机,也就是用户的请求非常短,而服务器的回应非常大,对负载均衡器形成很大压力,成为了新的瓶颈。
2、IP Tunneling(IP隧道):
director分配请求到不同的real server。real server处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务器的一半连接
IP Tunneling技术极大地提高了director的调度处理能力,同时也极大地提高了系统能容纳的最大节点数,可以超过100个节点
real server可以在任何LAN或WAN上运行,这意味着允许地理上的分布,这在灾难恢复中有重要意义。服务器必须拥有正式的IP地址用于与客户机直接通信
并且所有服务器必须支持IP隧道协议。
3、Direct Routing(直接路由):
与IP Tunneling类似,负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩性。Direct Routing与IP Tunneling相比
没有IP封装的开销,但由于采用物理层(修改MAC地址)技术,所有服务器都必须在一个物理网段。
二、LVS的八种调度算法:
* rr 轮叫(Round Robin)
调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。
* wrr 加权轮叫(Weighted Round Robin)
调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
* lc 最少链接(Least Connections)
调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载。
* wlc 加权最少链接(Weighted Least Connections)
在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
* lblc 基于局部性的最少链接(Locality-Based Least Connections)
"基于局部性的最少链接" 调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用"最少链接"的原则选出一个可用的服务器,将请求发送到该服务器。
* lblcr 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
" 带复制的基于局部性最少链接"调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按"最小连接"原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按"最小连接"原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。
* dh 目标地址散列(Destination Hashing)
"目标地址散列"调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
* sh 源地址散列(Source Hashing)
"源地址散列"调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
注:如果想了解关于以上几点的技术细节,LVS的主页查询。LVS的主页是:
http://www.LinuxVirtualServer.org/
http://www.linux-vs.org/
三、安装ipvsadm服务
1、 官网去下载安装包:http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
ipvsadm 安装:
# tar zxvf ipvsadm-1.24.tar.gz -C /usr/src/
# cd /usr/src/ipvsadm-1.24
# make all
# make install
# ipvsadm --version
2、yum安装(简单且方便)
#yum -y install ipvsadm
四、配置ipvsadm服务
备注:以下步骤分别按照LVS的三种包转发方式进行配置
实验环境如下:
lvsserver 192.168.1.49(eht0) vip: 192.168.1.40 8.8.8.8(nat模式下)
serverA 192.168.1.46(eth0)
serverB 192.168.1.47(eth0)
1、vs/nat模式下各服务器的配置
lvsserver配置如下:
ifconfig eht0 192.168.1.49 netmsk 255.255.255.0
ifconfig eht1 8.8.8.8 netmask 255.255.255.0
(注:由于nat模式需要两块真实网卡,所以又额外加了一块网卡 ,此网卡的IP地址同时也是VIP的地址)
vi ipvsadm.sh (创建脚本文件)
-------------------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
echo 1 > /porc/sys/net/ipv4/ip_forward (开启路由功能)
ipvsadm -C (清除之前的转换表)
ipvsadm -At 8.8.8.8:80 -s rr (指定带有调度算法转换的服务器)
ipvsadm -at 8.8.8.8:80 -r 192.168.1.46:80 -m (增加一台真实服务器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)
ipvaadm -at 8.8.8.8:80 -r 192.168.1.47:80 -m
#chmod u+x ipvsadm.sh (增加可执行权限)
------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverA配置如下:
ifconfig eth0 192.168.1.46 netmask 255.255.255.0
route add default gw 192.168.1.49
(注:此网关是lvsserver的eth0的IP地址)
service httpd start (开启测试用的web服务)
echo '192.168.1.46' > /var/www/html/index.html (制作测试用的html网页)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverB配置如下:
ifconfig eth0 192.168.1.47 netmask 255.255.255.0
route add default gw 192.168.1.49
(注:此网关是lvsserver的eth0的IP地址)
service httpd start (开启测试用的web服务器
echo '192.168.1.47' > /var/www/html/index.html (制作测试用的html网页)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
2、vs/tun模式下各服务器的配置
lvsserver配置如下:
ifconfig eht0 192.168.1.49 netmsk 255.255.255.0
(注:tun 模式下只需要一块物理网卡,可将eth1网卡禁用)
ifconfig tunl0 192.168.1.40 netmask 255.255.255.255 up
(注:tunlo接口配置的地址为vip地址)
route add -host 192.168.1.40 dev tunlo
vi ipvsadm.sh (创建脚本文件)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
ipvsadm -C (清除之前的转换表)
ipvsadm -At 192.168.1.40:80 -s rr (指定带有调度算法转换的服务器)
ipvsadm -at 192.168.1.40:80 -r 192.168.1.46:80 -i (增加一台真实服务器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)
ipvaadm -at 192.168.1.40:80 -r 192.168.1.47:80 -i
#chmod u+x ipvsadm.sh (增加可执行权限)
#./ipvsadm.sh
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverA配置如下:
ifconfig eth0 192.168.1.46 netmask 255.255.255.0
ifconfig tunl0 192.168.1.40 netmask 255.255.255.255 up
route add -host 192.168.1.40 dev tunlo
vi arp.sh (创建脚本文件)
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverB配置同severA一样
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
3、vs/dr模式下各服务器的配置
lvsserver配置如下:
ifconfig eht0 192.168.1.49 netmsk 255.255.255.0
(注:dr 模式下只需要一块物理网卡,可将eth1网卡禁用)
ifconfig eth0:0 192.168.1.40 netmask 255.255.255.255 up
(注:eth0:0接口配置的地址为vip地址)
route add -host 192.168.1.40 dev eth0:0
vi ipvsadm.sh (创建脚本文件)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
echo 1 > /porc/sys/net/ipv4/ip_forward (开启路由功能)
ipvsadm -C (清除之前的转换表)
ipvsadm -At 192.168.1.40:80 -s rr (指定带有调度算法转换的服务器)
ipvsadm -at 192.168.1.40:80 -r 192.168.1.46:80 -g (增加一台真实服务器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)
ipvaadm -at 192.168.1.40:80 -r 192.168.1.47:80 -g
#chmod u+x ipvsadm.sh (增加可执行权限)
./ipvsadm.sh
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverA配置如下:
ifconfig eth0 192.168.1.46 netmask 255.255.255.0
ifconfig lo:0 192.168.1.40 netmask 255.255.255.255 up (在lo接口上增加vip地址)
route add -host 192.168.1.40 dev lo:0 (增加到环回接口的路由)
vi arp.sh (创建脚本文件)
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
#chmod u+x arp.sh (增加可执行权限)
#./arp.sh
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
serverB配置和serverA一样
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
测试:1、显示LVS 目前的连接
如:ipvsadm -L -c ipvsadm -L --stats
2、将46和47的WEB服务启用。直接输入vip的地址不停的刷新你将会看到不同页面的切换
linux下负载均衡(LVS安装与配置)【转】的更多相关文章
- linux 常用命令 和 nginx(反响代理、负载均衡)安装和配置
(1)linux常用命令 [1]在光标前输入内容:i [2]删除输入方式下所输入的文本:Ctrl+u [3]文件保存退出:wq [4]文件不保存退出:q [5]文件强制退出:q! [6]常规删除文件 ...
- Linux下"负载均衡+高可用"集群的考虑点 以及 高可用方案说明(Keepalive/Heartbeat)
当下Linux运维技术越来越受到企业的关注和追捧, 在某些企业, 尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案.那么如何实施Llinux集群架构,才能既有效 ...
- Linux下apache activemq的安装与配置
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范 的 JMS Provider实现,尽管JMS规范出台已经是很 ...
- Linux 下 JDK + Eclipse + PyDev 安装与配置
一:JDK / JRE 环境 Eclipse 是运行于Java虚拟机中的,所以必须先安装Java环境才能进行开发测试.JRE(Java Runtime Environment)是运行环境,JDK(Ja ...
- Linux下Weblogic 11g R1安装和配置
自己留着好好看看! 文章摘自 :http://blog.163.com/ng_0125@126/blog/static/170162360201311773235995/ 1. 安装前 1 确定w ...
- Linux下Shadow socks的安装和配置
实在受不了在Windows下编程,所以自己就安装了一个Ubutun,公司用的FQ软件shadowsocks在Windows上用起来很简单很爽,但是在Ubutun上的安装和配置就没那么简单了,写下这篇文 ...
- Linux 下 boost 库的安装,配置个人环境变量
部分引自: https://blog.csdn.net/this_capslock/article/details/47170313 1. 下载boost安装包并解压缩到http://www.boos ...
- linux下高可用LVS搭建及配置方法
一,安装与配置ipvsadm ipvsadm --help #查询是否安装成功 二,配置Director Server服务器 1. ifconifg eth0:0 183.61.87.4 ...
- Linux下TFTP服务的安装、配置和操作
TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现.嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp ...
随机推荐
- xcode升级插件失效修复
每次xcode升级以后,插件都会失效.可以通过一行命令解决这个问题. 摘自传人的博客 find ~/Library/Application\ Support/Developer/Shared/Xcod ...
- CSS 布局Float 【0】
float是 css 样式的定位属性.我们在印刷排版中,文本可以按照需要围绕图片.一般把这种方式称为“文本环绕”.在网页设计中,应用了CSS的float属性的页面元素就像在印刷布局里面的被文字包围的图 ...
- 自定义Back返回键(实现按两次返回键退出程序)
实现机制:当用户点击物理返回键时,Activity会调用onBackPressed(),只需在Activity中复写该方法即可 以下是代码实现: package com.example.qjm3662 ...
- Android之声音管理器《AudioManager》的使用以及音量控制
以下为网上下载然后拼接-- Android声音管理AudioManager使用 手机都有声音模式,声音.静音还有震动,甚至震动加声音兼备,这些都是手机的基本功能.在Android手机中,我们同样可以通 ...
- PS纯手式打造不规则颜色的规则方块—学习教程
- Mysql 索引的基础(下)
如果需要存储大量的URL并需要根据URL进行搜索查找.如果使用B-Tree 来存储URL,存储的内容就会很大,因为URL本身都很长.正常情况下会有如下查询: SELECT id FROM url WH ...
- 《JavaScript dom 编程艺术》 placeholder占位符IE8兼容办法。
在<JavaScript dom 编程艺术>第11章学来的. 相对于用JavaScript替换文本框的提示语句 <!DOCTYPE html> <html lang=&q ...
- 破解Inode客户端使用笔记本共享WIFI
由于住在学校的公寓里面,所以使用的是校园网,但是校园网限制了无线的使用,强制所有网络用户使用INode网络客户端,这个客户端不但很丑很难看,而且每天联网十分费劲,费了半天的力气终于联上网了,可是一眨眼 ...
- 织梦安装过后出现"...www/include/templets/default/index.htm Not Found!"
在织梦网站搬家之后再整站更新,往往会遇到访问首页的时候出现www/include/templets/default/index.htm Not Found!,这个问题我遇到过两次,都是这样解决的: 进 ...
- Linux下设置静态IP和获取动态IP的方法
Linux下为机器设置静态IP地址: vim /etc/sysconfig/network-scripts/ifcfg-eth0 修改这个文件内容如下形式: # Intel Corporation ...