韋寧
(廣西生態(tài)工程職業(yè)技術學院圖文信息中心 廣西壯族自治區(qū)柳州市 545004)
云計算自出現(xiàn)以來,一直是被當做最核心的技術被廣大企業(yè)和相關政府所關注,比如Amazon所提供的涵蓋了彈性計算云EC2等一系列的云計算服務,從而完成了基礎設備的按需分配、分布式計算編程等云計算的服務[1]。在商業(yè)上有所運用以外,對于政府來說云計算同樣有著非常大的作用,其能夠有效降低政府在信息化上的運行成本,而且云計算服務還能涉及到電力、電信等經濟基礎的建設當中。
不過隨著云計算的發(fā)展,其規(guī)模逐漸擴大的情況下,隨之而來的問題是因其應用多樣性和用戶需求增多,云系統(tǒng)中出現(xiàn)了許多的問題,其中之一便是負載不均衡的問題,比如其中一小部分的節(jié)點出現(xiàn)負載過重的情況,導致沒有剩余的可用的資源。為此,引入了均衡負載技術,以此來緩解資源的緊張,提高利用率,降低成本。
云計算屬于一種新型的計算機模式,之所以要命名為云計算,是其某些特征與真實中的云的特征有相似點,都是屬于規(guī)模比較大、且可伸縮、邊界不清晰等。雖說云計算已經滲入到人們的生活當中,影響著人們的生活的方方面面,在工業(yè)和經濟等都有著非常重大的影響。但是,至今沒有較為清晰和公認的對于云計算標準的定義。
現(xiàn)在主要的被廣泛接受的云計算的定義有:
美國標準與技術研究院認為云計算是一種用戶通過利用互聯(lián)網能在任何時刻,快捷訪問互聯(lián)網中的共享資源[2]。
IBM的云計算白皮書中談到云計算這一詞,是用作稱呼一個系統(tǒng)平臺,在該系統(tǒng)的平臺中服務器既可以是物理的也可以是虛擬的服務器。對于高級的計算云來說,其通常包含著的資源有:網絡設備、防火墻和其它相關安全設備等[3]。
基于云計算的背景下,負載均衡技術有著兩層含義,其第一層含義中負載主要體現(xiàn)在負載執(zhí)行任務的虛擬機層當中,而另外一層則是體現(xiàn)在實體機層當中。
原本負載均衡技術是屬于傳統(tǒng)的集群環(huán)境的技術[4],不過在云計算當中,負載均衡技術與在傳統(tǒng)集群中的技術是有著非常大的區(qū)別,是屬于截然不同的技術,因此不能放在一起探討[5]。集群環(huán)境中,任務調度處理單元是實際的物理主機,任務調度處理的資源是物理實體資源。如果主機配置過多,不僅會在經濟上帶來非常高的成本壓力,而且還會因為負載低的原因導致不必要的資源被浪費,不管是會從經濟層面上來說,還是從資源層面上來說,都是沒有必要的;但是,如果配置的主機過少了,又會因為集群負載過高,導致超過了其可以承受的承載能力之外,這同樣也會造成非常大的影響。
常規(guī)情況下,負載均衡技術的分類可以分為靜態(tài)和動態(tài)策略兩種,大家對于負載均衡技術的了解還不夠深,而且在技術上還沒有得到有效的突破,因此當時主要是以靜態(tài)方式實現(xiàn);后來隨著系統(tǒng)規(guī)模的不斷加大,任務數(shù)量越來越多,負載的情況逐漸明顯,靜態(tài)方式明顯逐漸不適應了,因此出現(xiàn)了動態(tài)策略。
(1)靜態(tài)策略:靜態(tài)策略的方式其實非常簡單,它是不會對集群服務器進行實時的檢查,這就意味著當服務器中存在有負載情況的時候,靜態(tài)策略是不會根據(jù)負載情況,及時對該機器減少任務量。靜態(tài)策略是在任務準備開始分配之前,它就會根據(jù)每個服務器的具體的負載能力,制定好了分配方案,就是把任務數(shù)分配到每個服務器上,但是到了系統(tǒng)運載的時候,它是不會根據(jù)具體情況進行調整,如果一開始的分配出現(xiàn)了錯誤,就會影響到后面一系列的任務分配。雖然靜態(tài)策略存在很多問題,而且面對日益增多的任務量,它已經難以適應了,不過這種策略的實現(xiàn)比較簡單,負載均衡產生的系統(tǒng)額外開銷小。而且對于擁有者來說,這種方式較為簡單,使用起來不會太復雜。
(2)動態(tài)策略:動態(tài)負載均衡策略與靜態(tài)策略最大的區(qū)別就是它能夠實時監(jiān)測系統(tǒng)的運行具體情況,還可以根據(jù)實時的動態(tài)情況來調整具體的任務分配。通過動態(tài)負載均衡策略,可以把更多的任務量分配到任務量少的服務器上,以及運行速度更快的服務器,從而平衡好各個服務器,有效防止負載情況發(fā)生。但是這種方式存在一個弊端,就是因為要實時的監(jiān)測各個服務器,所以它會額外產生更多的系統(tǒng)開銷。
其次根據(jù)負載控制方式的不同,可以分為集中式和分布式的策略,在最早的時候,因為當時的云規(guī)模較小,系統(tǒng)能夠有效的運行,只需要通過集中式的策略可以很好的控制整個系統(tǒng),但是隨著信息量暴增,網上的任務量越來越多,這種集中式策略已經無法適用于當下的社會,所以因此開始轉向分布式策略,如圖1。
圖1:分布式策略
(1)集中式策略:集中式策略中是通過總的一臺服務器然后對其他機器統(tǒng)一進行管理,然后這個服務器就會定期的對所有的服務器進行檢測,在檢測完了以后會依據(jù)其結果來判定每個節(jié)點的具體情況,是否有存在負載,以及哪個服務器有更多的空閑資源可以進行更多的分配。也就是該集中式策略中,只有一個均衡器來進行任務分配,簡單、高效,易于系統(tǒng)維護,在數(shù)據(jù)較少的時候,這種策略可以說沒有缺點,它能夠很好的分配好任務,但是隨著數(shù)據(jù)增多,任務量加大,這種策略就顯現(xiàn)出弊端來,因為這種策略過分依賴均衡器,所有的任務分配都擠壓在一個均衡器上,隨著系統(tǒng)規(guī)模擴大對均衡器的計算速度要求提高,在當前大數(shù)據(jù)背景下,單個硬件的計算速度遠遠不能滿足任務請求量,負載均衡效率的提升遇到瓶頸,由于過分依賴均衡器,當均衡器失效時,會導致整個云計算系統(tǒng)不可用。而當下有沒有足夠的能力與技術,不斷對均衡器進行優(yōu)化與省級,而且這樣的做法也并不實際,所以在這個基礎之上,人們又研發(fā)出了分布式策略。
(2)分布式策略:分布式策略沒有部署負載均衡器,也就是沒有單獨的一臺均衡器來控制所有的服務器。每一臺服務器都參與任務調度,通過所有的服務器都參與到任務的分配中時,從而減輕壓力,與集中式策略相對來說,分布式策略能夠有效降低服務器的壓力。分布式策略中,每個服務器既是獨立的,也是一體的,獨立是它們各自接受任務的分配,不占用彼此的空間,而服務器一體指的是所有的服務器都是共通的,各自共享信息,通過信息的共享能夠得知哪個服務器出現(xiàn)了負載情況。所以只要發(fā)現(xiàn)哪個服務器有可能會出現(xiàn)負載情況時,便能及時作出調整,所以這種系統(tǒng)具有良好的可擴展性。因此它比起集中式策略來說,它更加符合現(xiàn)代的客戶需求。
之所以要在云計算當中運用負載均衡技術,就是為了考慮到云計算一旦出現(xiàn)負載情況時會造成非常大的不必要的浪費,因此通過負載均衡技術的應用,可以有效的節(jié)省資源,更加高效的利用資源,同時提升系統(tǒng)的整體性能,從而更加高效的工作,滿足人們的需求。
對于傳統(tǒng)的均衡技術來說,通常都是基于服務器的一個響應速度的快慢、連接數(shù)量的多少來使用的,雖然說通過均衡負載技術,可以有效提升系統(tǒng)的使用效率,避免出現(xiàn)負載的情況,節(jié)省資源等等。不過在使用均衡負載技術時,由于其對象粒度過大,實際的操作過程中是很難保證負載均衡的效果,還是會出現(xiàn)不必要的浪費。不過隨著運用虛擬化技術,是能夠把均衡對象的粒度變小,把資源具象化。
基于傳統(tǒng)的IT架構的基礎之上,引入了云計算系統(tǒng),針對系統(tǒng)負載的情況進行了優(yōu)化,如圖2所示。
圖2:云計算負載擴展技術架構
在這個云計算負載擴展技術中,本地服務器是所有用戶想要查閱信息的進入端口,隨著本地服務器的信息量增多,系統(tǒng)就會開始分析負載的情況,合理分配任務量,有效降低負載情況。
在傳統(tǒng)的方法當中,高性能計算集群是最為普遍的應用于解決公司IT性能的方式,為了能夠達到提高性能的作用,提高計算效率,采用的方式是把收集到的任務根據(jù)負載情況發(fā)送到不同的計算節(jié)點上。為了能夠很好的應對云計算負載的情況,可以通過搭建空閑資源池的方式來解決,就是在云計算系統(tǒng)中,有一個專門應對負載的空閑資源池,有了這個資源池后,系統(tǒng)可以更加高效的分配任務,防止負載情況發(fā)生。用戶在用機器提交任務的時候,該系統(tǒng)會擇優(yōu)選擇在資源池中目前對它來說最合適的一臺機器,往往也就是最為空閑的機器,然后再通過遠程控制的方式來把需要做的任務分發(fā)出去,這就是充分的利用資源,通過分析把最為空閑的機器利用起來,并實現(xiàn)資源的共享,減少機器的負載情況。
中間件的功能主要是起到統(tǒng)領的作用,所有參與工作的機器,都是不具備自行分析負載情況的,如果沒有了中間件,機器就會不斷收錄信息,且不管自身是否出現(xiàn)了負載,當有了中間件的介入以后,它可以通過數(shù)據(jù)的分析,控制好每臺機器的具體情況,針對可能會出現(xiàn)負載的機器會減少任務量,對于較為空閑的機器,就會加大任務量,以這樣的方式來保持各個機器都能較好的運行。
隨著云計算的發(fā)展,逐漸出現(xiàn)了本地負載不足的情況,如果不加以重視,負載的情況會影響到云計算的資源利用率下降,因此通過負載均衡技術能夠有效解決云計算負載的問題。