張寶燕
(晉中學院,山西晉中030600)
云技術[1]當前和大數(shù)據(jù)、智能城市建設并稱為三大計算機技術發(fā)展大趨勢,作為一種新型的計算機應用方式,使用方式,云計算正在從更經(jīng)濟、更效率的運作方式出現(xiàn)在世人面前。記得馮諾依曼等計算機設計的先驅(qū)曾經(jīng)講過,“對于這樣的大型計算機(那個時候所謂的大型機,還沒有現(xiàn)在的手機運算性能強),世界需要幾臺就足夠了?!保?]然而現(xiàn)在計算機的生產(chǎn)數(shù)量,遠遠超出他們的規(guī)劃和設想。計算機的微型化、硬件成本的跳水式降低、使得計算機像一件普通的家庭必備用具或者教學用具一樣,廣泛的部署到生產(chǎn)、生活的各個方面。然而,幾十年計算機的發(fā)展和普及,實際的計算機使用當中,其實也存在著很多的問題。
對于網(wǎng)絡技術也飛快發(fā)展的今天,計算機依賴個人計算機IBM體系,以及服務器架構下的服務網(wǎng)絡,還有巨型機等高昂設備部署的今天,對于其更低代價下,臨時的較高計算要求、數(shù)據(jù)穩(wěn)定安全要求的這種計算機需求,仍然沒有得到足夠的體現(xiàn)。計算機資源,被大量的盲目生產(chǎn),和低效的應用,它的部署,更多的起到一種多媒體設備,以及一些娛樂性質(zhì)的設備。將計算機能夠更加廉價的作為一種商業(yè)資源去共享,去方便的為企業(yè)和家庭服務,是未來發(fā)展的需要。
對于云計算而言,能夠完成虛擬化資源分配、大量數(shù)據(jù)存儲管理、編程二次開發(fā)、計算機集群部署。在內(nèi)部實現(xiàn)負載均衡,計算機健康性掃描,數(shù)據(jù)冗余備份、動態(tài)計算機更新、遠程控制管理等[3]??傮w呈現(xiàn)的設計結構如圖1所示。
圖1 云計算集群系統(tǒng)結構
系統(tǒng)可靠性在定義當中它指的是可運行t=0到以后的任意時刻t這段時間設備不發(fā)生故障的概率,這個概率的分布函數(shù)記作R(t)。而單位時間內(nèi),發(fā)生故障的器件數(shù)目和總共測試的器件數(shù)目之比為λ。而這個發(fā)生故障的概率分布和λ有關系,這種關系表達為:R(t)=e^(-λt)。
在網(wǎng)絡當中,復雜的拓撲結構[4]通過分解以后,是由串聯(lián)和并聯(lián)兩種方式交互式組合而實現(xiàn)的一個超大型網(wǎng)絡。通過串聯(lián)和并聯(lián)的分解計算,再將各自作為整體在整體結構上執(zhí)行串聯(lián)或者并聯(lián)關系計算,最終計算出實際的可靠結構。因此網(wǎng)絡的可靠性,可以通過建立這種計算方式來實現(xiàn)可靠程度的計算。
在這種連接方式下,只要一個結構出現(xiàn)故障的時候,那么整個系統(tǒng)就會出現(xiàn)癱瘓,因此可靠性為:R=R1×R2×…×Rn;
對應的,系統(tǒng)發(fā)生失效性為:λ=λ1+λ2+…+λn。
而在并聯(lián)系統(tǒng)下,系統(tǒng)的可靠性卻是系統(tǒng)全部發(fā)生故障工作的補集。表達為:R=1-(1-R1)×(1-R2)×…×(1-Rn)。
在這種情形下,系統(tǒng)失效為:
這里系統(tǒng)的子系統(tǒng)都是只要有一個正常工作就行,也就是它們都是相同功能作用的情形,也叫做冗余子系統(tǒng)。在云計算過程當中,冗余的存在[5]能夠為系統(tǒng)總體可靠性大大提高。
特別的,在非常特殊的情形下,能夠設計一類特殊結構的并聯(lián)系統(tǒng)。這種系統(tǒng)由m=2n+1個子系統(tǒng)構成,也就是說m是奇數(shù),最終外面的輸出靠一個表決器來完成輸出。也就是說系統(tǒng)的運行結果通過m個子系統(tǒng)的結果進行表決,把結果相同數(shù)目最多的結果作為正確結果輸出。這種結構下的系統(tǒng)可靠性為:
M模冗余系統(tǒng)結果如圖2所示。
圖2 m模冗余系統(tǒng)結構
在現(xiàn)在計算機工藝和電子元器件已經(jīng)非??煽康那樾蜗?,m的取值不必取得非常大,事實上一個主機服務器在從開始使用的時候,安全運行一兩年,完全不成問題,因此,在實際的云計算集群部署中,m只是取3即可,采用最小的參數(shù)進行三重度冗余備份技術,實現(xiàn)計算機集群的可靠性。三重冗余備份的類設計結構圖如圖3所示。
圖3 三重度冗余類結構設計
負載均衡有很多的方式,例如最基礎的隨機分配模式[6],輪詢分配模式,權重輪詢分配模式。隨機分配模式就是采用系統(tǒng)的隨機函數(shù),開始隨機的計算帶分配主機,隨機彈出哪個,就將任務分配給它,這種算法的特點就是分配過程非常的高效,無論在任何情況下,都能夠在較少的計算資源和仍以數(shù)量的任務和主機資源對比關系中,均能夠變現(xiàn)出較為合理的分配行為,但是這種算法過于不確定,它的穩(wěn)定性不能夠預測,并且他的性能很大程度上取決于隨機函數(shù)的分布。負載均衡類設計如圖4所示。
圖4 負載均衡類設計
該功能依靠的是云計算平臺的多個主機之間的消息通信機制實現(xiàn)的,消息通信分為兩種模型,一種是請求回復型,另一種是發(fā)布訂閱的模式。
這里采用了發(fā)布訂閱消息模式[7],該模式能夠為用戶提供一個更好的運作方式,這里發(fā)送者,不再無選擇的,盲目的發(fā)送信息,只負責額標注消息的類別。而消息的發(fā)送與否,取決于對方的訂閱。訂閱者,對于消息,進行自己感興趣的進行訂閱,它自身也并不知道消息是什么內(nèi)容,發(fā)布者按照訂閱情況,將消息有選擇的發(fā)送到各個訂閱者手中。這種方式實現(xiàn)了訂閱者和發(fā)布者之間的消息傳遞類型有更多的有選擇的可能,減少了消息發(fā)布的盲目性,提升了效率。它自身再結合并行算法、以及緩存機制,或者網(wǎng)絡自身主機連接關系,實現(xiàn)更為復雜的消息共享機制,實現(xiàn)更多的可能和可開放性。
在這種情形下,集群計算機的消息模式,采用集群交互的功能來使得消息的發(fā)送接收更加穩(wěn)定。它們通過節(jié)點間的特殊通道進行通信。這種特殊性體現(xiàn)在通道不需要某兩個節(jié)點進行通信時,額外建立,而是共享集群通道進行通信,這在路由功能的方便、以及單點故障處理中,都是非常好的體現(xiàn)。因為從圖論角度講,n個節(jié)點的兩兩連接通信信道數(shù)量是n(n-1)/2。是O(n^2)的復雜度。而建立公共信道以后,它們只需要共享同一個信道就可以,減少了信道建立開銷。
在集群信道建立體制下,仍然設計了三種集群通信模式。它們分別為不同的應用情形所使用,以使得整體取得一個最佳的效果。
1)隊列消費集群:由于他們的通信信道共享,因此任務隊列也是共享的,在這種狀況下,當出現(xiàn)單點故障的時候,排隊的消息任務會轉(zhuǎn)移到其他相鄰主機任務隊列中去,不會實現(xiàn)任務失敗的情況。2)消息代理群:這其實是一個類似于中介的,運作機制。3)主從集群:這不再是對等主機的情形,而是一種領導與被領導,服從與被服從的關系。云集群類設計如圖5所示。
圖5 云集群類設計
系統(tǒng)安全性設計,需要考慮的問題是創(chuàng)建服務器和添加服務器的時候?qū)嵭序炞C機制,能夠登記注冊相關的主機身份信息。并對主機的優(yōu)先結構進行設計,是整個系統(tǒng)把關入口。對于系統(tǒng)安全算法,通過算法采集接口提供,為其中的詳細設計提供算法支持。在摘要算法中,通過md5算法實現(xiàn)簡單的摘要計算,用SHA-256實現(xiàn)高強度的復雜摘要計算[8]。
本文從總體到細節(jié)詳細設計了云計算集群結構,從遠程訪問控制、網(wǎng)頁顯示和JSP編譯、三重冗余備份、集群部署和負載均衡設計等幾個方面來展開設計云計算結構[9]。對云計算可靠性問題、負載均衡、健康性掃描、安全性設計等幾個問題,進行了原理上的分析并給出合適的解決方案??煽啃苑桨覆捎昧巳厝哂鄠浞莸牟呗裕诖鷥r和性能上取得了較好的方式。對于負載均衡來講,采用帶權輪詢的方式實現(xiàn)負載的均衡,并在實際的進一步設計當中,把負載均衡又詳細設計成web主機和app主機兩個部分,進一步結合實際情況細化了設計過程。對于健康性掃描,采用訂閱的方式進行掃描,實現(xiàn)優(yōu)化的使用通信共享總線的目的。
[1]Kaewkasi.CloudComputing[EB/OL].2015.4.http://en.wikipedia.org/wiki/Cloud_computing.2015 -04.
[2]Michael Armbrust,Armando Fox,Rean Griffith,et al.A-bove the Clouds:ABerkeley View of Cloud Computing,Technical Report No[J].UCB/EECS -2009 -28.2009.2.
[3]Lai L,L Shen,Y Zheng,et al.REPERA,A Distributed ArchitectureEfficientlyCombining Pure Replication and Erasure Code[C].2nd International Conference on Cloud Computing and Virtualization,2010.
[4]劉鵬.云計算-將計算變成水和電[J].中國計算機協(xié)會通訊,2009,5(10):49 -54.
[5]陳康,鄭緯民.云計算:系統(tǒng)實例與研究現(xiàn)狀[J].軟件學報,2009,20(5):1337 -1348.
[6]King,Rachel.CloudStorage[EB/OL].2015.1.http://en.wikipedia.org/wiki/Cloud_storage.2015 -01
[7]Danielson.Amazon Simple Storage Service(Amazon S3)[EB/OL].2015.4.http://aws.amazon.com/s3/,2009.
[8]Rouse,Margaret.Hadoop[EB/OL].2015.3.http://hadoop.apache.org/,2015 -03.