馮桂蓮
摘 要:Linux操作系統(tǒng)不斷走向成熟,其健壯性不斷增強(qiáng),同時(shí)提供了GUN軟件和標(biāo)準(zhǔn)化的PVM、MPI消息傳遞機(jī)制,由于在普通PC機(jī)上提供了對(duì)高性能網(wǎng)絡(luò)的支持,因此大大推動(dòng)了基于Linux的集群系統(tǒng)的發(fā)展。為了提高服務(wù)器集群的處理性能和可靠性,通過(guò)編寫PHP腳本網(wǎng)頁(yè)文件,以VMware Workstation作為虛擬機(jī)、在Red Hat Enterprise服務(wù)器操作系統(tǒng)下、以Secure CRT作為遠(yuǎn)程管理軟件,用橋接的虛擬機(jī)網(wǎng)卡模式,作者設(shè)計(jì)并測(cè)試了基于Linux的LAMP服務(wù)器集群系統(tǒng),提高了集群計(jì)算機(jī)的性價(jià)比。
關(guān)鍵詞:集群;高可用;Linux;LAMP
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼: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)
當(dāng)今計(jì)算機(jī)已經(jīng)進(jìn)入以網(wǎng)絡(luò)為中心的計(jì)算時(shí)代。在20世紀(jì)90年代中期,萬(wàn)維網(wǎng)的出現(xiàn)以其簡(jiǎn)單的操作方式將圖文并茂的網(wǎng)上信息帶給普通大眾,WEB也正在一種信息發(fā)送機(jī)制成為一種服務(wù)平臺(tái),大量的服務(wù)和應(yīng)用(如電子商務(wù))都是圍繞著WEB進(jìn)行的[1]。現(xiàn)在的WEB服務(wù)越來(lái)越多地使用動(dòng)態(tài)主頁(yè)等CPU密集型應(yīng)用,這對(duì)服務(wù)器的性能有較高的要求。未來(lái)的網(wǎng)絡(luò)服務(wù)會(huì)提供更豐富的內(nèi)容、更好的交互性、更高的安全性等,需要服務(wù)器具有更強(qiáng)的CPU和I/O處理能力[2]。九十年代末期,Linux操作系統(tǒng)不斷走向成熟,它的健壯性不斷增強(qiáng),并且提供了GUN軟件和標(biāo)準(zhǔn)化的PVM、MPI消息傳遞機(jī)制,最重要的是Linux在普通PC機(jī)上提供了對(duì)高性能網(wǎng)絡(luò)的支持,這樣就大大推動(dòng)了基于Linux的集群系統(tǒng)的發(fā)展。作者設(shè)計(jì)并實(shí)現(xiàn)了基于Linux的LAMP服務(wù)器集群系統(tǒng),實(shí)現(xiàn)了高可用和負(fù)載均衡的功能,提高了集群計(jì)算機(jī)的性價(jià)比。
2 集群(Cluster)
2.1 集群的定義
集群(cluster)就是一組計(jì)算機(jī),它們作為一個(gè)整體向用戶提供一組網(wǎng)絡(luò)資源。這些單個(gè)的計(jì)算機(jī)系統(tǒng)就是集群的節(jié)點(diǎn)(node)。一個(gè)理想的集群是用戶從來(lái)不會(huì)意識(shí)到集群系統(tǒng)底層的節(jié)點(diǎn),在他們看來(lái),集群是一個(gè)系統(tǒng),而非多個(gè)計(jì)算機(jī)系統(tǒng)。并且集群系統(tǒng)的管理員可以隨意增加和刪除該集群系統(tǒng)的節(jié)點(diǎn)[3]。
2.2 集群的分類
集群計(jì)算機(jī)按功能和結(jié)構(gòu)不同可分為以下幾類。
(1)高可用集群
高可用集群一般是指當(dāng)集群中有某個(gè)節(jié)點(diǎn)失效的情況下,其上的任務(wù)會(huì)自動(dòng)轉(zhuǎn)移到其他正常的節(jié)點(diǎn)上。
(2)負(fù)載均衡集群
負(fù)載均衡集群運(yùn)行時(shí)一般通過(guò)一個(gè)或者多個(gè)前端負(fù)載均衡器將工作負(fù)載分發(fā)到后端的一組服務(wù)器上,從而達(dá)到整個(gè)系統(tǒng)的高性能和高可用性[4]。
(3)高性能計(jì)算集群
高性能計(jì)算集群采用將計(jì)算任務(wù)分配到集群的不同計(jì)算節(jié)點(diǎn)而提高計(jì)算能力,因而主要應(yīng)用在科學(xué)計(jì)算領(lǐng)域。
(4)網(wǎng)格計(jì)算或網(wǎng)絡(luò)集群
網(wǎng)格計(jì)算或網(wǎng)絡(luò)集群是一種與集群計(jì)算相關(guān)的技術(shù)。網(wǎng)格與傳統(tǒng)集群的主要差別在于網(wǎng)格是連接一組相關(guān)的計(jì)算機(jī),它的運(yùn)作更像一個(gè)計(jì)算公共設(shè)施而不是一個(gè)獨(dú)立的計(jì)算機(jī)[5]。
3 LAMP架構(gòu)(LAMP instructure)
LAMP由Linux操作系統(tǒng)、Apache Web服務(wù)器、MySQL數(shù)據(jù)庫(kù)和PHP腳本語(yǔ)言四種技術(shù)組成,是基于B/S的WEB系統(tǒng)三層體系,其特點(diǎn)是客戶端要求低、可維護(hù)性高、數(shù)據(jù)安全性高和實(shí)時(shí)交互性好,而B/S架構(gòu)的三層體系的分層式設(shè)計(jì)已成為互聯(lián)網(wǎng)行業(yè)的一盞明燈。LAMP常用來(lái)搭建動(dòng)態(tài)網(wǎng)站或者服務(wù)器的開源軟件,本身都是各自獨(dú)立的程序,但是因?yàn)槌1环旁谝黄鹗褂?,擁有了越?lái)越高的兼容度,共同組成了一個(gè)強(qiáng)大的Web應(yīng)用程序平臺(tái)[6]。
4 LAMP服務(wù)器集群的設(shè)計(jì)(Design of the LAMP
sever cluster system)
4.1 前期準(zhǔn)備
LAMP集群的作用已經(jīng)不言而喻,本設(shè)計(jì)實(shí)現(xiàn)了LAMP架構(gòu)集群。通過(guò)編寫PHP腳本網(wǎng)頁(yè)文件,Windows XP客戶端通過(guò)http訪問(wèn)VIP,獲得網(wǎng)頁(yè)可顯示出RealServer服務(wù)器(Apache和PHP)和MySQL服務(wù)器完成協(xié)同工作[7]。
(1)實(shí)現(xiàn)環(huán)境
虛擬機(jī):VMware Workstation
服務(wù)器操作系統(tǒng):Red Hat Enterprise 5
客戶機(jī)(測(cè)試):Windows XP
遠(yuǎn)程管理軟件:Secure CRT 5.1
虛擬機(jī)網(wǎng)卡模式為橋接,各主機(jī)的IP如下:
路由器的內(nèi)網(wǎng)接口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)部署階段
根據(jù)系統(tǒng)需求,對(duì)LVS1服務(wù)器的配置如下(由于篇幅關(guān)系,只給出部分參數(shù)命令):
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
對(duì)LVS2的配置類同,不再贅述。
對(duì)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 測(cè)試階段
測(cè)試當(dāng)前配置時(shí),得到如圖1所示的結(jié)果。
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
通過(guò)相同的測(cè)試方法可以得到分發(fā)給真實(shí)機(jī)2和3的運(yùn)行結(jié)果,同圖1。
繼續(xù)鍵入以下命令:
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()
?>
測(cè)試當(dāng)前配置,得到如圖2所示的運(yùn)行結(jié)果。
Fig.2 The cooperative work of apache and php
再進(jìn)行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();
?>
測(cè)試當(dāng)前配置結(jié)果,得到如圖3所示的運(yùn)行結(jié)果。
Fig.3 The client access to VIP three times
自此,Windows XP客戶機(jī)通過(guò)http訪問(wèn)虛擬IP地址得到真實(shí)的三臺(tái)服務(wù)器上的連接MySql數(shù)據(jù)庫(kù)的信息,說(shuō)明LAMP架構(gòu)服務(wù)器集群系統(tǒng)搭建成功。
5 結(jié)論(Conclusion)
該基于Linux的LAMP服務(wù)器集群系統(tǒng)實(shí)現(xiàn)了高可用和負(fù)載均衡的功能,但是由于沒(méi)有真實(shí)的應(yīng)用場(chǎng)景,所以負(fù)載均衡算法比較簡(jiǎn)單,如果實(shí)際應(yīng)用場(chǎng)景的計(jì)算機(jī)硬件配置差異過(guò)大、真實(shí)服務(wù)器的活躍連接數(shù)不一致時(shí),集群的整體工作效果會(huì)受到極大的影響。計(jì)算機(jī)集群系統(tǒng)以及基于Linux操作系統(tǒng)的計(jì)算機(jī)集群,目前都是計(jì)算機(jī)應(yīng)用領(lǐng)域的研究熱點(diǎn)。當(dāng)今非常火熱的云計(jì)算技術(shù),就是高可用、高可靠、均衡負(fù)載以及高性能計(jì)算的綜合[8],今后的集群技術(shù)一定會(huì)沿著這個(gè)方向發(fā)展。
參考文獻(xiàn)(References)
[1] 王國(guó)明.集群計(jì)算系統(tǒng)的分析與研究[J].電腦知識(shí)與技術(shù),2006(32):152-156.
[2] 胡曉軍.Linux服務(wù)器集群系統(tǒng)的研究和應(yīng)用[D].廣東工業(yè)大學(xué),2005.
[3] 許海成.服務(wù)器集群負(fù)載均衡的建模與仿真研究[J].計(jì)算機(jī)仿真,2012(3):180-183.
[4] 季剛.集群技術(shù)及負(fù)載均衡調(diào)度算法研究[J].計(jì)算機(jī)時(shí)代,2012(8):37-38.
[5] 涂俊英.一種改進(jìn)的Linux集群系統(tǒng)負(fù)載均衡算法[J].微電子學(xué)與計(jì)算機(jī),2012.(3):106-109.
[6] 崔榮波.一種虛擬化的服務(wù)器集群模型[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,z2011(3):173-177.
[7] 董波.云計(jì)算集群服務(wù)器系統(tǒng)監(jiān)控方法的研究[J].計(jì)算機(jī)工程與科學(xué),2012(10):68-72.
[8] 朱莉.利用遺傳算法的網(wǎng)絡(luò)GIS集群服務(wù)器動(dòng)態(tài)負(fù)載均衡算法[J].武漢大學(xué)學(xué)報(bào)信息科學(xué)版,2011(6):721-724.