1. 程式人生 > >雲端資料儲存---Ceph是統一儲存解決方案

雲端資料儲存---Ceph是統一儲存解決方案

Ceph是統一儲存解決方案
從儲存供應商的角度來看,統一儲存被定義為從單一平臺訪問基於檔案的網路連線儲存(NAS)和基於塊的儲存區域網路(SAN)。 NAS和SAN技術在20世紀90年代末和2000年初開始流行,但是當我們展望未來時,我們確信傳統的專有NAS和SAN技術可以在50年後管理儲存需求嗎?他們是否擁有處理數十億資料所需的資源?
使用Ceph,統一儲存這個術語不僅僅意味著傳統儲存供應商聲稱提供的功能。 Ceph是從頭開始設計的,是未來的;它的構建塊可擴充套件以處理大量資料,開源模型確保我們不受任何單一供應商的突發奇想或命運的束縛。 Ceph是一種真正的統一儲存解決方案,可從單個統一軟體定義的後端提供塊,檔案和物件服務。與塊和檔案相比,物件儲存更適合當今的非結構化資料策略組合。
通過定義良好的RESTful網路介面進行訪問,使應用程式架構師和軟體工程師擺脫作業系統核心和檔案系統的細微差別和變幻莫測。此外,物件支援的應用程式可以通過釋放使用者管理離散大小的塊卷的限制來輕鬆擴充套件。塊卷有時可以就地擴充套件,但這很少是簡單,快速或無中斷的操作。可以編寫應用程式來訪問多個卷,無論是本機還是通過諸如Linux LVM(邏輯卷管理器)之類的層,但這些也可能很難管理和擴充套件仍然很痛苦。從客戶端角度來看,物件儲存不需要管理固定大小的卷或裝置。
Ceph不是管理幕後的複雜性塊和檔案,而是管理低階RADOS物件,並在它們之上定義基於塊和檔案的儲存。如果考慮傳統的基於檔案的儲存系統,則通過目錄和檔案路徑定址檔案,並且以類似的方式,Ceph中的物件由唯一識別符號定址並存儲在平面名稱空間中。
區分Ceph內部管理的RADOS物件和通過Ceph的S3 / Swift RGW服務可用的使用者可見物件非常重要。在大多數情況下,物件指的是後者。
下一代架構傳統儲存系統缺乏管理元資料的有效方法。元資料是關於實際使用者有效載荷資料的資訊(資料),包括將資料寫入和讀取的位置。傳統儲存系統維護一箇中央查詢表來跟蹤其元資料。每次客戶端傳送讀取或寫入操作的請求時,儲存系統首先執行對巨大元資料表的查詢。
收到結果後,它執行客戶端操作。對於較小的儲存系統,您可能不會注意到此集中式瓶頸對效能的影響,但隨著儲存域的大量增長,此方法的效能和可伸縮性限制變得越來越成問題。
Ceph不遵循傳統的儲存架構;它已經完全徹底改造為下一代。 Ceph不是集中儲存,操作和訪問元資料,而是引入了一種新方法,即可擴充套件雜湊控制複製(CRUSH)演算法。

有關Ceph相關主題的大量白皮書和其他文件,請訪問http://ceph.com/resources/publications而不是在每個客戶端請求的元資料表中執行查詢,CRUSH演算法使客戶端能夠獨立計算資料應寫入或讀取。通過動態獲取此元資料,無需管理集中式表。現代計算機可以非常快速地執行CRUSH查詢;此外,可以跨群集節點分佈較小的計算負載,從而利用分散式儲存的強大功能。
CRUSH通過基礎設施意識來實現這一目標。它瞭解邏輯和物理基礎架構的各個元件的層次結構和容量:驅動器,節點,機箱,資料中心機架,池,網路交換機域,資料中心行,甚至是本地要求所規定的資料中心機房和建築物。這些是任何基礎架構的故障域。 CRUSH可以安全地複製資料,以便即使多個元件在故障域內或跨故障域發生故障,也可以保護資料(永續性)和可訪問性(可用性)。 Ceph Manager在Ceph的CRUSH地圖拓撲中為其基礎設施定義了這些故障域。

Ceph後端和客戶端共享CRUSH對映的副本,因此客戶端可以匯出所需資料的位置,驅動器,伺服器,資料中心等,並直接訪問它,而不會出現集中查詢瓶頸。

CRUSH使Ceph的自我管理和自我修復成為可能。如果元件發生故障,CRUSH對映將更新以反映向下元件。後端根據定義的放置和複製規則透明地確定故障對群集的影響。如果沒有行政干預,Ceph後端將執行幕後恢復,以確保資料的永續性和可用性。後端在其他未受影響的元件上建立倖存副本的資料副本,以恢復所需的安全程度。正確設計的CRUSH對映和CRUSH規則集可確保群集在不同元件上維護跨群集分佈的多個數據副本,從而避免單個或多個元件故障導致的資料丟失。

