“塊”是IT存儲中十分常見的概念,而所謂的塊存儲就是事先在存儲空間中畫好整齊的格子(格式化),然后以一個格子為最小單位進行存取,即每次存取至少涉及一個格子的空間。基于這樣的存儲方式,便衍生出了諸如讀寫、復制、傳輸等相關技術。
不過,在云計算時代,曾經無限風光的“塊”技術卻遭遇了不少的尷尬。
首先是有限帶寬下的數據傳輸問題
在一切向“云”看的當下,一個企業如果想轉向云計算,那或多或少會需要改變企業網絡帶寬。大部分企業選擇的云計算都是最簡單的帶有數據保護機制的云存儲解決方案就要面臨一個問題,即企業現有的帶寬是否能支持上云所需的龐大的數據流。
這里將塊塊級與字節級復制進行對比:假設某系統下的一個文件中發生了一次大小為512B(例如將某一個A改成了B)更改,這時如果是數據塊級復制的話,即使在一些數據處理方式下,其災備系統仍需要傳輸至少64KB的網絡包到災備機上以完成數據保護,而如果是字節級復制的話,災備系統則只需要傳輸512B字節的網絡包到災備機上以完成數據保護,如果是海量數據的傳輸的,字節級的復制技術的這一優勢將會更加明顯,因此,在帶寬已經成為稀缺資源的云計算時代,字節級數據捕獲與復制技術顯然更加符合“云”的要求。
其次是,數據的刪除問題
云端環境下,對于云端的選型能力較弱,所以只能進行源端的數據重刪,無法做到目標段數據的刪除。固定塊的大小可能為8KB或64KB,區別在于塊越小,被判定為冗余的概率越大。這也就意味著消除的冗余更多,存儲的數據更少。如果文件發生變化,而重復數據刪除產品依然利用上次檢查到的固定塊,那就可能無法監測冗余部分。
有了冗余就涉及到了數據刪除問題,但塊級刪除技術仍然無法給出令人滿意的答案。塊級刪除技術需要利用主索引匹配數據塊和該數據塊的指針,從而“重新組裝”數據塊。塊級重復數據刪除所需的索引較多,因此,在數據重復確定時所需要耗費的計算時間也就更多,備份功能也因此在重復數據刪除過程中受到更大的影響。
最后,我們再來了解一下基于塊的CDP技術:
CDP(Continuous Data Protection,持續數據保護)實現的關鍵技術是對數據變化的記錄和保存,以便實現任意時間點的快速恢復。數據基于數據塊的CDP功能直接運行在物理的存儲設備或邏輯的卷管理器上,甚至是數據傳輸層上。當數據塊寫入生產數據的存儲設備時,CDP系統可以捕獲數據的拷貝并將其存放在備份服務器中,當災難發生后,簡單地選擇需要恢復到的時間點即可實現數據的快速恢復。
基于塊的CDP主要包括兩個技術:COW(copy-on-write)和ROW(redirect-on-write)。COW技術具有如下兩個缺點:明顯的寫延遲以及無法實現系統級別的全景恢復,僅能恢復由于誤操作導致的局部數據污染。而結合了快照備份數據的ROW技術雖然可以實現系統級別的全量恢復,但由于備份數據量的增加,數據版本之間形成相互依賴的鏈條,使得數據管理越來越復雜,數據塊在存儲層進行異步的傳輸過程中,很難保證數據庫的一致性,進而影響數據的可恢復性和恢復效率。雖然有企業希望采用獨立硬件的方式解決上述問題,但這樣做需要額外的服務器和網絡硬件,每臺代理服務器上的虛擬機的數量受到嚴格的限制,所以成本和性能往往也難以接受。
當然,“塊”技術在銀行、保險等行業依然被廣泛應用,但隨著新技術、新需求的不斷出現,任何一種技術都不可能停下迭代的腳步,比如分布式塊存儲和OpenStack等開源項目之間的聯系正在進一步加深,未來,塊存儲、塊復制等技術將在企業私有云平臺上做更好的集成和運維。