仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 665|回复: 9
打印 上一主题 下一主题

[CentOS(社区)] 来一发构建百万会见量电子商务网站之LVS负载平衡

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:13:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
小知识:社区支持的免费Linux发行版一般不会从商业支持中寻求什么好处,但对CentOS来说,这种情况即将改变。
会见量凌驾100万的电子商务网站手艺架构




本连载首篇先容到电子商务网站高功能、高可用办理计划。从架构图上的计划,使用的是LVS+keepalived负载平衡。完成高功能、高可用办理计划(办事器构成集群,到达负载平衡,高功能、高可用、高可伸缩性的办事器集群)互联网->LVS负载平衡(前端四层负载平衡器)。
会见量凌驾100万的电子商务网站手艺架构.PNG图,电子商务网站要接受高会见量,硬件设备的支持是全部体系的基本。体系软件的支持也是必不成少的主要构成部分。
本文具体先容传统WEB前段负载平衡层,并对照罕见有多种负载平衡办理计划。

1、本文要点:
1.LVS+keepalivedlinux办事器经由过程源码编译安装。
2.软件负载平衡,四层负载平衡器。
3.CentOS5.6情况下布署(32位)linux办事器版。
4.电子商务网站高功能、高可用办理计划,LVS负载平衡(前端四层负载平衡器)。
5.构建历程的要点讲授,重点步骤申明。
6.本计划屡次用于实践临盆使用中,并能够天真变通使用。


2、软件负载平衡罕见几种计划:

1.LVS+keepalived负载平衡,LVS+KEEPALIVED是LINUX下的四层负载平衡软件
2.Haproxy做负载平衡
3.heartbeat+heartbeat-ldirectord+lvs
3、硬件的负载平衡办理计划有:
1.F5负载平衡(F5负载平衡LTMV9HA)
2.思科负载平衡产物(CISCO(思科)ACE-4710-0.5F-K9)
3.思杰负载平衡产物(CITRIXNetScaler尺度版(9000)负载平衡)
Cisco、Juniper、F5、Radware、Huawei等品牌收集设备。

4、名词注释:
LVS(LinuxVirtualServer)LVS是LinuxVirtualServer的缩写,意义是Linux假造办事器。LVS是一个开源的软件,由卒业于国防科技年夜学的章文嵩博士于1998年5月创建,能够完成LINUX平台下的复杂负载平衡。
HA(HighAvailability),则是高可用的意义。

5、电子商务网站负载平衡架构:
电子商务网站负载平衡架构,选择本架构的缘故原由是。由于LVS+KEEPALIVED是LINUX下的四层负载平衡软件。其有以下特性:
LVS集群接纳IP负载平衡手艺和基于内容哀求分发手艺。调剂用具有很好的吞吐率(在DR形式下),将哀求平衡地转移到分歧的办事器上实行,且调剂器主动屏障失落办事器的妨碍,从而将一组办事器组成一个高功能的、高可用的假造办事器。全部办事器集群的布局对客户是通明的,并且无需修正客户端和办事器真个步伐。为此,在计划时必要思索体系的通明性、可伸缩性、高可用性和易办理性。一样平常来讲,LVS集群接纳三层布局,其次要构成部分为:
  A、负载调剂器(loadbalancer),它是全部集群对表面的前端机,卖力将客户的哀求发送到一组办事器上实行,而客户以为办事是来自一个IP地点(我们可称之为假造IP地点)上的。
  B、办事器池(serverpool),是一组真正实行客户哀求的办事器,即realserver,实行的办事有WEB、MAIL、FTP和DNS等。
  C、同享存储(sharedstorage),它为办事器池供应一个同享的存储区,如许很简单使得办事器池具有不异的内容,供应不异的办事。
LVS的IP负载平衡手艺完成:
  今朝IP负载平衡手艺是在负载调剂器的完成手艺中效力最高的。LVS集群中完成的三种IP负载平衡手艺,分离是:
VirtualServerviaNetworkAddressTranslation(VS/NAT):也有说端口映照的,其方针是将一组办事器组成一个高功能的、高可用的假造办事器。由于这类手艺简单构成单点妨碍,从而形成网路没法会见,而且存在带宽瓶颈。以是LVS又供应了上面两种完成。

VirtualServerviaIPTunneling(VS/TUN):经由过程IP地道完成假造办事。
VirtualServerviaDirectRouting(VS/DR):间接路由完成假造办事器的***(负载才能最强),本文搭建的就是DR形式。

