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