劉振東
關(guān)鍵詞:H3C CAS;HA;Nginx;反向代理;負(fù)載均衡
在我國,校園信息化建設(shè)的水平是評價高校教育、教學(xué)水平的重要指標(biāo),而教務(wù)管理系統(tǒng)是高校教育信息化工作的重要組成部分。目前各高校辦學(xué)規(guī)模不斷擴大,學(xué)生數(shù)量不斷增加,高校學(xué)生人數(shù)動輒上萬人計。大量學(xué)生在短時間內(nèi)同時訪問教務(wù)管理系統(tǒng),很容易造成服務(wù)器資源不足,進而造成服務(wù)器響應(yīng)緩慢甚至宕機。比如每學(xué)期開學(xué)前的學(xué)生選課,學(xué)生為了選到理想的課程,在選課功能開通后,爭先登錄教務(wù)管理系統(tǒng),造成選課頁面無響應(yīng)、系統(tǒng)反應(yīng)遲鈍,嚴(yán)重影響學(xué)生選課。此外學(xué)生集中查詢成績,老師期末集中登記學(xué)生成績等也會造成服務(wù)器負(fù)擔(dān)過重。為解決教務(wù)管理系統(tǒng)的擁堵問題,設(shè)計和實現(xiàn)了基于H3C CAS HA高可靠性和Nginx負(fù)載均衡的教務(wù)管理系統(tǒng)。使用H3C CAS HA高可靠性功能,當(dāng)一臺虛擬機出現(xiàn)故障時,系統(tǒng)會重新生成一臺同樣的虛擬機并啟動。當(dāng)一臺服務(wù)器主機出現(xiàn)故障時,運行在這臺主機上的所有虛擬機會自動在集群中的其他主機上重新啟動。使用Nginx的負(fù)載均衡功能,可以將對一臺服務(wù)器的訪問量分配給集群中的多臺服務(wù)器共同分擔(dān),有效減輕單臺服務(wù)器的負(fù)擔(dān)。
1 H3C CAS HA高可靠性技術(shù)
H3C CAS云計算平臺是H3C公司推出的構(gòu)建云計算基礎(chǔ)架構(gòu)的管理軟件,它為數(shù)據(jù)中心云計算基礎(chǔ)架構(gòu)提供完善的虛擬化和云業(yè)務(wù)運營管理解決方案,用于實現(xiàn)數(shù)據(jù)中心云計算環(huán)境的中央管理控制。通過CAS云計算管理平臺簡潔的管理界面,操作員可以輕松地統(tǒng)一管理數(shù)據(jù)中心的所有物理資源和虛擬資源,不僅能提高操作員的管控能力、簡化日常例行工作,還可以降低IT環(huán)境的復(fù)雜度和運維成本。
CAS管理軟件由三個組件構(gòu)成:CIC(Cloud IntelligenceCenter,云業(yè)務(wù)管理中心)、CVM(Cloud Virtualization Manager,虛擬化管理系統(tǒng))和CVK(Cloud Virtualization Kernel,虛擬化內(nèi)核平臺)。CAS管理軟件需要安裝到數(shù)據(jù)中心的多臺物理主機上:CVK組件在每臺物理主機上都要安裝,CVM組件只在管理用的那臺物理主機上安裝。用H3C公司提供的安裝光盤啟動物理主機,即可安裝CVK和CVM組件。
安裝完CAS管理軟件后,打開登錄PC的Web瀏覽器,在地址欄中輸入云學(xué)院管理平臺服務(wù)器的IP地址,就可以登錄H3C Cloud云學(xué)院管理平臺。在云計算管理平臺中可以建立主機池、集群,添加主機、共享存儲、虛擬交換機、虛擬機,為虛擬機安裝操作系統(tǒng)和應(yīng)用軟件。
使用H3C CAS云計算機管理平臺,可以在一臺物理主機上建立多臺虛擬機,每臺虛擬機可以安裝不同的操作系統(tǒng)和應(yīng)用軟件。當(dāng)把多個物理主機可以加入集群后,通過集群,操作員可以輕松地管理多個主機和虛擬機,從而提高工作效率,降低管理的復(fù)雜度。同時,系統(tǒng)將定時監(jiān)測集群內(nèi)的主機和虛擬機狀態(tài),保證數(shù)據(jù)中心業(yè)務(wù)的連續(xù)性。例如,當(dāng)一臺服務(wù)器主機出現(xiàn)故障時,運行在這臺主機上的所有虛擬機會自動在集群中的其他主機上重新啟動運行。
H3C CAS云計算機管理平臺的HA高可靠性特性用于實現(xiàn)系統(tǒng)的高可靠性,可以分為兩種:(1)集群HA。集群開啟HA功能之后,CVM會持續(xù)對集群內(nèi)所有的物理主機和物理主機上的虛擬機進行監(jiān)測。當(dāng)一臺虛擬機出現(xiàn)故障時,系統(tǒng)會在本主機或其他主機上重新生成同樣的一臺虛擬機并啟動虛擬機。當(dāng)物理主機發(fā)生故障時,CVM將在集群內(nèi)其他可用的物理主機上重新生成并啟動所有受影響的虛擬機。(2)應(yīng)用HA。應(yīng)用HA是指運行于虛擬機操作系統(tǒng)內(nèi)的應(yīng)用進程的高可靠性,當(dāng)物理主機和虛擬機都是正常的,而由于應(yīng)用進程自身原因?qū)е孪到y(tǒng)無法對外正常提供服務(wù)時,CAS云計算機平臺可以在最短的時間自動恢復(fù)虛擬機上的應(yīng)用進程。如果系統(tǒng)在連續(xù)3個時間周期內(nèi)探測到監(jiān)測的服務(wù)狀態(tài)不正常,則自動重啟該服務(wù);如果連續(xù)4個時間周期檢測到應(yīng)用服務(wù)故障,且重啟服務(wù)失敗,則根據(jù)系統(tǒng)管理員配置的應(yīng)用HA策略,重新啟動虛擬機或僅發(fā)出應(yīng)用故障不可恢復(fù)的告警消息。
2 Nginx反向代理和負(fù)載均衡技術(shù)
Ngnix是由俄羅斯人Igor Sysoev開發(fā)的一款高性能Web服務(wù)器,同時支持反向代理和負(fù)載均衡,還具有IMAP/POP3/SMTP郵件代理服務(wù)器的功能。Nginx在處理高并發(fā)請求方面非常出色,并且運行穩(wěn)定,資源消耗低,越來越多的公司選擇Ngnix作為Web服務(wù)器,像國外的Google、Apple及亞馬遜,國內(nèi)有百度、騰訊及阿里等。
所謂Nginx反向代理,是指當(dāng)一臺服務(wù)器在單位時間內(nèi)的訪問量越大時,服務(wù)器壓力也越大,當(dāng)大到超過自身承受能力時,服務(wù)器就會崩潰;為了避免服務(wù)器崩潰,讓用戶有更好的體驗,可以先建立一個Nginx反向代理服務(wù)器,然后建立多個相同的Web服務(wù)器組成一個服務(wù)器集群。當(dāng)用戶訪問網(wǎng)站時,先訪問Nginx代理服務(wù)器,由Nginx服務(wù)器按一定的策略在服務(wù)器集群中選擇一個服務(wù)器,將該訪問請求引入該服務(wù)器,由這臺Web服務(wù)器向用戶提供服務(wù)。當(dāng)多個用戶訪問網(wǎng)站,會被引領(lǐng)到不同的Web服務(wù)器,這樣能夠保證服務(wù)器集群中的每個服務(wù)器壓力趨于平衡,分擔(dān)了服務(wù)器壓力,避免服務(wù)器崩潰。Nginx實現(xiàn)負(fù)載均衡基于其反向代理功能??梢酝ㄟ^選擇合適的負(fù)載均衡策略來決定由哪臺后臺服務(wù)器來處理客戶端的請求。Ngnix服務(wù)器支持的負(fù)載均衡策略分為兩種:內(nèi)置策略和擴展策略,內(nèi)置策略有輪詢、加權(quán)輪詢、ip_hash,擴展策略有url_hash、fair等。
(1)輪詢。輪詢策略的方法是把來自各個用戶的請求,按照不同用戶訪問的先后順序,輪流分配到不同的后臺服務(wù)器上,假如后端服務(wù)器出現(xiàn)問題,可以自動剔除。(2)加權(quán)輪詢。輪詢算法并沒有考慮每臺服務(wù)器的處理能力,現(xiàn)實當(dāng)中,由于每臺服務(wù)器配置不同,其處理能力會不一樣。加權(quán)輪詢策略的原理是,根據(jù)服務(wù)器處理能力的不同,給每臺服務(wù)器分配不同的權(quán)值,權(quán)值越大被輪詢到的概率越大。(3)ip_hash。ip_hash策略對客戶端的IP進行哈希運算,根據(jù)運算結(jié)果將請求分配給不同的后端服務(wù)器。使用ip_hash策略,可以保證每個訪問請求IP會固定訪問一臺后端服務(wù)器。(4)url_hash。url_hash策略和ip_hash策略類似,兩者的主要區(qū)別在于ip_hash策略是對前端訪問IP進行哈希運算,url_hash策略則是對前端請求的進行哈希運算。使用url_hash策略,可以通過緩存服務(wù)器提升緩存效率。(5)fair。fair策略可以根據(jù)頁面的大小和加載時間長短智能地選擇后端服務(wù)器進行負(fù)載均衡。
3基于H3C CAS HA高可靠性和Nginx負(fù)載均衡的教務(wù)管理系統(tǒng)解決方案
(1)需求分析。河北政法職業(yè)學(xué)院現(xiàn)有教職員工700余人,在校學(xué)生12000余人。老師和學(xué)生經(jīng)常需要訪問教務(wù)管理系統(tǒng),特別是學(xué)期初學(xué)生選課、查詢分?jǐn)?shù)、查詢課表,老師查詢課表、學(xué)期末登記學(xué)生分?jǐn)?shù),對教務(wù)系統(tǒng)訪問量都很大。新設(shè)計的教務(wù)管理系統(tǒng)必須要滿足老師和學(xué)生對教務(wù)系統(tǒng)的各種需求,要有很好的穩(wěn)定性,在訪問高峰期不能出現(xiàn)訪問緩慢、停止反應(yīng)等現(xiàn)象。除教務(wù)管理系統(tǒng)外,學(xué)院其他應(yīng)用系統(tǒng)如學(xué)院官網(wǎng)、學(xué)工系統(tǒng)、人事系統(tǒng)、迎新系統(tǒng)、離校系統(tǒng)、科研系統(tǒng)等都要放在H3C CAS云計算平臺上。H3C CAS云計算平臺要保證所有應(yīng)用系統(tǒng)的正常使用。
(2)方案軟、硬件配置。①硬件配置。物理主機為4臺HP ProLiant BL660c Gen9刀架式服務(wù)器,共享存儲為3 Par共享存儲,容量20TB。刀架式服務(wù)器的硬件配置為:CPU型號:Intel(R)Xeon(R)CPU E5-4620 v4@2.10GHz,CPU核心:4x10x2核,內(nèi)存:503.27GB,硬盤:169.38GB。②軟件配置。在4臺刀架式服務(wù)器上安裝H3C CAS云計算平臺管理軟件。在云計算機平臺上建立7臺虛擬機,7臺虛擬機全部安裝RedHat7.0 Linux操作系統(tǒng)。在做反向代理的虛擬機上安裝Nginx軟件;在做數(shù)據(jù)庫服務(wù)器的虛擬機上安裝數(shù)據(jù)庫軟件;其余5臺虛擬機,安裝tomcat Web服務(wù)器軟件,配置正方教務(wù)管理系統(tǒng)。
4配置H3C CAS HA高可靠性
在H3C CAS云管理平臺的管理界面中,單擊導(dǎo)航樹中[云資源/主機池/<集群>]菜單項,進入集群概要信息頁面。單[高可性]按鈕,即可設(shè)置啟用CAS的集群HA高可靠性。
H3C CAS應(yīng)用HA操作手冊中列出了能夠使用應(yīng)用HA的兼容軟件列表,兼容軟件列表中沒有列出Ngnix和tomcat在Linux操作系統(tǒng)下能夠支應(yīng)應(yīng)用HA。操作手冊中說對于未在列表中的軟件可能可以支持,但在項目實施前需要進行適當(dāng)?shù)倪m配與驗證工作。經(jīng)過測試,Nginx和tomcat在Linux操作系統(tǒng)下不支持應(yīng)用HA,所以系統(tǒng)中沒有設(shè)置這兩款軟件的應(yīng)用HA。
5配置Nginx反向代理
Nginx服務(wù)器的配置信息主要集中在nginx.conf配置文件中,其中與反向代理和負(fù)載均衡功能有關(guān)的配置位于http模塊中,如下面程序段所示。http模塊包含server模塊和up-stream模塊。在upstream模塊中定義了一個名為“site”的服務(wù)器列表。server模塊定義了一個虛擬訪問主機,也就是一個虛擬服務(wù)器,Server模塊中的location模塊下面的proxy_pass參數(shù)決定選擇哪個服務(wù)器列表。
6結(jié)語
基于H3C CAS HA高可靠性和Nginx負(fù)載均衡的教務(wù)管理系統(tǒng)建成之后,性能非常穩(wěn)定,在系統(tǒng)使用高峰期,系統(tǒng)沒有明顯延遲。在精心維護下,教務(wù)管理系統(tǒng)沒有出現(xiàn)過故障。說明基于H3C CAS HA高可靠性和Nginx負(fù)載均衡的教務(wù)管理系統(tǒng)的設(shè)計是合理的。不足之處是Nginx和tomcat程序沒能使用H3C CAS應(yīng)用HA高可靠性功能,需要聯(lián)系H3C公司,適配Nginx在CAS平臺的應(yīng)用HA高可靠性。