集群:
所谓集群是指由多个自力的盘算机节点组成的在收集中体现为单一的为客户事情站供应高牢靠性办事的体系。在年夜型项目中,常常有大批的哀求并发,如许就给办事器带来了很年夜的负载,而创建集群体系的目标就是为懂得决负载平衡和高可用性的成绩。

负载平衡:
负载平衡是指大批的并发会见或数据流量分管到多台节点设备上分离处置,削减用户守候呼应的工夫。既然办事是在多台节点设备上的运转,那末要屏障负载平衡办事器的生效,就要在主备机上都运转HighAvailability监控步伐,来监控对方的运转情况。经由过程这类体例,能够完成体系的高可用性,即当备份机不克不及在必定的工夫内收到主办事器的举动信息时,它就接受主办事器的办事IP并持续供应办事。当备份机又从主办事器收到举动信息,它就开释办事IP地点,由主办事器供应办事。

经由过程以上的先容,信任人人对集群手艺及其使用范畴已有了微观上的懂得。上面,我们经由过程一个实践的案例来说解怎样在实战中创建一个具有高可用性的集群体系。读者能够根据本文先容的***举行集群实行,只必要筹办两台一般的PC机摹拟办事器便可。这里我们在两台PC机上都安装了SuSELinux操纵体系,并以IBM产物(WASNDIBMHTTPServer,EDGEComponent等)作为构建集群的软件撑持,完成一个可拓展、高功能,具有高可用性的集群体系。
6、架构图:


7、体系情况:CentOS5.632位(体系最小形式安装)
64位体系安装成绩提醒:
试过在64位时编译会堕落,提醒找不到一些内核库文件,文件称号含了64字样的原因,编译有成绩,一一修正修正原安装包很贫苦。还不晓得会有其他未知BUG。
关头点:keepalived是运转在LVS基本上的,LVS安装ipvsadmin#yuminstallipvsadmin(省往编译版本配对成绩)
良多伴侣利用编译安装不乐成,是因为ipvsadmin的版本跟你利用的linux内核纷歧致。
起首请检察本人Linux操纵体系内核的版本下令:uname-a下令:cat/proc/version下令:lsb_release-a

8、编译安装ipvsadm
上面看我怎样编译安装的,linux体系使用中编译安装是我力荐的安装体例。

起首下载软件ipvsadm
安装ipvsadm。Ipvsadm的官方下载地点为http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz,解压后先做一个链接文件,把目次/usr/src/kernels/2.6.18-8.el5-i686/链接为/usr/src/linux,不如许做的话,实行./configure剧本将报错。运转下令lnCs/usr/src/kernels/2.6.18-8.el5-i686/usr/src/linux做好链接,再运转不带参数的剧本./configure,然后实行”make;makeinstall”完成安装

下载后,安装ipvsadmin
编译时分报make[1]:***[libipvs.o]Error1毛病

可是下了ipvsadm后编译出了成绩:
办理举措大概不但一种;我是用的上面的举措弄定的:

ln-s/usr/src/kernels/2.6.x-xx.EL-i686//usr/src/linux
cdipvsadm-1.24
make&&makeinstall



ipvsadmin-v应当能看到以下信息:
[root@localhostipvsadm-1.24]#ipvsadm-v
ipvsadmv1.242005/12/10(compiledwithpoptandIPVSv1.2.0)



申明编译安装乐成!
9、keepalived接纳VRRP机制
别的注重keepalived在Linux下的(VRRP)假造路由冗余协定,keepalived接纳VRRP机制,那末就会触及负载平衡办事器毗连的路由器(互换机)
VRRP协定将两台或多台路由器设备假造成一个设备,对外供应假造路由器IP(一个或多个)。
实践利用中,假如你毗连的利用的路由器是傻瓜型的话,能够疏忽这个成绩。
假如你用是智能路由器,设置了划定规矩的话,那就要注重了,一些划定规矩会将VRRP收回的形态检测包,当作病毒屏障失落,最初招致的了局是keepalived负载平衡器之间的失利切换failover,是经由过程VRRPv2(VirtualRouterRedundancyProtocol)stack完成的。
还大概招致不克不及检测后端实在办事器的存活形态(检测web办事器的形态)。

10、相干常识点
1.keepalived经由过程对办事器池工具的安康反省,完成对生效呆板/办事的妨碍断绝(官方公用名词“Checkers”卖力实在办事器的安康反省healthchecking)
2.负载平衡器之间的失利切换failover,是经由过程VRRPv2(VirtualRouterRedundancyProtocol)stack完成的。
不就是(LVS-DR,LVS-NAT,LVS-TUN)3种形式!

