摘 要:為解決計(jì)算機(jī)服務(wù)器在很短的時間內(nèi)超載的問題,特采用集群來代替單一的計(jì)算機(jī)。文章首先闡釋了集群的概念,對LB集群進(jìn)行介紹,以Haproxy LB集群為例進(jìn)行集群應(yīng)用的實(shí)施,使用Haproxy+Keepalived兩種軟件,實(shí)現(xiàn)了Linux系統(tǒng)下創(chuàng)建低成本、高性能、高可用的集群系統(tǒng)的效果。
關(guān)鍵詞:集群;高可用;高性能
引言
當(dāng)今由于信息系統(tǒng)的各個核心部分會隨著業(yè)務(wù)量的提高,其處理能力和計(jì)算強(qiáng)度也隨之相應(yīng)的增大了,單一設(shè)備根本無法承擔(dān)如此大的壓力,所以必須采用多臺服務(wù)器來共同工作,從而提高計(jì)算機(jī)系統(tǒng)的處理能力以及計(jì)算強(qiáng)度。但是如何在能完成同樣功能的多個服務(wù)器之間實(shí)現(xiàn)合理的業(yè)務(wù)量的分配,使之不會出現(xiàn)一臺設(shè)備非常忙而其他設(shè)備卻沒有發(fā)揮作用的情況。要解決這一問題,就可以采用負(fù)載均衡(LB)的方法。
1 集群的概念
集群就是將幾臺或者是幾十臺計(jì)算機(jī)組合起來作為一個整體來提供一系列的網(wǎng)絡(luò)資源給用戶,并且集群系統(tǒng)的管理員有權(quán)限任意的增加、刪除或者是更改集群系統(tǒng)的任意節(jié)點(diǎn),集群系統(tǒng)通常被用來改進(jìn)單個計(jì)算機(jī)的性能,一般情況下,集群計(jì)算機(jī)系統(tǒng)比單個計(jì)算機(jī)系統(tǒng)的性價比都要高很多。
2 LB集群介紹
在負(fù)載均衡(LB)服務(wù)器上使用專門的路由算法,將數(shù)據(jù)包分散到多個真實(shí)服務(wù)器中進(jìn)行處理,從而達(dá)到網(wǎng)絡(luò)服務(wù)均衡負(fù)載的作用。LB服務(wù)器可以充分利用自己已有的資源來很好的提升高負(fù)載服務(wù)的性能,降低高負(fù)載服務(wù)的成本。
3 Haproxy LB集群的實(shí)施
3.1工作環(huán)境設(shè)定
(1)虛擬機(jī)版本:VMware Workstation-full-10.0.1
(2)服務(wù)器操作系統(tǒng):所有服務(wù)器均使用rhel6.4的系統(tǒng)
(3)虛擬IP(VIP):192.168.122.100
(4)主調(diào)度器:主機(jī)名:directory1.tianyun.com IP:192.168.122.2
(5)備調(diào)度器: 主機(jī)名:directory2.tianyun.com IP:192.168.122.3
(6)真實(shí)服務(wù)器主機(jī)名:web1.tianyun.com IP:192.168.122.10
主機(jī)名:web2.tianyun.com IP:192.168.122.20
主機(jī)名:web3.tianyun.com IP:192.168.122.30
(7)監(jiān)控服務(wù)器:主機(jī)名:nagios.tianyun.com IP:192.168.122.50
3.2 準(zhǔn)備工作
說明:以下均使用directory1來作為例子,其他的主機(jī)參照它來進(jìn)行配置。
(1)根據(jù)拓?fù)鋱D分別配置集群中各個主機(jī)的IP
使用vim打開/etc/sysconfig/network-scripts/ifcfg-eth0文件,給服務(wù)器的eth0網(wǎng)口設(shè)定靜態(tài)IP地址,然后重新啟動網(wǎng)絡(luò)服務(wù)。
(2)修改主機(jī)名
編輯需要被用于修改主機(jī)名的配置文件/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=directory1.tianyun.com
(3)修改hosts文件
(4)關(guān)閉防火墻
(5)關(guān)閉SELinux
編輯SElinux的配置文件/etc/sysconfig/selinux,將SELINUX=enforcing修改為SELINUX=disabled,使用getenforce命令查看顯示Permissive即為生效。
(6)公鑰推送(ssh trust)
推送各個節(jié)點(diǎn)的公鑰有利于在各個節(jié)點(diǎn)間的相互訪問。將directory1的/root/.ssh目錄使用rsync拷貝到其他節(jié)點(diǎn)上,這樣所有節(jié)點(diǎn)就都可以相互無密碼的訪問。
directory1 # ssh-keygen
directory1 # cd .ssh/
directory1 # mv id_rsa.pub authorized_keys
directory1 # rsync -va /root/.ssh IP:/root/.ssh
(7)配置NTP時鐘同步服務(wù)
要配置NTP服務(wù)器,首先要確保已經(jīng)安裝了ntp服務(wù),然后在/etc/ntp.conf文件中寫入代碼,然后啟動ntpd服務(wù),并將其設(shè)置為開機(jī)啟動,等待兩分鐘左右,查看同步的狀態(tài)。
4 集群的應(yīng)用
4.1 RS配置
(1)安裝Apache網(wǎng)站服務(wù)器
# yum -y install httpd
# chkconfig httpd on service httpd start
(2)為RS設(shè)置首頁
在瀏覽器中訪問192.168.122.10,出現(xiàn)首頁。為了達(dá)到測試效果,需要提供不同的測試頁面,分別使用web1、web2和web3來作為網(wǎng)站首頁的內(nèi)容,方法如下:
# rm -rf /etc/httpd/conf.d/welcome.conf
# echo \"web1\" /var/www/html/index.html
# service httpd restart
(3)測試RS
訪問192.168.122.10,網(wǎng)頁中就會出現(xiàn)web1。
4.2 調(diào)度器配置Haproxy(主/備)
(1)安裝Haproxy
# yum -y install haproxy
# cp -rf /etc/haproxy/haproxy.cfg{,bak}
(2)配置Haproxy
(3)啟動haproxy
# service haproxy start
# chkconfig haproxy on
4.3 測試主備調(diào)度器
訪問192.168.122.2,不斷刷新,頁面中會隨機(jī)出現(xiàn)web1、web2和web3。輸入用戶名和密碼之后,顯示的界面;網(wǎng)頁中勾選http2——Soft Stop——Apply,訪問192.168.122.2,不斷的刷新,頁面中會出現(xiàn)web1和web3,但是不會出現(xiàn)web2,將http2Soft Start之后,又恢復(fù)正常。使用命令行的方式將web3的httpd的服務(wù)停掉,訪問192.168.122.2,不斷刷新頁面,頁面中會出現(xiàn)web1和web2,但是不會出現(xiàn)web3,而且192.168.122.2:1314/haproxystats頁面中http3變成紅色。在命令行中重新啟動web3的httpd服務(wù),頁面中紅色的http3又變回綠色,重新訪問192.168.122.2的網(wǎng)站,又恢復(fù)正常。
5 結(jié)束語
集群并不是一個全新的概念,早在七十年代的時候,計(jì)算機(jī)廠商和一些研究機(jī)構(gòu)就開始對集群系統(tǒng)進(jìn)行研究和開發(fā),對集群的研究源于集群系統(tǒng)性能的良好的可擴(kuò)展性。文章以Haproxy LB集群為例進(jìn)行集群應(yīng)用的實(shí)施,使用Haproxy+Keepalived兩種軟件,實(shí)現(xiàn)了Linux系統(tǒng)下創(chuàng)建低成本、高性能、高可用的集群系統(tǒng)的效果,旨在為集群的發(fā)展與成熟提供參考和建議。
參考文獻(xiàn)
[1]王國明.集群計(jì)算系統(tǒng)的分析與研究[J].電腦知識與技術(shù),2006(32).
[2]孟相武,等.基于Linux的高可用集群系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)[J].電子科技大學(xué)學(xué)報,2005.
[3]高俊峰.高性能Linux服務(wù)器構(gòu)建實(shí)戰(zhàn):運(yùn)維監(jiān)控、性能調(diào)優(yōu)與集群應(yīng)用[M].機(jī)械工業(yè)出版社,2011.
作者簡介:盧洪亮(1996-),男,大慶市肇州縣,黑龍江八一農(nóng)墾大學(xué)信息技術(shù)學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)本科在校生。