`
wataxi
  • 浏览: 202950 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

lvs配置与安装

    博客分类:
  • lvs
阅读更多

今天做了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)TCPIP10.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 serverIP 地址
-w 表 示权重
-g 表示使用DR 方 式,-m 表示NAT 方式,-i 表示tunneling 方式。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics