要實現雲計算的隨需應變的目標,關鍵在於運算能力和儲存能力的適應性。我們先看看如何實現儲存的隨需應變,這裡的隨需應變的需主要是指儲存空間和吞吐能力(效能),當然,安全性,可靠性,可擴充套件性等指標都是基本的。基於單台儲存裝置的能力總是有限的這種事實,下面的儲存分析都是基於分布式儲存,而不基於單台儲存裝置。因為我們是基於分布式儲存來滿足雲儲存的要求,我們不關心作業系統級的儲存裝置訪問和管理,我們只關心基於作業系統檔案系統之上的邏輯儲存部分。我們先看一下要雲儲存要達到的幾個關鍵目標:高安全,高可靠,高擴充套件,高效能(吞吐),高易用。
為了更好的分析資料儲存後面所採用的技術和架構,我們從兩個方面來分析一下資料儲存的一些特性:
1)首先來看資料的儲存形式,基本的資料儲存有兩種形式,一是基於檔案系統,二是基於資料庫系統,但這兩種形式本質上都是基於檔案系統,為了便於後面的說明,我們還是分開。前者就是通常的檔案,而後者就是資料庫;
2)其次我們分析一下資料本身的特性,可以從幾個方面來看:
a)從組織形式,我們可以把資料分為結構化資料和非結構化資料;資料內部或外部的關係是否複雜;
b)從操作特性,我們可以分析資料是否修改頻繁,檔案操作是新增多,附加多還是修改多;
c) 資料量級別。
上述分析的這些資料特性直接影響到我們對儲存模式和技術的選擇,在實際架構儲存模型時,我們需要綜合考慮到這些特點來權衡所採用的技術或者架構策略。大而全的架構策略在雲計算和海量資料處理方面將不再是首選。我們需要一種因地制宜,有針對性的架構策略來平衡各方面的需求。
我們先看看傳統的儲存解決方案針對這些問題是如何解決的:
1)在擴容方面:當然是增加儲存裝置;但單台裝置擴容會受到定址能力的限制;
2)可靠性方面:一般採用磁碟陣列,大多採用的都是同時多路寫模式,由於裝置大多在乙個物理點,可靠性並不能完全保證,價效比方面也很一般;不是真正意義上的分布式儲存;
3)在安全方面:由於一般都是針對特定使用者的,具有物理邊界隔離,所以安全性比較好;
4)擴充套件性反面:受限,比較難以擴充套件,特別是動態公升級;
5)效能方面:一般情況下效能不是很好,特別是寫,專門儲存裝置會好些;
6)易用性:有些方式簡單,比如raid1,有些比較複雜;但對於使用者來說是透明的,也就是透明性比較好;
7)儲存能力:可以擴充,但會出現要不不足,要不剩餘浪費的矛盾;
8)綜合效益:對單點裝置要求比較高,價效比比較低,利用率也比較低。
如果我們應用系統採用的資料庫系統,很顯然,上面這些特性的實現依賴於資料庫系統本身,一般廠商都會提供完整的解決方案,比如oralce的rac,微軟的sql azure等。這裡我們不考慮別人成熟的方案,而是基於傳統的技術來看看如何實現和保證上述雲儲存的目標的:
首先來看看基於傳統的資料庫系統(這對於大多數企業級業務系統來說是可選的方案)的情況,資料儲存使用資料庫,一般都是saas應用,這種方式下一般多採用多客戶租賃模式,資料隔離分為表級共享,表結構共享和資料庫共享三種方式(大家可以去搜一下,原理非常簡單),在這種情況下,資料儲存是可以實現隨需應變的,但資料儲存的可靠性和效能都依賴於資料庫廠商對這些問題的解決方案(比如oracle的rac技術等);而對於計算部分,可以採用集群負載均衡的方式,這種技術現在比較成熟,需要注意的是快取方面。這種方式一般只針對使用者和應用程式,對於內部的大規模資料處理是不行的,因為這種模式是部署分布,而不是計算分布。下面來看看採用這種方式的一些指標分析:
1)在擴容方面:利用資料庫廠商提供的技術來解決;
2)可靠性方面:依賴於資料庫廠商提供的底層技術;但架構,管理相對容易,因為使用的都是別人成熟的技術。
3)在安全方面:如果是私有雲,安全問題不大,但如果是公有雲,表級共享的安全相對比較差,後面兩種情況要好些;需要應用程式完全自己控制資料的隔離和訪問許可權,系統設計和實現上比較複雜。
4)擴充套件性反面:應用程式動態公升級比較難,如果採用分伺服器逐步切換還是可以的;
5)效能方面:採用應用伺服器負載均衡和資料庫系統負載均衡,效能上沒什麼大問題;
6)易用性:比較好,只要處理好隔離和資料庫連線,跟傳統的開發方式區別不大;
7)儲存能力:可以實現隨需應變;
8)綜合效益:對單點裝置要求比較高,價效比比較低,利用率也比較低。
這種方式跟傳統的管理系統一樣存在著乙個大資料量處理的問題,一般採用按年分資料庫或者表來儲存資料的方式來避免資料表過大而導致的效能問題,當然,在上面的模式中依然可以用這種方式來進行,只不過這個系統的複雜度會大大增加。這個問題的解決最好的方式還是選擇有比較好的解決方案的資料庫產品(雲資料庫,比如sql azure,greenplum).
另外注意,上面的解決基本是基於應用(saas)來講的,不涉及到iaas,paas。
剖析雲計算技術及架構(3 雲儲存)
ps 提高資料的可靠性,最簡單餓方法就是冗餘儲存 上述方式的冗餘儲存還可以增加讀效能 讀吞吐量 提高資料效能的另一種方法就是切割資料,用分布式計算來加快資料處理 這種方式不會增加可靠性 greenplum雲資料庫就是利用這種思想。我覺得大部分的應用 特別是企業應用 還是會基於資料庫系統來完成,這樣使...
雲計算技術
雲計算基礎設施架構 雲計算基礎設施平台一般分為以下幾層 物理設施,虛擬化,管理,服務提供。物理設施被虛擬化,提供乙個靈活的資源池體提高資源利 用率。管理層負責物理資源和虛擬資源池的管理 部署 監控 報警等。服務提供層組合管理層的功能提供某種形式的服務。雲計算存在的難題 連續高可用性 某個集群的失效處...
雲計算核心技術剖析 雲計算技術學習書籍推薦
雲計算是通過使計算分布在大量的分布式計算機上,而非本地計算機或遠端伺服器中,企業資料中心的執行將與網際網路更相似。從應用方面理解,雲計算,是一種分布式計算,充分利用資源,實現資源的共享。但是現代雲計算不再單單是這種計算的應用,還擴充套件了很多方面,比如雲儲存,雲安全等。1 雲計算 本書主要內容 2 ...