11、收集情况:
lvs-master:192.168.9.201(主)
lvs-backup:192.168.9.202(备)
vip:192.168.9.200(假造ip)
web1:192.168.9.203(后端实在WEB办事器1)
web2:192.168.9.204(后端实在WEB办事器2)
netmask:255.255.255.0(掩码)
gateway:192.168.9.1(网关)

收集拓扑如上图:具体见“LVS集群的系统布局,构建健壮的系统布局里负载平衡层、实在办事器层、后端同享存储层都是相反相成”文章。

12、LVS+keepalivedlinux办事器经由过程源码编译安装shell剧本


echo"============================更新体系工夫======================"
yuminstall-yntp
ntpdatetime.nist.gov
echo"0001***/usr/sbin/ntpdatetime.nist.gov"/etc/crontab
echo“=========================安装ipvsadm、keepalived==================”
#Funciont:Backupwebsiteandmysqldatabase
#Author:JimmyLi
#Website:http://jimmyli.blog.51cto.com/
#IMPORTANT!!!PleaseSettingthefollowingValues!
[root@master~]#cd/usr/local/src
[root@master~]#wgethttp://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
[root@master~]#wgethttp://www.keepalived.org/software/keepalived-1.1.17.tar.gz
[root@master~]#ln-sv/usr/src/kernels/2.6.18-194.el5-i686//usr/src/linux
[root@master~]#tar-zxvfipvsadm-1.24.tar.gz
[root@master~]#cdipvsadm-1.24
[root@master~]#make;makeinstall
[root@master~]#cd..
[root@master~]#tar-zxvfkeepalived-1.1.17.tar.gz
[root@master~]#cdkeepalived-1.1.17
[root@master~]#./configure
configure:error:
!!!OpenSSLisnotproperlyinstalledonyoursystem.!!!
!!!CannotincludeOpenSSLheadersfiles.



办理举措:

[root@master~]#yum-yinstallopenssl-devel
[root@master~]#./configure
[root@master~]#make;makeinstall



编译的时分呈现这个提醒,申明keepalived和内核分离了,假如不是如许的,必要加上这个参数



./configure--with-kernel-dir=/kernel/path
Keepalivedconfiguration
------------------------
Keepalivedversion:1.1.17
Compiler:gcc
Compilerflags:-g-O2
ExtraLib:-lpopt-lssl-lcrypto
UseIPVSFramework:Yes
IPVSsyncdaemonsupport:Yes
UseVRRPFramework:Yes
UseLinkWatch:No
UseDebugflags:No





echo“=======================设置keepalived===========================”
#Funciont:Backupwebsiteandmysqldatabase
#Author:JimmyLi
#Website:http://jimmyli.blog.51cto.com/
#IMPORTANT!!!PleaseSettingthefollowingValues!
[root@master~]#cp/usr/local/etc/rc.d/init.d/keepalived/etc/rc.d/init.d/
[root@master~]#cp/usr/local/etc/sysconfig/keepalived/etc/sysconfig/
[root@master~]#mkdir/etc/keepalived
[root@master~]#cp/usr/local/sbin/keepalived/usr/sbin/
[root@master~]#vi/etc/keepalived/keepalived.conf
!ConfigurationFileforkeepalived

global_defs{
notification_email{
jimmyli@jimmyli.blog.51cto.com
}
notification_email_fromjimmyli@jimmyli.blog.51cto.com#http://jimmyli.blog.51cto.com/
smtp_serverjimmyli.blog.51cto.com
#smtp_connect_timeout30
router_idLVS_DEVEL
}

#VIP1
vrrp_instanceVI_1{
stateMASTER#备份办事器大将MASTER改成BACKUP
interfaceeth0
lvs_sync_daemon_intefaceeth0
virtual_router_id51
priority100#备份办事大将100改成90
advert_int5
authentication{
auth_typePASS
auth_pass1111
}
virtual_ipaddress{
192.168.9.200
#(假如有多个VIP,持续换行填写.)
}
}

