Lvs安装测试文档20Word文档格式.docx
- 文档编号:21163962
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:25
- 大小:101.71KB
Lvs安装测试文档20Word文档格式.docx
《Lvs安装测试文档20Word文档格式.docx》由会员分享,可在线阅读,更多相关《Lvs安装测试文档20Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
3.3.1创建安装脚本6
3.3.2Lvs启动脚本7
3.3.3配置keepalived(主备lvs)9
3.3.4配置真机脚本11
4.实验一(IP,端口在路由过程中是否有改变)12
4.1测试环境12
4.1.1系统环境12
4.1.2Ipvs与系统内核关系12
4.1.3Ip_vs与ipvsadm关系12
4.1.4Ipvsadm安装与配置12
4.2测试环境部署如下:
14
4.3测试流程14
4.4测试结论15
4.5测试代码15
5.实验二(通过权值控制流量走向)17
5.1实验目的17
5.2测试环境17
5.3测试流程20
5.4结论20
1.lvs简介
1.1lvs概述
LVS的英文全称是Linux
Virtual
Server,即Linux虚拟服务器,主要用于多服务器的负载均衡。
它工作在网络层,可以实现高性能,高可用的服务器集群技术,也可把许多低性能的服务器组合在一起形成一个超级服务器。
其配置非常简单,且有多种负载均衡的算法。
其稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。
另外可扩展性也非常好。
1.2Lvs工作原理
1.LoadBalancer:
这是LVS的核心部分,它好比我们网站MVC模型的Controller。
它负责将客户的请求按照一定的算法分发到下一层不同的服务器进行处理,自己本身不做具体业务的处理。
另外该层还可用监控下一层的状态,如果下一层的某台服务器不能正常工作了,它会自动把其剔除,恢复后又可用加上。
该层由一台或者几台DirectorServer组成。
2.ServerArray:
该层负责具体业务。
可有WEBServer、mailServer、FTPServer、DNSServer等组成。
注意,其实上层的DirectorServer也可以当Realserver用的。
3.SharedStorage:
主要是提高上一层数据和为上一层保持数据一致。
1.3Lvs负载均衡机制
前面我们说了LVS是工作在网络层。
相对于其它负载均衡的解决办法,比如DNS域名轮流解析、应用层负载的调度、客户端的调度等,它的效率是非常高的。
LVS的通过控制IP来实现负载均衡。
IPVS是其具体的实现模块。
IPVS的主要作用:
安装在DirectorServer上面,在DirectorServer虚拟一个对外访问的IP(VIP)。
用户访问VIP,到达DirectorServer,DirectorServer根据一定的规则选择一个RealServer,处理完成后然后返回给客户端数据。
这些步骤产生了一些具体的问题,比如如何选择具体的RealServer,RealServer如果返回给客户端数据等等。
IPVS为此有三种机制:
1.3.1VS/NAT
VS/NAT(VirtualServerviaNetworkAddressTranslation),即网络地址翻转技术实现虚拟服务器。
当请求来到时,Diretorserver上处理的程序将数据报文中的目标地址(即虚拟IP地址)改成具体的某台RealServer,端口也改成RealServer的端口,然后把报文发给RealServer。
RealServer处理完数据后,需要返回给DiretorServer,然后Diretorserver将数据包中的源地址和源端口改成VIP的地址和端口,最后把数据发送出去。
由此可以看出,用户的请求和返回都要经过DiretorServer,如果数据过多,DiretorServer肯定会不堪重负。
1.3.2VS/TUN
VS/TUN(VirtualServerviaIPTunneling),即IP隧道技术实现虚拟服务器。
它跟VS/NAT基本一样,但是Realserver是直接返回数据给客户端,不需要经过Diretorserver,这大大降低了Diretorserver的压力。
1.3.3VS/DR
VS/DR(VirtualServerviaDirectRouting),即用直接路由技术实现虚拟服务器。
跟前面两种方式,它的报文转发方法有所不同,VS/DR通过改写请求报文的MAC地址,将请求发送到RealServer,而RealServer将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。
这种方式是三种负载调度机制中性能最高最好的,但是必须要求DirectorServer与RealServer都有一块网卡连在同一物理网段上。
1.4Lvs八种算法
1.4.1rr轮询(RoundRobin)
调度器通过“轮询”调度算法将外部请求按顺序轮流分配到集群中的后端真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。
1.4.2wrr加权轮叫(WeightedRoundRobin)
调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。
这样可以保证处理能力强的服务器处理更多的访问流量。
调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
1.4.3lc最少连接(LeastConnections)
调度器通过“最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。
如果集群系统的真实服务器具有相近的系统性能,采用“最小连接”调度算法可以较好地均衡负载。
1.4.4wlc加权最少连接(WeightedLeastConnections)
在集群系统中的服务器性能差异较大的情况下,调度器采用“加权最少链接”调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。
1.4.5lblc基于局部性的最少连接(Locality-BasedLeastConnections)
“基于局部性的最少连接”调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。
该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;
若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少连接”的原则选出一个可用的服务器,将请求发送到该服务器。
1.4.6lblcr带复制的基于局部性最少链接(Locality-BasedLeastConnectionswithReplication)
“带复制的基于局部性最少链接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。
它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。
该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;
则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。
同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。
1.4.7dh目标地址散列(DestinationHashing)
“目标地址散列”调度算法根据请求的目标IP地址,作为散列键(HashKey)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
1.4.8sh源地址散列(SourceHashing)
“源地址散列”调度算法根据请求的源IP地址,作为散列键(HashKey)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
1.5Lvs的实现
Lvs的实现主要通过将ip_vs功能模块编译加载到系统内核中,通过自身算法对数据流量的分析以进行ip负载均衡;
在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块(ip_vs),但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。
Ip_vs类似于iptables的架构,在内核中有一段代码用于实时监听数据包来源的请求,当数据包到达端口时做一次重定向。
这一系列的工作必须在内核中实现。
在内核中实现数据包请求处理的代码叫做ip_vs(lvs实现)。
Ip_vs仅仅提供了功能框架,还需要自己手动定义是数据对哪个服务的请求,而这种定义需要通过写规则来实现,写规则的工具就称为ipvsadm。
因此我们要让lvs真正的可配置功能是通过ipvsadm工具来实现的。
2.Keepalived简介
keepalived是一款失效转发机制的软件,它的作用是检测负载均衡服务器的状态,如果有一台负载均衡服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的负载均衡服务器从系统中剔除,当负载均衡服务器工作正常后Keepalived自动将负载均衡服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的负载均衡服务器。
2.1Keepalived工作原理
主服务器和备服务器都装了keepalived软件,将keepalived配置成Master的便成了主服务器,将keepaliv-ed配置成BACKUP的自然就成了备服务器。
主备服务器都通过keepalived绑定有相同的虚拟ip,外界就是利用这个虚拟ip与服务器进行交互的。
正常情况下只有主服务器work,当主服务器宕机或者出现其他故障时Keepalived会将work转移到备服务器上,虚拟ip依然有效。
当主服务器修复好了备用服务器会自动将work权利重新交给主服务器。
2.2Lvs与keepalived
Keepalived对lvs进行了封装,并且Keepalived里面所有对lvs的相关操作并不直接使用ipvsadm这样的客户端程序,而是直接使用IPVS提供的函数进程操作,也就是说keepalived和ipvsadm并无直接关系,但是如果安装keepalive时,必须先安装ipvsadm,keepalived才会支持ip_vs模块,ipvsadm只是针对单台lvs服务器进行配置,如果要进行ipvsadm集群会用到别的集群软件,而keepalive不仅可以直接和IPVS内核模块提供的函数进行交互,而且自身就是可进行集群备份的软件。
因此,我们蚕蛹lvs+keepalived模式来搭建我们的环境。
3.Lvs+keepalived安装
3.1安装环境
系统:
Redhat企业版5.4x86
内核:
2.6.18-164.el5
客户端IP:
192.168.2.2
Lvs负载均衡端IP1:
192.168.2.120
Lvs负载均衡端IP2:
192.168.2.130
Lvs负载均衡器VIP:
192.168.2.110
Server真机RIP1:
192.168.2.121
Server真机RIP2:
192.168.2.122
3.2安装准备
首先通过uname–r查看那系统内核:
可以看出内核版本高于2.4,说明系统内核已经内置了lvs的功能模块。
通过lsmod|grepip_vs命令来查看内核中是否已经加载ip_vs模块。
如果是这种情况,说明我们系统没有帮我们加载内核,我们需要自己手动加载,加载内核用到命令modprobe+内核模块名,当然我们也可以删除内核,使用命令rmprobe+内核模块名
还有一点是非常重要的,安装ipvsadm工具时我们需要cd/usr/src/kernels/2.6.18-164.el5-XXX/
到这个目录下,确保/usr/src/kernels/2.6.18-164.el5-XXX/是存在的,且目录下是linux内核文件。
如果没有这个目录请安装以下三个系统光盘中自带的内核源码rpm包,否则安装会出错。
rpm–ivhkernel-devel-2.6.18-164.el5.XXX.rpm
rpm–ivhkernel-2.6.18-164.el5.XXX.rpm
rpm–ivhkernel-headers-2.6.18-164.el5.XXX.rpm
3.3安装lvs
3.3.1创建安装脚本
我们只在负责负载均衡的两台机器上安装ipvsadm和keepalive。
在/opt/目录下vilvs_install.sh将下面脚本代码复制到文件中,保存退出。
在当前目录下执行chmoda+xlvs_install.sh
然后执行./lvs_install.sh
#!
/bin/bash
#description:
startLVSofDirectorServe
echo"
================================="
lvs+keepalivedstartinstalling"
linuxversion=$((uname-a)|awk-F'
'
{print$3"
-"
$12}'
)
ln-s/usr/src/kernels/$linuxversion//usr/src/linux
mkdir-p/opt/lvs
cd/opt/lvs
wgethttp:
//www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
//www.keepalived.org/software/keepalived-1.2.1.tar.gz
tarzxvfipvsadm-1.24.tar.gz
cdipvsadm-1.24
make&
&
makeinstall
cd..
tarzxvfkeepalived-1.2.1.tar.gz
cdkeepalived-1.2.1
./configure
cp/usr/local/etc/rc.d/init.d/keepalived/etc/rc.d/init.d/
cp/usr/local/etc/sysconfig/keepalived/etc/sysconfig/
mkdir/etc/keepalived
cp/usr/local/etc/keepalived/keepalived.conf/etc/keepalived/
cp/usr/local/sbin/keepalived/usr/bin/
=====Done======="
当脚本执行完成后我们的ipvsadm工具和keepalived就已经安装到位了。
3.3.2Lvs启动脚本
/bin/bash
./etc/rc.d/init.d/functions
RIP1=192.168.2.121
RIP2=192.168.2.122
VIP=192.168.2.110
PORT=4000
case$1in
start)
echo"
startLVSofDirectorServer"
#settheVirtualIPAddressandsysctlparameter
/sbin/ifconfigeth0:
0$VIPbroadcast$VIPnetmask255.255.255.255up
/sbin/routeadd-host$VIPdeveth0:
/sbin/routeadddefaultgw192.168.2.1
/sbin/route-n
1"
>
/proc/sys/net/ipv4/ip_forward
#Clearalliptablescounters
#/sbin/iptables-F
#Resetiptablescounters
#/sbin/iptables-Z
#ClearIPVStable
/sbin/ipvsadm-C
#setLVS
#peptest
/sbin/ipvsadm-A-t$VIP:
4000-srr
/sbin/ipvsadm-a-t$VIP:
$PORT-r$RIP1:
$PORT-g
$PORT-r$RIP2:
#RunLVS
/sbin/ipvsadm
;
;
stop)
closeLVSDirectorserver"
0"
>
0down
启动完脚本后,执行ipvsadm效果如下:
3.3.3配置keepalived(主备lvs)
脚本中我们将keepalived.conf文件放在/etc/keepalived/目录下
主机的keepalived.conf文件的具体配置如下:
global_defs{
router_idLVS_DEVEL_1//随便取,不重复就行
}
vrrp_instanceVI_1{
stateMASTER//指定是为主机
interfaceeth0//网络接口
virtual_router_id51//虚拟路由Id
priority100//优先级,备机的优先级一定要小于这个数
advert_int1
authentication{
auth_typePASS
auth_pass1111
}
virtual_ipaddress{
192.168.2.110
virtual_server192.168.2.1104000{
delay_loop2
lb_algorr//轮循算法,将外部请求按顺序轮流分配到集群中的两台真机上
lb_kindDR
persistence_timeout50
protocolUDP
real_server192.168.2.1214000{
weight2//第一台真机的权值设置
TCP_CHECK{
connect_timeout3
nb_get_retry3
delay_before_retry3
connect_port4000
real_server192.168.2.1224000{
weight1//第二台真机的全值设置
备机的keepalived.conf文件的具体配置如下:
router_idLVS_DEVEL_2//随便取,不重复就行
stateBACKUP//指定是为备机
interfaceeth0
virtual_router_id51
priority90//优先级小于主机的100
lb_algorr//轮循算法,将外部请求按顺序轮流分配到集群中的两台真机上
weight1//第一台真机的权值设置
3.3.4配置真机脚本
case"
$1"
in
startLVSofRealServer"
/sbin/ifconfiglo:
0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Lvs 安装 测试 文档 20