RAID:時代的終結
冗餘獨立磁碟陣列(RAID)在過去30年中一直是基礎儲存技術。但是,隨著資料量和元件容量的急劇擴大,基於RAID的儲存系統越來越多地顯示出其侷限性,並且無法滿足當前和未來的儲存需求。
磁碟技術隨著時間的推移已經成熟。製造商現在正以更低的價格生產具有巨大容量的企業級磁碟。隨著驅動器容量和效能的提高,我們不再談論450 GB,600 GB甚至1 TB磁碟。正如我們所寫,現代企業級硬碟提供高達12 TB的儲存空間;當您閱讀這些詞語時,可能會有14個或更多TB的容量。固態硬碟(SSD)以前是一種昂貴的解決方案,適用於需要抗衝擊或最小功率和冷卻​​的大型系統或小型系統的小容量高效能部分。近年來,隨著價格暴跌,SSD容量急劇增加。自第一版Learning Ceph釋出以來,SSD對於大容量儲存也變得越來越可行。
考慮一個基於企業RAID的儲存系統,該系統由許多4或8 TB磁碟驅動器構成;如果磁碟發生故障,RAID將需要數小時甚至數天才能從單個故障驅動器中恢復。如果在恢復過程中另一個驅動器出現故障,則會出現混亂,資料可能會丟失。使用RAID從多個大型磁碟驅動器的故障或更換中恢復是一個繁瑣的過程,可能會顯著降低客戶端效能。
傳統的RAID技術包括RAID 1(映象),RAID 10(映象加條帶化)和RAID 5(奇偶校驗)。
有效的RAID實施要求將整個專用驅動器配置為熱備用。這會影響TCO,而備用驅動器耗盡可能會致命。大多數RAID策略都假設有一組相同大小的磁碟,因此如果混合使用不同速度和大小的驅動器,您將面臨效率和速度損失甚至無法恢復。通常,RAID系統將無法使用比原始驅動器略小的備用驅動器或替換驅動器,如果更換驅動器較大,則通常會浪費額外的容量。
傳統的基於RAID的儲存系統的另一個缺點是它們很少提供潛在或位翻轉錯誤的任何檢測或糾正,即bit-rot。現代儲存介質上資料的微觀足跡意味著您從儲存裝置中讀取的內容遲早會與您編寫的內容不匹配,您可能無法知道何時發生這種情況。

Ceph執行定期清理,比較校驗和並從服務中刪除更改的資料副本。通過Luminous釋出,Ceph還可以在每次讀取時獲得類似ZFS的校驗和資料能力,從而提高關鍵資料的可靠性。
基於企業RAID的系統通常需要昂貴,複雜且繁瑣的RAID可用HBA卡,這會增加管理開銷,使監控變得複雜並增加總體成本。達到大小限制時,RAID可能會碰壁。本作者多次遇到無法將儲存池擴充套件到64TB以上的系統。包括RAID 5和RAID 6在內的奇偶校驗RAID實施也會受到寫入吞吐量損失的影響,並且需要複雜且挑剔的快取策略才能為大多數應用程式提供可容忍的效能。傳統RAID的最大限制缺點通常是它只能防止磁碟故障;它無法防止交換機和網路故障,伺服器硬體和作業系統故障,甚至是區域性災難。根據策略,您可以從RAID中實現的最大保護是通過一個或最多兩個驅動器故障倖存。
諸如RAID 60之類的策略可以在一定程度上緩解這種風險,儘管它們不是普遍可用的,效率低下,可能需要額外的許可,並且仍然提供針對某些故障模式的不完全保護。
對於現代儲存容量,效能和耐用性需求,我們需要一種能夠以效能和成本效益的方式克服所有這些限制的系統。

在當天,元件故障的常見解決方案是備份系統,它本身可能很慢,成本高,容量有限,並且受制於供應商鎖定。現代資料量使得傳統的備份策略由於規模和波動性而通常是不可行的。
Ceph儲存系統是解決這些問題的最佳解決方案。
為了資料可靠性,Ceph使用資料複製(包括擦除編碼)。它不使用傳統的RAID,因此,它沒有傳統的基於RAID的企業儲存系統的限制和漏洞。由於Ceph是軟體定義的並且利用商品元件,因此我們不需要專門的硬體來進行資料複製。此外,Ceph管理員可以高度配置複製級別,他們可以根據本地需求和底層基礎架構輕鬆管理資料保護策略。 Ceph的靈活性甚至允許管理人員定義多種型別和級別的保護,以滿足同一後端內不同型別和資料群的需求。

通過複製,我們的意思是Ceph在多個不相交的驅動器和伺服器上儲存所有資料的完整,獨立副本。預設情況下,Ceph將儲存三個副本,產生的可用容量是總原始驅動器空間的1/3,但是其他配置也是可能的,並且單個群集可以容納多種策略以滿足不同的需求。
當元件發生故障時,Ceph的複製優於傳統RAID。與RAID不同,當驅動器(或伺服器!)發生故障時,該驅動器儲存的資料將從大量倖存的驅動器中恢復。由於Ceph是由CRUSH對映驅動的分散式系統,因此複製的資料副本分散在許多驅動器中。按設計,主副本和複製副本不駐留在同一驅動器或伺服器上;它們被放置在不同的故障域中。大量群集驅動器參與資料恢復,分配工作負載並最大限度地減少對正在進行的客戶端操作的爭用和影響。這使得恢復操作非常快,沒有效能瓶頸。
此外,恢復不需要備用驅動器;資料將複製到群集中其他驅動器上的未分配空間。 Ceph實現了驅動器的加權機制,並以小於任何單個驅動器容量的粒度獨立分類資料。這避免了RAID因非均勻驅動器大小而受到的限制和低效率。 Ceph根據每個驅動器和每個伺服器的權重儲存資料,通過CRUSH對映自適應地管理。使用較小的驅動器替換故障驅動器會導致叢集總容量略有減少,但與傳統RAID不同,它仍然有效。如果替換驅動器大於原始驅動器,甚至大很多倍,則群集的總容量也會相應增加。無論你投擲什麼,Ceph做對了。