virtual_server192.168.9.20080{
delay_loop6#(每隔6秒查询realserver形态)
lb_algowlc#(lvs算法)
lb_kindDR#(DirectRoute)
persistence_timeout60#(统一IP的毗连60秒内被分派到统一台realserver)
protocolTCP#(用TCP协定反省realserver形态)

real_server192.168.9.20380{
weight100#(权重)
TCP_CHECK{
connect_timeout10#(10秒无呼应超时)
nb_get_retry3
delay_before_retry3
connect_port80
}
}
real_server192.168.9.20480{
weight100
TCP_CHECK{
connect_timeout10
nb_get_retry3
delay_before_retry3
connect_port80
}
}
}
[root@master~]#servicekeepalivedstart|stop
[root@master~]#chkconfigClevel2345keepalivedon
echo“======================设置realserver=========================”
#Funciont:Backupwebsiteandmysqldatabase
#Author:JimmyLi
#Website:http://jimmyli.blog.51cto.com/
#IMPORTANT!!!PleaseSettingthefollowingValues!
[root@web_1~]#vi/root/lvs_real.sh
#!/bin/bash
#http://jimmyli.blog.51cto.com/
#Configrealserver
SNS_VIP=192.168.9.200

/etc/rc.d/init.d/functions

case"$1"in
start)
/sbin/ifconfiglo:0$SNS_VIPnetmask255.255.255.255broadcast$SNS_VIP
/sbin/routeadd-host$SNS_VIPdevlo:0
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
sysctl-p>/dev/null2>&1
echo"RealServerStartOK"

;;
stop)
/sbin/ifconfiglo:0down
/sbin/routedel$SNS_VIP>/dev/null2>&1
echo"0">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo"0">/proc/sys/net/ipv4/conf/lo/arp_announce
echo"0">/proc/sys/net/ipv4/conf/all/arp_ignore
echo"0">/proc/sys/net/ipv4/conf/all/arp_announce
echo"RealServerStoped"
;;
*)
echo"Usage:$0{start|stop}"
exit1
esac

exit0
[root@web_1~]#chmod+x/roo/lvs_real.sh
[root@web_1~]#/root/lvs_real.shstart
[root@web_1~]#ifconfig

[root@web_1~]#echo“/root/lvs_real.shstart”>>/etc/rc.local



echo“=====================测试LVS+keepalived========================”
#LVS_master、LVS_backup上开启keepalived,LVS_master先绑定VIP
#http://jimmyli.blog.51cto.com/
LVS_master:

LVS_backup:



#剖析域名,测试会见

#测试封闭LVS_master,长久的偷换后,LVS_backup即刻代替事情
LVS_backup代替LVS_master绑定VIP
LVS_backup卖力转发
LVS_master重启完成后,就会主动接回把持权,持续卖力转发
#测试封闭个中一台realserver
经由过程下面测试能够晓得,当realserver妨碍大概没法供应办事时,负载平衡器经由过程安康反省主动把生效的呆板从转发行列删撤除,完成妨碍断绝,包管用户的会见不受影响
#重启被封闭的realserver

当realserver妨碍规复后,负载平衡器经由过程安康反省主动把规复后的呆板增加到转发行列中

总结:
实践临盆情况中,keepalived长短常不乱的,而且可以接受巨量并发数。

文章中没有触及到后端实在办事器的架构设置,我以为一个完全的高功能WEB架构应当,后端也是重中之重的,完全的一部分,必备可少。
本文出自“JimmyLi我站在伟人肩膀上”博客,请务必保存此出处http://jimmyli.blog.51cto.com/3190309/736648





小知识:RHEL是很多大型企业采用的操作系统,但需要向RedHat购买使用权,有偿享受技术支持、版本升级等,所以推荐大家使用CentOS。
山那边是海 该用户已被删除
沙发
发表于 2015-1-16 21:54:17 | 只看该作者

来一发构建百万会见量电子商务网站之LVS负载平衡

感谢老师和同学们在学习上对我的帮助。
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-19 09:13:27 | 只看该作者
其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。
分手快乐 该用户已被删除
地板
 楼主| 发表于 2015-1-28 06:01:36 | 只看该作者
再次,Linux是用C语言编写的,我们有学习C语言的基础,读程序和编写代码方面存在的困难小一点,也是我们能较快掌握的原因之一。?
深爱那片海 该用户已被删除
5#
发表于 2015-2-5 19:36:12 | 只看该作者
Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。
第二个灵魂 该用户已被删除
6#
发表于 2015-2-13 10:00:54 | 只看该作者
工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。
老尸 该用户已被删除
7#
发表于 2015-3-3 20:26:34 | 只看该作者
我是学习嵌入式方向的,这学期就选修了这门专业任选课。
8#
发表于 2015-3-11 13:45:24 | 只看该作者
了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-18 22:11:49 | 只看该作者
Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。
透明 该用户已被删除
10#
发表于 2015-3-26 20:07:00 | 只看该作者
甚至目前许多应用软件都是基于它的。可是没有哪一个系统是十分完美的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-14 09:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表