冯桂莲
摘 要:Linux操作系统不断走向成熟,其健壮性不断增强,同时提供了GUN软件和标准化的PVM、MPI消息传递机制,由于在普通PC机上提供了对高性能网络的支持,因此大大推动了基于Linux的集群系统的发展。为了提高服务器集群的处理性能和可靠性,通过编写PHP脚本网页文件,以VMware Workstation作为虚拟机、在Red Hat Enterprise服务器操作系统下、以Secure CRT作为远程管理软件,用桥接的虚拟机网卡模式,作者设计并测试了基于Linux的LAMP服务器集群系统,提高了集群计算机的性价比。
关键词:集群;高可用;Linux;LAMP
中图分类号:TP393 文献标识码:A
Design and Reality of the LAMP Sever Cluster System in Linux
FENG Guilian
(Qinghai University for Nationalities Institute of Physics and Electronic Information Engineering,Xining 810007,China)
Abstract:Linux operating system continues to mature,its robustness continues to increase,and provides the GUN and mechanism for message transfer of the standard PVM and MPI,because of the support of the high performance network on the ordinary PC,promoted the development of cluster system based on Linux greatly.In order to improve the processing performance and reliability of the server cluster,by writing PHP script web files,using workstation VMware as a virtual machine,in the Red Hat Enterprise server operating system,using secure CRT as a remote management software,by the bridge mode of virtual machine network card,the author designed the LAMP sever cluster system based on Linux,realized the features of high availability and load balancing,improved the cost performance of the cluster computer.
Keywords:cluster;high availability;Linux;LAMP
1 引言(Introduction)
当今计算机已经进入以网络为中心的计算时代。在20世纪90年代中期,万维网的出现以其简单的操作方式将图文并茂的网上信息带给普通大众,WEB也正在一种信息发送机制成为一种服务平台,大量的服务和应用(如电子商务)都是围绕着WEB进行的[1]。现在的WEB服务越来越多地使用动态主页等CPU密集型应用,这对服务器的性能有较高的要求。未来的网络服务会提供更丰富的内容、更好的交互性、更高的安全性等,需要服务器具有更强的CPU和I/O处理能力[2]。九十年代末期,Linux操作系统不断走向成熟,它的健壮性不断增强,并且提供了GUN软件和标准化的PVM、MPI消息传递机制,最重要的是Linux在普通PC机上提供了对高性能网络的支持,这样就大大推动了基于Linux的集群系统的发展。作者设计并实现了基于Linux的LAMP服务器集群系统,实现了高可用和负载均衡的功能,提高了集群计算机的性价比。
2 集群(Cluster)
2.1 集群的定义
集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是用户从来不会意识到集群系统底层的节点,在他们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删除该集群系统的节点[3]。
2.2 集群的分类
集群计算机按功能和结构不同可分为以下几类。
(1)高可用集群
高可用集群一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。
(2)负载均衡集群
负载均衡集群运行时一般通过一个或者多个前端负载均衡器将工作负载分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性[4]。
(3)高性能计算集群
高性能计算集群采用将计算任务分配到集群的不同计算节点而提高计算能力,因而主要应用在科学计算领域。
(4)网格计算或网络集群
网格计算或网络集群是一种与集群计算相关的技术。网格与传统集群的主要差别在于网格是连接一组相关的计算机,它的运作更像一个计算公共设施而不是一个独立的计算机[5]。
3 LAMP架构(LAMP instructure)
LAMP由Linux操作系统、Apache Web服务器、MySQL数据库和PHP脚本语言四种技术组成,是基于B/S的WEB系统三层体系,其特点是客户端要求低、可维护性高、数据安全性高和实时交互性好,而B/S架构的三层体系的分层式设计已成为互联网行业的一盏明灯。LAMP常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台[6]。
4 LAMP服务器集群的设计(Design of the LAMP
sever cluster system)
4.1 前期准备
LAMP集群的作用已经不言而喻,本设计实现了LAMP架构集群。通过编写PHP脚本网页文件,Windows XP客户端通过http访问VIP,获得网页可显示出RealServer服务器(Apache和PHP)和MySQL服务器完成协同工作[7]。
(1)实现环境
虚拟机:VMware Workstation
服务器操作系统:Red Hat Enterprise 5
客户机(测试):Windows XP
远程管理软件:Secure CRT 5.1
虚拟机网卡模式为桥接,各主机的IP如下:
路由器的内网接口IP:192.168.18.254
LVS1:192.168.18.28
LVS2:192.168.18.219
RealServer1:192.168.18.231
RealServer2:192.168.18.232
RealServer3:192.168.18.233
MySQL:192.168.18.218
VIP:192.168.18.250
(2)部署阶段
根据系统需求,对LVS1服务器的配置如下(由于篇幅关系,只给出部分参数命令):
wenhl-LVS1#route add default gw 192.168.18.254
wenhl-LVS1#vim/etc/sysctl.conf
net.ipv4.ip_forward=1
wenhl-LVS1#sysctl–p
wenhl-LVS1#mount/dev/cdrom/mnt/
wenhl-LVS1#vim/etc/yum.conf
[Server]
name=rhel_yum
baseurl=file:///mnt/Server
…
wenhl-LVS1#/etc/init.d/keepalived start
对LVS2的配置类同,不再赘述。
对RealServer1\2\3的配置相同,如下所示:
wenhl-RS#mount/dev/cdrom/mnt/
wenhl-RS#yum -y install httpd
wenhl-RS#/etc/init.d/httpd start
wenhl-RS#chmod +x vip
wenhl-RS#/etc/init.d/vip start
wenhl-RS#cat vip #!/bin/bashVIP=192.168.18.250
ROUTE=192.168.18.254
start() {
…wenhl-RS#cat /var/www/html/index.html
This is wenhaolongs LVS test ! ip is 231.
This is wenhaolongs LVS test ! ip is 232.
This is wenhaolongs LVS test ! ip is 233.
4.2 测试阶段
测试当前配置时,得到如图1所示的结果。
wenhl-LVS1#ipvsadm-ln
IP Virtual Server version 1.2.1(size=4096)
Prot LocalAddress:Port Scheduler Flags
->RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.18.250:80 rr
->192.168.18.232:80 Route 1 0 0
->192.168.18.233:80 Route 1 0 0
->192.168.18.231:80 Route 1 0 0
通过相同的测试方法可以得到分发给真实机2和3的运行结果,同图1。
继续键入以下命令:
wenhl-RS#yum-y install php*
wenhl-RS2#vim/etc/httpd/conf/httpd.conf
LoadModule php5_module/usr/lib/httpd/modules/libphp5.so
AddType application/x-httpd-php.php
wenhl-RS1#vim/var/www/html/test.php
<?phpphpinfo()
?>
测试当前配置,得到如图2所示的运行结果。
Fig.2 The cooperative work of apache and php
再进行MySQL的配置:
wenhl-mysql#yum-y install mysql-server
wenhl-mysql#/etc/init.d/mysqld start
wenhl-RS#vim/etc/php.ini
wenhl-mysql#/etc/init.d/mysqld restart
wenhl-RS#service httpd restart
wenhl-mysql#mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
…
mysql_close();
?>
测试当前配置结果,得到如图3所示的运行结果。
Fig.3 The client access to VIP three times
自此,Windows XP客户机通过http访问虚拟IP地址得到真实的三台服务器上的连接MySql数据库的信息,说明LAMP架构服务器集群系统搭建成功。
5 结论(Conclusion)
该基于Linux的LAMP服务器集群系统实现了高可用和负载均衡的功能,但是由于没有真实的应用场景,所以负载均衡算法比较简单,如果实际应用场景的计算机硬件配置差异过大、真实服务器的活跃连接数不一致时,集群的整体工作效果会受到极大的影响。计算机集群系统以及基于Linux操作系统的计算机集群,目前都是计算机应用领域的研究热点。当今非常火热的云计算技术,就是高可用、高可靠、均衡负载以及高性能计算的综合[8],今后的集群技术一定会沿着这个方向发展。
参考文献(References)
[1] 王国明.集群计算系统的分析与研究[J].电脑知识与技术,2006(32):152-156.
[2] 胡晓军.Linux服务器集群系统的研究和应用[D].广东工业大学,2005.
[3] 许海成.服务器集群负载均衡的建模与仿真研究[J].计算机仿真,2012(3):180-183.
[4] 季刚.集群技术及负载均衡调度算法研究[J].计算机时代,2012(8):37-38.
[5] 涂俊英.一种改进的Linux集群系统负载均衡算法[J].微电子学与计算机,2012.(3):106-109.
[6] 崔荣波.一种虚拟化的服务器集群模型[J].计算机系统应用,z2011(3):173-177.
[7] 董波.云计算集群服务器系统监控方法的研究[J].计算机工程与科学,2012(10):68-72.
[8] 朱莉.利用遗传算法的网络GIS集群服务器动态负载均衡算法[J].武汉大学学报信息科学版,2011(6):721-724.