多備份是專注于業務數據云端備份、恢復、遷移、存儲和歸檔的云平臺(SaaS)應用提供商。其中,為了實現數據的足夠安全,我們采用了自主研發的cloud 5技術。
問題的來源
2014年2月份,一位用戶匆匆打電話來。提到了他的網站每天有大量的訂單產生,他也用多備份備份了他的網站到網盤,但他還是比較擔心,萬一云盤有問題或停用了(百度云出現過這種情況),是不是他的數據就丟了?他告訴多備份工作人員,他之前的做法是,這些數據他手動備份了好幾個地方,但是管理起來很麻煩,容易搞錯,有一次甚至直接刪除了。
這個用戶并非空穴來風,基于網絡環境復雜,會出現各種各樣的情況,如何建立起數據的容錯,糾正,關聯機制,對多備份而言是一個重要的技術問題。如果沒有一個很好的云端解決方案,用戶的重要數據備份上來后,也無法給用戶一個很好的可靠性保護承諾,備份也就失去了意義。
這個問題立即得到了產品技術團隊的快速響應,在短短的3天之內,就找出了好幾套方案,其中從迅雷加盟的一位資深技術專家,提出了用Raid 5技術思想來增強云存儲的可靠性,既可以大大提高云存儲可靠性,同時還可以提高保存備份結果的速度。
什么是RAID
獨立硬盤冗余陣列( RAID , R edundant A rray of I ndependent D isks),簡稱硬盤陣列。 磁盤陣列是由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數據所產生加成效果提升整個磁盤系統效能。利用這項技術,將數據切割成許多區段,分別存放在各個硬盤上。在數組中任一顆硬盤故障時,仍可讀出數據,在數據重構時,將數據經計算后重新置入新硬盤中。
RAID比單顆硬盤有以下幾個好處:增強數據集成度,增強容錯功能,增加處理量或容量。另外,磁盤陣列對于計算機來說,看起來就像一個單獨的硬盤或邏輯存儲單元。常見的有RAID-0,RAID-1,RAID-5,RAID-10。假設一塊磁盤的故障率為1%,那么采用最簡單的RAID5也可以使數據的故障率降低30倍以上。即故障率將低于0.033%。
在這些技術中,RAID-5是一種儲存性能、數據安全和存儲成本兼顧的折衷方案。它使用的是Disk Striping(硬盤分區)技術。RAID 5至少需要三顆硬盤 ,RAID 5不是對存儲的數據進行備份,而是把數據和相對應的parity(奇偶校驗信息)存儲到組成RAID5的各個磁盤上,并且parity和相對應的數據分別存儲于不同的磁盤上。 當RAID5的一個磁盤數據發生損壞后,可以利用剩下的數據和相應的parity去恢復被損壞的數據。 (如下圖)
多備份cloud 5的誕生
基于傳統備份價格高昂,對技術人員精力有限,同時云端備份價格低廉,并且與站點云端主機天然的血脈相承。我們的存儲研發專家組考核完技術的可行性后,立即著手于把RAID 5的思想移植到多備份智能代理模式上,實現原理圖如下:
把數據按塊壓縮,劃分,加密后,往其中cloud A里寫數據,同時會在其余的cloud B或cloud C寫入parity。一旦任何一個云設施數據遭遇不可抗力被毀滅時,我們可以從另外的云設施調用parity來重建數據。也就是只有在同時有兩個及以上云端同時出現問題,才可能導致數據的不可用,這樣的概率有多小,恐怕工業級的6個9(99.9999%)才足以形容。
繼raid 5的模式在多個云平臺上應用后,更多的低成本、可靠的存儲模式將陸續推出。