最近的調查研究表明,多達50%的企業表示希望將業務從云計算遷移回數據中心,雖然這種回旋效應有很多原因,但缺乏數據一致性是最主要的原因之一。CAP定理描述了分布式存儲系統只能提供三個要素中的兩個:Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區容錯性)。在考慮云計算遷移的應用時,必須應用CAP理論來判斷云計算存儲架構是否適合每個應用的需求。
理解CAP定理
CAP定理專注于分布式數據存儲,這是AWS、谷歌云平臺和微軟Azure等云計算服務提供商所采用的主流設計。分布式數據存儲由一系列稱為節點的服務器構建而成。每個節點都有內部存儲,當節點成簇時,它將成為一個全局存儲池。當數據被寫入存儲時,通過復制每個對象或對象的子段的擦除編碼來將數據分布在節點上。
CAP定理表明,分布式數據存儲只能提供以下三個要素中的兩個:Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區容錯性)。
分區容錯性是指分布式存儲在網絡出現故障時繼續提供數據的能力,而故障將會導致節點之間任意數量的消息丟失或延遲。由于網絡故障在全球基于云計算的任何存儲服務中都是不可避免的,因此所有系統都必須提供分區容錯。因此,在考慮云計算存儲解決方案時,企業的IT部門必須在一致性和可用性之間進行選擇。
一致性意味著系統必須在應用程序或相應的過程開展之前確認每個寫入操作。確認的必要性也適用于數據保護。例如,一致的數據存儲必須將對象復制到另一個節點,并在確認總體寫入之前驗證完成。提供一致的模型是昂貴的,尤其是在分布式體系結構中,因為在任何給定的時間點,所有節點都必須具有相同的數據。提供一致性不會影響分布式存儲中的應用程序性能,這意味著需要高速的節點內部網絡、節點之間的距離和高性能存儲介質。即使節點本身也比較昂貴,這樣就需要更快地處理數據。
盡管成本高昂,但注重一致性是絕對必要的。例如,支持金融機構的存儲基礎設施需要確保所有節點始終保持同步。如果成交了一百萬美元的交易,而這些節點沒有更新,則會出現嚴重的問題。更普遍的情況是,如果所有數據在整個存儲基礎設施中并不總是同步的,那么期望一致性的應用程序很容易被破壞。
可用性的關注點
由于與建立一致的分??布式數據存儲的成本相關,大多數云計算提供商專注于可用性或最終一致的模型。可用性的關注點意味著當初始寫入發生時,在后臺通過復制或完成數據的擦除編碼來將延遲的應答延遲到滿足數據保護要求。這取決于其他節點的位置,一致的時間范圍可以從幾秒到幾分鐘。而高交易環境可能永遠不會達到一致的狀態。
可用性的關注點有許多優點,其中主要的一個優點是降低成本。節點之間的聯網、節點中的存儲介質以及節點本身的處理能力不需要在一致性關注的分布式存儲系統的能力范圍內執行。
此外,可用性關注點是數據分發的理想選擇。無論是為了防范區域性災難,還是確保數據在地理位置上盡可能接近用戶,可用性關注點都可以實現分發,而無需為原始用戶或應用程序提供性能。
將CAP應用到NAS和對象存儲(云存儲)
考慮遷移到云端的本地應用程序通常使用網絡附屬存儲(NAS)。這些網絡附屬存儲(NAS)系統在傳統上都有一致性的特點,盡管它們中的大部分數據在一個不太一致但更可用的設計中工作得很好。為了保持一致性,網絡附屬存儲(NAS)系統通常通過緊密耦合的集群和相對較小的節點計數提供擴展功能(即通過單個節點的所有數據訪問)或非常有限的擴展。這些網絡附屬存儲(NAS)系統提供對共享存儲的低延遲訪問,并且可以保持嚴格的一致性。他們在應用程序確認或傳統的POSIX文件系統語義之前利用讀寫后驗證。
網絡附屬存儲(NAS)系統受到其他存儲系統的一致性的影響:高成本、有限的規模和有限的可用性。雖然大多數網絡附屬存儲(NAS)系統提供復制以進行災難恢復,但是這種復制是異步完成的(最終會變得一致)。這個過程對于網絡性能比較敏感,幾乎總是一個相同的系統,而二次系統最終成為主系統的鏡像。
這個機會并不是網絡附屬存儲(NAS)上的所有數據都需要一致的體系結構的功能,實際上,網絡附屬存儲(NAS)上的大部分數據在專注于可用性的體系結構上。即使是需要一致性的網絡附屬存儲(NAS)上的數據集,通常也有一部分數據更適合于可用性模型。
最常見的可用性存儲系統類型是對象存儲,這是所有云計算提供商為其負擔得起的存儲層所使用的設計。對象存儲成本低,可擴展到數千個節點。在廣泛的地理區域分布數據也很容易,使數據更易于訪問和恢復。
使用CAP來識別云計算兼容的應用程序
鑒于對CAP的了解以及從云計算提供商那里獲得的最具成本效益的存儲是以可用性為中心的認識,組織應該能夠更容易地確定哪些應用程序最適合在云端使用。
第一步是確定一致性不成問題的數據集,一個主要的例子是非活動或休眠的非結構化數據集。典型使用的網絡附屬存儲(NAS)容量的80%以上是非活動數據。這些整個數據集應該轉移到側重于可用性的成本更低的分布式存儲上。將這些數據轉移到以可用性為中心的存儲中不僅會降低保留這些數據的成本,而且這些類型的存儲架構更適合長期保存。企業面臨的挑戰不僅是識別不活動的數據并將這些數據轉移到云端,而且還要確保當數據再次需要時,用戶仍然可以使用這些數據。
下一步是確定在活動數據集內是否還存在也處于休眠狀態的子集。問題是識別和移動這些數據子集更加困難。最后一步是確定非常活躍的數據,并需要在整個存儲架構中保持一致的表示。
將一致性敏感應用程序遷移到云端
雖然三種類型的數據可以人工識別和移動,但這個過程非常耗時,需要IT部門的持續監督。人為識別的過程(甚至一些聲稱自動化識別的項目)意味著需要管理單獨的存儲容器,用于對于一致性敏感的活動數據。
另一種方法是利用云感知文件系統,該系統將根據訪問模式自動分類數據并將其放置在最合適的存儲類型上。該解決方案可以替代內部部署的高性能網絡附屬存儲(NAS),其存儲空間更小,旨在容納一致性敏感數據。它應該自動地將數據在本地部署和云計算存儲之間進行IT監督,而不需要IT人員的干預。同時,它應該將本地存儲和云計算存儲與全局文件系統進行疊加,以便用戶始終可以通過相同的路徑和協議訪問數據,從而實現對云端的無縫訪問。
云計算的一致性
云感知文件系統還應該在云端運行,這使得組織可以無縫地將應用程序移動到云端,而無需更改它們。應用程序可以運行在云計算提供商的一致性存儲版本上,但文件系統允許將投資降到最低,因為它會自動將數據移動到提供商成本更低的對象存儲層,而不需要保持一致性。
當本地存儲和云計算存儲與云文件系統數據相結合,應用程序可以在本地部署和云端之間自由移動時,根據企業的需求,云計算存儲可以用作存檔,作為一個永久運行應用程序的地方。
結論
大多數云計算計劃的回旋效應通常是數據集性能要求與組織成本節約目標之間不匹配的結果。兩者之間的差距常常導致組織將其遷移到本地的應用程序,從而導致其自食其果,或者組織必須在一致的云計算存儲進行更大的投資。云計算文件系統彌補了這種差距,使組織能夠以經濟高效的方式在任何地方放置任何應用程序,從而在高性能一致性和成本有效性的可用性之間找到適當的平衡點。
版權聲明:本文為企業網D1Net編譯,轉載需注明出處為:企業網D1Net,如果不注明出處,企業網D1Net將保留追究其法律責任的權利。