Chinaunix首页 | 论坛 | 博客
  • 博客访问: 694861
  • 博文数量: 85
  • 博客积分: 1797
  • 博客等级: 上尉
  • 技术积分: 1238
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-02 08:53
个人简介

职位:技术总监 1、精通c++(linux平台、vc++Mfc、qt)、java、php、unity3d,略懂python 2、用c++开发过嵌入式产品,用c++开发过大型银行运维产品 3、用java开发大型银行运维产品,学校教务系统 4、用php开发进销存系统(在销售中),用php开发淘宝小程序 5、用unity3d开发衣柜设计软件,在运营中

文章分类

全部博文(85)

分类: LINUX

2011-10-12 07:58:43

一、集群

 在各种网络服务普遍应用的今天,随网络速度的提高以及用户的增加,在一些繁忙的场合,单凭一台机器已经无法就能应付所有的网络请求了。为了解决这个问题,许多用户就采 用一组cluster(集群)来代替单一的机器。cluster可以将多台计算机连接起来协同运作以对外提供各种服务,比如ApacheFTPMail等。

Linux上最常见的、也可能是运用最广泛的cluster方案就是LVS(Linux Virtual
Server),很高兴LVS也是一个中国人创建和开发的开放源码项目。LVS1998年开始,发展到现在已经是一个比较成熟的技术项目了。有许多比较著名网站和组织都在使用LVS架设的cluster,比如:sourceforge.net等。

lvs基础上,出现了很多商业软件,如redhatpiranhaturbo linuxturbo cluster,都是基于lvs的核心代码。

二、Lvm安装配置过程 1、安装ipvsadmin

从安装盘中找到ipvsadm-1.24-10.i386.rpm

rpm  -ivh  ipvsadm-1.24-10.i386.rpm

2查看系统是否支持ipvs方法:

如果你能在目录/lib/modules/2.*.*-*/kernel/net/ipv4/ipvs中看到ip_vs_*文件,就证明你的系统已经支持ipvs.现在内核 2..* 的都已经默认支持了ipvs了,

modprobe -l | grep ipvs

[root@localhost ipvs]# modprobe -l | grep ipvs

/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs/ip_vs.ko

/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs/ip_vs_dh.ko

/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs/ip_vs_ftp.ko

/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs/ip_vs_lblc.ko

/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko

/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs/ip_vs_lc.ko

/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs/ip_vs_nq.ko

/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs/ip_vs_rr.ko

/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs/ip_vs_sed.ko

/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs/ip_vs_sh.ko

/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs/ip_vs_wlc.ko

/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs/ip_vs_wrr.ko

lsmod |grep ip_vs

[root@localhost ipvs]# lsmod |grep ip_vs

ip_vs                  78081  0

3、环境:三台电脑

192.168.1.96 前端负载均衡器

192.168.1.97 真实服务器

192.168.1.97 真实服务器

使用的虚拟ip为:192.168.1.65

4、测试方法:

使用服务器上的httpd测试,通过浏览器访问。

5Dr模式配置步骤:

96电脑(前端负载均衡器):

安装ipvsadm

rpm  -ivh  ipvsadm-1.24-10.i386.rpm

配置虚拟ip

ifconfig eth0:0 192.168.1.65 netmask 255.255.255.255 broadcast 192.168.1.65 up

route add -host 192.168.1.65 dev eth0:0

配置转发功能:

echo 1 > /proc/sys/net/ipv4/ip_forward 

增加虚拟服务器:

ipvsadm -A -t 192.168.1.65:80 -s wlc

增加真实服务器:

ipvsadm -a -t 192.168.1.65:80 -r 192.168.1.97 -g

ipvsadm -a -t 192.168.1.65:80 -r 192.168.1.98 –g

删除真实服务器(可选):

ipvsadm -d  -t 192.168.1.65:80 -r 192.168.1.98

查看lvs服务器清单:

        

启动httpd

chkconfig httpd on          

       service httpd start   

97/98电脑(真实服务器)

关闭arp

把下面四句添加在/etc/sysctl.conf  文件 最后:
      net.ipv4.conf.lo.arp_ignore = 1
         net.ipv4.conf.lo.arp_announce = 2
         net.ipv4.conf.all.arp_ignore = 1
         net.ipv4.conf.all.arp_announce = 2

配置ip路由:

ifconfig lo:0 192.168.1.65 netmask 255.255.255.255 broadcast 192.168.1.65 up
      route add -host 192.168.1.65 dev lo:0

启动httpd

chkconfig httpd on          

       service httpd start   

改变网页的起始页:

97上:echo ' the site is 192.168.1.97' > /var/www/html/index.html

98上:echo ' the site is 192.168.1.98' > /var/www/html/index.html

6测试

      在浏览器输入:, 然后不断刷新,会看到不同的结果。

the site is 192.168.1.97the site is 192.168.1.98交替出现。另外在96机子上执行ipvsadm 最后面一列的数字会在增长,说明转发的次数在增加。

7、存在的问题:

1、 上面仅仅是使用了lvs,但实际情况下,一个前端负载均衡器会形成一个单点,如果这个负载均衡器挂了,整个集群就挂了,所以还应该有个备用负载均衡器,两个负载均衡器通过heartbeat或者keepalived来管理

2、 在实验中有时会出现负载均衡不均衡的问题,比如98机子始终切换不过去,刚配置完三台电脑的时候挺好的,但到第二天在开虚拟机的时候会出现这种情况。下面增加ldirectord后,这个问题也自然而然的解决了。

3、 Lvs只能分配,但不能知道那个服务器是否挂了,这需要使用ldirectord(或keepalived)来探测服务器的可用性。

8、结论

        Lvs只能解决负载均衡的问题,要想解决高可用的服务器,lvs要与其他软件搭配。

    有两种搭配方式:

Lvs + heartbeat + ldirectord

Lvs + keepalived

阅读(5368) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~