目前互聯網上最火的應用應該算是社交網站了,隨著用戶數的激增,一些頂級的社交網站每天要分享近20億張照片,而且需求還在不斷增加。那么這些社交網站是怎么實現這種海量照片的存儲和分享的?其幕后功臣之一就是Cold Storage系統。
知識掃盲——認識Cold Storage
Cold Storage直譯過來就是“冷存儲”,意思就是存儲歷史數據的存儲系統。大家知道每天都有數以千萬計的用戶在社交網站上發布自己的社交日記,很多日記都包含圖片。因為社交信息的傳播具有及時性的特點,常常發布幾天后圖片就基本沒什么人訪問。因此社交網站歷史圖片數量非常多,為了保存這些歷史圖片,他們通過購買數量龐大的低端商品化硬盤來保存這些圖片,數量之大,可以存放數百PB的數據(圖1)。
不只是簡單的存儲——Cold Storage工作原理解密
如上所述,社交網站每天都要保存海量的圖片,但是Cold Storage并非只是簡單保存這些數據。因為每天有很多用戶在分享其中的圖片,這樣網站不僅要保證歷史圖片的顯示,而且要方便用戶從服務器數據庫中引用。這樣Cold Storage系統就要和開放機架、網絡、數據中心等其他組成部分配合,同時還要保證數據的安全。Cold Storage主要是通過下面的技術手段實現的。

1. Open Vault Storage解決方案
Open Vault Storage是一套專門針對Open Rack(開放計算的機架標準)打造的簡單高效的存儲解決方案。它采用了模塊化的I/O拓撲,每個2U機框可容納30塊硬盤,這樣就可以在盡可能少的空間里擺放最多的硬盤,達到最高的存儲/空間比。Open Vault Storage另一個重要特性就是交互性強,它幾乎可以與任何服務器實現交互操作。這樣社交網站服務器系統就能夠實現和Cold Storage的數據交換(類似本地硬盤連接到Windows系統中),方便用戶在網站上可以任意實現圖片的下載、引用和分享(圖2)。
2. 數據安全保護神——Reed Solomon Coding糾刪碼技術
對于每個企業來說,保障數據安全始終是重中之重的事情。特別是對于大型的網站企業,由于它們的數據量極其龐大,因此Cold Storage除了解決簡單存儲功能外還要保證數據安全。目前Cold Storage系統使用的是“Reed Solomon Coding糾刪碼技術”。

這種技術使用的是存儲領域常用的數據冗余技術,它的原理是將一份原始數據分成n塊,然后根據這些分好的數據塊再生成m個校驗塊。這樣當原始數據發生損壞的時候,我們利用特定的算法,從n個原始數據塊和m個校驗塊中任取x塊組合就能解碼出原始數據(圖3)。
通過冗余技術,Cold Storage可以通過較小的成本實現數據的存儲和冗余保護。從技術角度講,校驗塊越多,安全性保障就越高,但同時需要存儲校驗塊的容量開銷就越大,從而提高存儲成本。為了實現最佳的平衡,一些大型的社交網站目前的配置是10:4(即每10塊硬盤配4塊校驗盤)。這樣只要使用1.4GB存儲空間就可以保障1GB數據的安全(圖4)。

3. 規模越大性能越好
社交網站上保存的數據非常多,而且每天24小時都要面對數以千萬計的用戶的訪問。對于常規的系統規模變大后性能就會降低,但是Cold Storage系統卻可以實現規模越大性能越好。因為這個系統在每次增加容量時軟件都要對現有數據進行再平衡,即將原有數據分配到新的硬件上,并釋放之前用過的空間。這樣增加容量后對系統的性能就不會有影響,同時借助網站強大的服務器硬件和云計算、并行計算能力,Cold Storage可以實現規模越大性能越好,隨時隨刻都能夠給用戶良好的交互體驗。