今天做了LVS的集群配置,做完了之后已经能用了,可是发现问题,第一个页面连接过去的时候是“找不到服务器”,第二个页面连接要经过刷新几次之后才能显
示出全部完整的的信息(有时是图片下载没有全部,有时候时css样式没有全部显示出来),在这我贴出我做的过程,希望高手给与指点:
环境:
OS:linux –rh4 –u4
内核版本:linux-2.6.9-42.ELsmp
Director PC:192.168.1.57
Virtual ip :192.168.1.254 255.255.255.0
Real server : 192.168.1.202
Real server : 192.168.1.203
由于linux的内核版本支持LVS,所以就直接安装ipvs了。
1.首先在DIRECTOR 上面操作:
这只需要下载一个ipvsadm-1.24.tar.gz
(我下载过一个rpm的包,但是安装之后发现它报错是用户不存在,这是为什么?
如下
[root@localhost dwt]# rpm -ivh ipvsadm-1.24-6.src.rpm
1:ipvsadm warning: user wensong does not exist - using root
warning: group wensong does not exist - using root
warning: user wensong does not exist - using root)
warning: group wensong does not exist - using root
########################################### [100%]
)
# tar zxvf ipvsadm-1.24.tar.gz
# cd ipvsadm-1.24
# ls -alh /usr/src/ //查看有没有linux目录,如果没有根据自己的内核版本做个软连接,否则在make时会报错。
# ln -s /usr/src/kernels/2.6.9-42.EL-i686/ /usr/src/linux
# make
# make install
[root@localhost network-scripts]# touch ifcfg-eth0:0
[root@localhost network-scripts]# vi ifcfg-eth0:0
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.254
NETMASK=255.255.255.255
BROADCAST=192.168.1.255
~
~~
"ifcfg-eth0:0" 6L, 111C written
[root@localhost network-scripts]# ifconfig eth0:0 192.168.1.254 netmask 255.255.255.255 up
[root@localhost network-scripts]# route add -host 192.168.1.254 dev eth0:0
[root@localhost network-scripts]# service network restart
[root@localhost net]# ipvsadm -A -t 192.168.1.254:8080 -s rr
[root@localhost net]# ipvsadm -a -t 192.168.1.254:8080 -r 192.168.1.202:8080 -g
[root@localhost net]# ipvsadm -a -t 192.168.1.254:8080 -r 192.168.1.203:8080 -g
执行成功查看 /var/log/message中会有以下提示:
Dec 2 17:37:53 localhost kernel: IPVS: Registered protocols (TCP, UDP, AH, ESP)
Dec 2 17:37:53 localhost kernel: IPVS: Connection hash table configured (size=4096, memory=32Kbytes)
Dec 2 17:37:53 localhost kernel: IPVS: ipvs loaded.
Dec 2 17:37:53 localhost kernel: IPVS: [rr] scheduler registered.
[root@localhost net]# service iptables stop
2、realserver服务器
ifconfig eth0:0 192.168.1.254 netmask 255.255.255.255 broadcast 192.168.1.254 up
/sbin/route add -host 192.168.0.100 dev eth0:0
echo "1" > /proc/sys/net/ipv4/ip_forward
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
echo "0" > /proc/sys/net/ipv4/conf/lo/rp_filter
而且也都在两个real server上面使用ifconfig 查看 eth0 eth0:0 lo 都是显示正常,都启用。
Iptables 也全部关闭。
3.测试
测试过程一切正常,连续打开IE 浏览 [url]http://192.168.1.254:8080[/url] 都是分别浏览到不同的页面,而且在DR的服务器上输入ipvsadm –L
[root@localhost ipv4]# ipvsadm -L
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddress: Port Scheduler Flags
-> RemoteAddress : Port Forward Weight ActiveConn InActConn
TCP 192.168.1.254 : webcache rr
-> 192.168.1.203 : webcache Route 1 3 4
-> 192.168.1.202 : webcache Route 1 5 1
我不知道三个服务器的虚拟端口我设置的都是一样的eth0:0是否可以,我看有些文档的real
server的端口设置lo:0,子网掩码也有的是255.255.255.255
有的是255.255.255.0,因为是第一次做没有甚么经验,希望有经验的人给我些建议。
清除
ipvsadm
表:
/sbin/ipvsadm –C
一下为部分参数:
-A
增 加一个虚拟服务,该服务由协议、IP
地址和端口号组成,例如:
-A -t 10.1.1.1:80 (
增加一格虚拟服务,其协议(-t
表示tcp
,-u
表示udp)
为TCP
、IP
为10.1.1.1
、 端口号为80
。
-s
指 定服务采用的算法,常用的算法参数如下:
-
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
)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
/sbin/ipvsadm -a -t 10.1.1.1:80 -r 192.168.1.226:80 -g -w 1
-a
表 示往一个服务内增加一个real server
-r
指 定real server
的IP
地址
-w
表 示权重
-g
表示使用DR
方 式,-m
表示NAT
方式,-i
表示tunneling
方式。
分享到:
相关推荐
LVS的安装与配置 LVS入门与详解 LVS LVS的安装与配置 LVS入门与详解 LVS
LVS
Linux LVS + Keepalived 详细安装配置文档 LVS(Linux Virtual Server)是一种开源的负载均衡解决方案,可以将多个服务器组成一个高性能、高可用的虚拟服务器。Keepalived 是一个基于 LVS 的高可用性解决方案,提供...
记录我自己亲手配置lvs负载均衡的整个过程
MySQL群集+LVS负载均衡安装配置实施
对于安装lvs有很大帮助,特别是刚入门的人,大家可以看看
LVS的安装和配置,详细的说明了lVS的配置,以及作用,还有算法说明和解释
LVS配置脚本,针对最简单的两天真实服务器来配置。
RedHat LVS基于IP负载均衡的配置文档
CentOS上配置LVS DR集群.docx CentOS上配置LVS DR集群.docx
LVS配置是指在Linux系统上安装和配置LVS服务器的过程,包括安装必要的软件包、配置LVS服务器、启动Piranha配置工具等步骤。 一、安装LVS需要安装的软件包 在RedHat AS5系统上,需要安装以下软件包: 1. ipvsadm-...
lvs配置文档lvs配置文档lvs配置文档lvs配置文档
安装配置LINUX集群,keepalived+lvs图文并茂详细讲解
lvs DR keepalived tun 安装附图
讲述LINUX集群LVS负载均衡的搭建、相关配置及部署
配置 LVS-DR 模式需要在Director Server上安装ipvsadm管理程序,并配置虚拟IP地址。在Real Server上,需要配置ARP忽略和ARP公告,以确保Real Server可以响应Director Server的请求。 LVS-NAT 模式 LVS-NAT 模式...
内容:脚本部署lvs.doc、piranha...说明:LVS配置要有一定的基础知识,需要耐心的配置和解决问题。 两种方式都已配置成功,但文档不能保证你立马配置成功,一些环境和其他意外情况要自己搞定。 祝各位配置成功!!!
NULL 博文链接:https://shihuan830619.iteye.com/blog/2291978
LVS的应用实例,完整实例配置过程LVS的应用实例LVS的应用实例
大流量WEB架构-LVS集群配置.