□馬艷艷
( 山西廣播電視大學,山西 太原 030027)
在線學習系統負載均衡的分析與實現
□馬艷艷
( 山西廣播電視大學,山西 太原 030027)
在線學習網絡平臺由于數據交互量大,服務器過載,導致網絡擁塞,很大程度上制約了學生的學習效率。以Linux 操作系統為基礎的Linux Virtual Server ( LVS )結構,應用負載調度器、服務器組和共享存儲三部分內容實現了負載均衡, 提高了當前學習系統的服務器數據處理能力,加速了系統對學生的響應,大大緩解了“響應時間長”的現象。
負載均衡;服務器;網絡
隨著在線學習網絡平臺訪問量的不斷增加,對Web 服務器的訪問量急速上漲,這就要求服務器的性能大幅提高,既要并發(fā)處理大量的傳輸流,又要支持較復雜的協議和服務。面對這種情況, 如果進行大量的硬件升級,甚至引入高性能磁盤陣列,都不能從根本上解決,最好采用服務器負載均衡(Server Load Balance) 技術。
負載均衡技術的含義包括兩個方面:一是當有大量的用戶并發(fā)訪問時,多臺節(jié)點設備同時處理,降低用戶等待響應時間;二是某一個節(jié)點負載量大,也可以分配在其他節(jié)點設備上,處理完成后,將結果匯總并返回給用戶[1]。在線學習平臺利用此技術,將用戶請求分配到服務器上的某一個分布對稱結構,然后服務器將收到獨立發(fā)布的請求,處理完成匯總后再發(fā)送給用戶。
負載均衡在實現過程中有兩種形式,一種是靜態(tài)負載均衡,另一種是動態(tài)負載均衡。靜態(tài)負載均衡的處理方式是事先用“輪值”的方法確定由哪臺服務器工作,即輪流值日的方式,把用戶請求分解成單一任務給不同的節(jié)點處理;相對應的,動態(tài)負載均衡就是運用軟件程序動態(tài)的分析接收的數據包,實時地把任務分配給相應的節(jié)點處理。
(一) 基于特定服務器軟件的負載均衡
服務器負載均衡示意圖
如上圖所示,服務器負載均衡(SLB)是目前最常用的,它是通過將一臺服務器虛擬化,表示成一組服務器,即一個服務器群,用來平衡各個服務器的信息量,控制對某一臺服務器的訪問量。代表這組服務器的那一臺服務器被稱為虛擬服務器,而組內的服務器被稱為真實服務器。負載均衡技術就是將相同功能的真實服務器組成一個群,如果系統要進行擴容,我們只需修改交換機中的地址信息,并不影響服務的提供。集群中有幾臺服務器,對用戶來說是透明的,用戶只需了解虛擬服務器的功能,訪問時只需連接虛擬服務器的IP地址,負載均衡技術會為用戶挑選適當的真實服務器進行連接,而用戶對此毫不知情[2]。
web服務器鏡像技術是指采用一套性能相同的web服務器,采用內容相同的數據庫,為不同的域名分配了不同的IP地址,將用戶請求利用Http協議的重定向功能,當其中一臺服務器訪問量過大時,web服務器軟件自動把用戶的請求重新定向到不同的鏡像站點,用這種方式來實現負載均衡[3]。
(二)基于DNS的負載均衡
DNS負載均衡技術是最早提出的用來解決負載平衡的技術,它的實現方式是通過DNS服務中的名稱隨機的來解析,進而實現負載平衡。即同一個名字可以用于多個不相同的地址,當用戶查詢這個名字時,隨機得到其中的一個地址。因此,不同的用戶在查閱這個名字時將得到不同的地址,進一步訪問不同地址的服務器,來達到負載均衡的目的[4]。
對于在線學習平臺來說,這種方法簡單易行,而且服務器的物理位置不固定,互聯網上的任意一臺服務器都可以實現這個功能。但是DNS負載均衡的缺點是無法判斷服務器的性能,也無法得知當前服務器的運行狀態(tài),這就導致性能優(yōu)良的服務器得不到高效利用,不能處理更多的用戶需求,有時也會出現大量的用戶需求集中在了其中某一臺服務器上,并不能實現真正意義上的負載平衡;而且DNS的數據刷新時間的設置有標準,間隔較小,這個特征保證了數據的及時更新,但同時也造成了網絡流量的浪費。并不適用于在線學習這樣一個多用戶多訪問量的平臺。
(三)基于四層交換技術的負載均衡
第四層交換功能的實現,也就是我們經常提到的虛擬IP地址(VIP)方法,這個地址并不是與特定的計算機相連,也沒有與計算機中的網絡接口卡相連。它的實現過程是當數據包發(fā)送到這個VIP地址時,通過第四層交換功能,并根據設定算法分配到一個真實的網絡接口。每次TCP請求都可以動態(tài)分配其中的一個IP地址,從而達到負載均衡。
(四)基于七層交換技術的負載均衡
第七層是web內容交換技術,即對訪問流量的高層控制方式,通過對應用層內容的切換,將這種真正有意義的信息,結合我們對負載均衡設備的特定設置,進行服務器的選擇。
對于在線學習平臺這種大型網絡來說,可以選擇第四層交換技術的負載均衡,也可以選擇第七層交換技術的負載均衡。但是考慮到為了不造成訪問流量的停滯,第七層交換技術更具優(yōu)勢。在接收到數據包時,它會檢查Http報頭,根據報頭內的數據來決定將信息發(fā)送給哪臺服務器,同時根據報頭提供的信息判斷用何種方式為個人信息或者圖像視頻等不同格式的內容提供服務。換句話說, Http請求URL,但通過web內容交換技術,Http有可能請求到不同的服務器,即同一個URL請求對應了多個服務器,因為在Http發(fā)出請求時,并非建立了一個會話,而是通過負載均衡服務器建立了多個會話與真實的服務器連接。
在線學習系統所需要的負載均衡技術并不是簡單地把用戶請求平均分配給真實服務器,而是希望性能更好的服務器處理更多的請求,或者有的服務器請求較少可以申請到更多的服務請求,甚至有的服務器出現故障,可以不再接受請求直到恢復正常工作狀態(tài)。在選用負載均衡算法時,要考慮各個服務器性能,較好的辦法是我們可以給服務器分配權值,例如:服務器1性能較優(yōu),可以接受60%的用戶請求,我們可以將它賦以權值6,服務器2性能次優(yōu),可以處理30%的用戶請求,便賦以權值3,以此類推,這種方法可以有效地避免性能較差的服務器超負荷工作[5]。
與此同時,在考慮負載均衡時,還要考慮服務器響應速度(Response Time)和最少連接數的問題。第一,通過真實服務器對用戶請求的響應速度,決定將用戶的不同請求分配給相對應的響應時間最短的那臺服務器,需要區(qū)別的是,這里所指的最快響應時間不是客戶端和真實服務器之間的響應時間,而是負載均衡設備和真實服務器之間的響應時間。第二,在設備正常的運行過程中,用簡單的輪詢算法不能保證真正意義上的均衡,要了解服務器的真實工作情況,需要使用最小連接數算法(LeastConns),此算法記錄服務器當前正在處理的進程數,當有新的用戶請求時,用這種算法找出當前最小連接數的服務器并把請求分配給它,保證每一次的用戶訪問都是分配給目前進程數最少的服務器,真正實現動態(tài)的負載均衡,真正意義上滿足用戶的快速響應需求[6]。
在分析對比了以上四種負載均衡的方案之后,結合在線學習平臺的特征,本文提出了基于Linux系統的負載均衡技術。Linux Virtual Server ( LVS )結構是以Linux操作系統為基礎,實現了IP層的負載均衡調度技術,是操作系統核心層上的一個應用,當第四層接收到TCP/IP請求時,利用虛擬技術將請求均衡地分配到不同的服務器,解決某臺服務器訪問量過大而癱瘓的瓶頸問題,將一組服務器通過這種集群負載均衡調度技術變成一個易擴充、高性能的虛擬服務器,滿足平臺的用戶需求。
LVS體系結構包括以下三部分:
(一)負載調度器。用戶的請求先到達這里,通過它將請求發(fā)送到某一組服務器上,這個操作對用戶來說是透明的,用戶看到的是同一個IP地址,即虛擬IP地址,但物理地址不一定是同一個,調度器會采用IP負載均衡技術將請求一一分配,而負載均衡技術不僅要考慮服務器負載情況,還要考慮設定的調度算法,才能從服務器組中選出合適的一個服務器,將這個請求轉到選擇好的服務器,進行下一步的操作。
(二)服務器組。真實的一組服務設備,可提供的服務有多種,例如WEB、MAIL、FTP和DNS等。這組服務器的數量可以由實際情況做出變動,當整個平臺的訪問量超過目前所有服務器的負載能力時,可以隨時購買新設備。
(三)共享存儲。服務器組應該提供一個共享的存儲區(qū)域,包含數據庫和其他需要共享的網絡文件系統。因為在線學習平臺的數據一直在更新,需要數據庫系統存儲,而一些并非經常更新的數據可以存儲在網絡文件系統中。
在線學習系統為了解決大量學員同時在線學習的問題,通常是以集群的這種方式來搭建服務器,最經典的結構就是谷歌的搜索引擎,它由兩部分組成,一是負責任務調度的前端節(jié)點,相對應的另一部分就是負責處理請求的后端節(jié)點。在虛擬化技術未實現之前,集群的模式就是物理服務器和集群節(jié)點是一對一的,是一種固定的模式,即物理節(jié)點數量的多少決定了集群承受的負載量。那么,在線學習的特點是,在特定的時間內訪問量會很大,集群規(guī)模是靜態(tài)的無法改變,在訪問量達到峰值時,經常出現服務器超負荷運行,響應時間過長,而且有一部分節(jié)點卻因為調度不均而空閑。因此我們將集群節(jié)點轉移到虛擬機上,既大量節(jié)省了硬件成本,又可以大幅提升系統的伸縮性和自動調控的能力[7]。在LINUX虛擬化環(huán)境下,前端節(jié)點又由兩部分組成,一是訪問虛擬機層面,收到用戶請求后拆分的進程和子進程,分布在虛擬機的內存和網絡資源上,二是宿主機層,虛擬層對虛擬機的操作,體現在虛擬機的數量,以及所占用的各種硬件資源上。從虛擬機的角度來看,用戶所產生的大量請求通過前端的網絡層由前端節(jié)點各個發(fā)送到后端節(jié)點上,操作系統將請求轉換,通過調度算法分配相應的硬件資源;從宿主層來說,只能感覺到隨著用戶訪問量的增多,后端節(jié)點的數量和位置在不停地發(fā)生變化。由于傳統的集群技術是固定模式,無法實時監(jiān)控虛擬機的權限,也不能監(jiān)控宿主主機,因此,負載均衡技術只能在虛擬機層得到較好的使用。
為了較好的實現負載均衡技術,虛擬層的后端節(jié)點有兩種屬性,一是節(jié)點類型,二是節(jié)點的負載值。節(jié)點類型有三種,一是空節(jié)點,即一臺物理設備已經配置成功,但未部署成虛擬機,未啟用;二是備用節(jié)點,即已經部署為虛擬機,但現在未使用,處于停機狀態(tài);三是活動節(jié)點,即該設備已經部署為虛擬機并在運行狀態(tài)[8]。因此說空節(jié)點和備用節(jié)點目前都沒有用戶訪問,而活動節(jié)點根據用戶請求正在運行中。每個節(jié)點處理信息的能力也是有上限的,那么運行中的節(jié)點也有三種狀態(tài),包括適載、滿載和超載。一個集群的規(guī)模取決于空節(jié)點、備用節(jié)點和活動節(jié)點的總數量,因為數量決定了此系統處理信息的最大值,活動節(jié)點表示當前集群處理訪問量的能力,而空節(jié)點和備用節(jié)點可以預示集群的擴展能力。負載均衡技術就是將任務通過調度算法進行分發(fā),調度算法僅限于活動節(jié)點中的適載節(jié)點和超載節(jié)點,因為滿載節(jié)點的處理能力已達上限不能再接受新的進程,這就要求虛擬機層使用合適的轉移和定位策略,使得在使用盡可能少的節(jié)點的前提下,滿足用戶最大量的并發(fā)訪問[9]。
在線學習系統的搭建需要專用技術設備,包括路由器、核心交換機、負載均衡設備、web服務器、流媒體服務器和防火墻等。大型網絡使用的高端機柜式交換機都提供第四層交換功能,為了更好地實現負載均衡,該系統使用了F5 BIG-IP LTM 3600設備。此設備支持基于TCP/IP協議的服務器負載均衡,對輪詢、預測、散列、最快響應速度,以及最小連接數等方面性能優(yōu)良。同時提供次秒級系統故障轉移,實現主動發(fā)現錯誤并能及時處理服務器和軟件運行錯誤。
在線學習系統的負載均衡主要通過雙機設置結構,即兩臺F5通過雙機配置,一個為主服務器,一個為備用服務器,當主機出現故障,系統會自動切換到備用服務器,用戶正常訪問該系統。同時,通過F5把服務器分為兩部分功能池,WEB服務器組,流媒體服務器組,因為流媒體的課件較少,所以適當的減少服務器數量。這種負載均衡方式不僅能解決外部多鏈路的負載均衡問題,也能解決內部服務器訪問量的負載均衡問題,其中包括圖形化的圖形監(jiān)控模塊,最主要也最直接的是解決了用戶上線高峰時的訪問量大的問題,也是在線學習系統在設計時提出的核心難題。
以下是在線學習系統三大塊功能負載均衡的具體實現。
(一)運營商鏈路負載均衡和冗余:因在線學習用戶多,網絡環(huán)境不統一,系統接入總帶寬為300M,通過用戶數量的估算,網通和電信兩個服務商的帶寬比例為2:1。正常的操作情況下,對外部互聯網訪問流量進行負載均衡,當用戶訪問服務器時,平衡的連接兩個操作,但如果一個鏈接突然中斷,負載均衡技術會自動調整到另一個鏈接,使用戶正常使用。鏈接復蘇后,再自動添加到負載平衡。
(二)防火墻的負載均衡:正常情況下,兩套防火墻流量保證是平衡的,但當出現黑客攻擊或其他破壞因素時,一個防火墻故障,負載均衡技術會自動啟用另一個防火墻,當防火墻排除故障后繼續(xù)自動添加到負載平衡。
(三)服務器的負載均衡:在線學習系統采用根據服務器負載均衡的分配策略,合理分配用戶流量,時刻保持會話。當其中一臺服務器故障,系統設計的分配算法會自動將此服務器排除在外,自動切換到另一臺正常運行的服務器,繼續(xù)為用戶服務,保證服務器的整體性能大幅提升。
隨著網絡技術的迅猛發(fā)展和World Wide Web的爆炸式普及,人們對網絡信息資源的需求量日漸增多,尤其是終身教育的大浪潮下,許多人開始關注在線學習的網絡平臺,借助這種方便快捷的學習方式為自己充電。因此,在線學習系統用戶數劇增,數據傳輸量大,那么,在學生學習時總會出現緩沖的界面,這都是由于服務器超負荷運行造成的。在線學習平臺上,經常存在每秒數以千計的請求數,這要求我們的系統,使用軟件技術,使多臺服務器合作,實現每秒處理百萬甚至更多的訪問量來滿足用戶的需求。而負載均衡便是由對稱的方式,由多個服務器形成特定的一組,其中每個服務器具備相同的數據處理能力,并能輔助提供請求的服務分離,而且不需要經過其他的服務器。
采用負載均衡技術后,較好地解決了網絡擁塞問題,根據用戶IP地址實現就近提供服務,大幅度提升了服務器的響應速度,從而避免了網絡關鍵節(jié)點失效導致網絡癱瘓的不良影響,進一步提高了服務器和課件資源的利用效率??偠灾? LINUX集群負載均衡技術的引入,能讓多臺服務器發(fā)揮自己最大的作用,共同承擔在線學習這項復雜的任務, 用低成本達到了高效率,很大程度上提高了在線學習系統的安全性和可靠性。
[1]謝希仁.計算機網絡[M].北京:電子工業(yè)出版社,2011.
[2]汪建球,張忠能.分布式Web 服務器中負載均衡的實現[J].計算機工程,2003(9).
[3]李雙慶,游蓮, 程代杰.基于內容的Web 集群系統負載均衡策略[J] .重慶大學學報,2003(5).
[4]孫延濤,吳志美,石志強.基于地址轉發(fā)表的交換式以太網拓撲發(fā)現方法[J].軟件學報,2006(12).
[5]周揚眉,李云,劉占軍等.一種基于多徑負載均衡的無線互聯網Tcp擁塞控制策略[J].通信技術,2009(2).
[6]王彬.無線局域網中的負載均衡技術[J].中興通訊技術,2006(3):12.
[7]劉勝楠,汪詩林.虛擬環(huán)境下Web服務動態(tài)負載均衡策略改進[J].計算機工程與科學,2015(9).
[8]劉建礦等.基于內存云架構的帶寬負載均衡算法[J].計算機工程與設計,2015(11).
[9]魏亮,黃韜,陳建亞等.基于工作負載預測的虛擬機整合算法[J]. 電子與信息學報,2013(6).
Analysis and Implementation of Load Balancing Online Learning System
Ma Yanyan
(Shanxi TV University, Taiyuan, Shanxi, 030027)
Because of the large amount of data interaction and the server overload, and the network of online- learning platform congestion, it leads to a large extent restricted on the students' learning efficiency. The Linux Virtual Server (LVS) structure, which based on the Linux operating system, contracts three parts: the scheduler application load, the server group and shared storage that achieve the load balance, improve the data processing ability of the server in current learning system, accelerate the system response to the students, and greatly reduce the phenomenon of "response time".
load balancing; server; network
2015—10—15
馬艷艷(1984—),女,山西臨縣人,山西廣播電視大學,碩士。
G728
B
1008—8350(2016)01—0006—04