與管理傳統的大型資料基礎設施相比,管理與大資料相關的拍位元組級資料存儲是一種全新的方式。 目前線上照片分享網站Shutterfly管理著30拍位元組的資料。 Shutterfly在這裡與我們分享了他們馴服「資料野獸」的經驗。
目前,每個人都在談論大資料分析方法和相關的商務智慧成果。 但是在公司能夠利用這些資料前,他們必須想辦法解決存儲問題。 管理拍位元組級甚至更大規模的資料存儲與管理傳統大型資料集有著本質的區別。
Shutterfly為一家線上照片分享網站。 他們並不限制使用者存儲照片的數量,並且允許使用者存儲原始解析度的照片,使用者在存儲時可以不用降低照片的解析度。 Shutterfly還曾承諾永遠不會刪除任何照片。
Shutterfly 高級副總裁兼首席技術官Neil Day稱:「我們的照片存檔大小已經超過了30拍位元組。 存儲池的增長速度遠遠高於使用者群的增長速度。 在我們吸引到客戶後,他們做的第一件事就是向我們上傳大量照片。 在他們喜歡上我們之後,他們做的第一件事就是再次上傳大量照片。 」
為了有一個直觀的印象,大家可以想像一下,1拍位元組等於100太位元組,等於1百萬吉位元組。 美國宇航局哈勃太空望遠鏡前20年的觀測資料存檔也僅為45太位元組多一點。 以128 kB/s速率壓縮的1太位元組音訊資料可以存儲17000小時的音訊
拍位元組級基礎設施的特點
Day稱:「拍位元組級基礎設施與傳統存儲設施完全不同。 建立和維護它們非常困難。 與傳統大型資料集的管理壓力相比,一個拍位元組或多個拍位元組基礎設施的管理壓力完全是天壤之別。 它們之間的差異就如同在筆記本電腦上處理資料和在RAID陣列上處理資料一樣。 」
Day在2009年進入Shutterfly網站。 當時存儲已經成為了公司最大的開銷,並且這一開銷仍然在飛速地增長。 這些開銷的增長速度並不是根據原始容量的增長速度而增長,而是根據員工數量的增長速度而增長。
Day 稱:「存儲每增長n個拍位元組就意味著我們需要增加一名存儲管理員,以及相應的物理和邏輯基礎設施。 有了這些大型存儲,資料量不斷創下新高。 實際管理這些大型存檔的人必須不斷的解決硬體故障問題。 每個人都想解決這一基本問題,因為大家都清楚硬碟方面的任何一個故障都會導致服務中斷。 那麼你如何確保資料能夠被持續獲取,如何保證性能不會下降?」
擴展RAID是一個棘手的問題
失效備援的標準解決方案是進行複製,通常是以RAID陣列的形式進行。 但是如果規模龐大,那麼RAID產生的問題將比解決的問題更多。 在傳統的RAID資料存儲方案中,為了保證完整性和可用性,每個資料的拷貝都會被做成鏡像,存儲在不同的磁碟陣列上。 不過,這也意味著每份被存儲和被做成鏡像的資料將導致存儲容量膨脹五倍。 隨著RAID陣列中的磁片容量越來越大,將故障磁片中的內容恢復到新磁片上所需要的時間也越來越長。
Day 稱:「實際上,我們在RAID上並沒有遇到操作問題。 我們遇到的問題是,磁片容量越來越大,如果磁片元件出現故障,切換至冗余系統的時間將越來越長。 同位與生成的資料集的大小是成正比的。 目前我們已經開始在基礎設施中使用1太位元組和2太位元組的磁片,這導致切換到冗余系統的時間更長。 目前的發展趨勢並沒有朝著正確的方向發展。 」
可靠性和可用性對於Shutterfly來說非常關鍵,這也是企業級存儲的需求。 Day稱,快速增長的存儲成本使得商品化服務越來越具有吸引力。 在Day和他的團隊對一些能夠讓Shutterfly控制成本的潛在技術解決方案進行投資的過程中,他們接觸到了一種名為糾刪碼的技術。 這一技術引起了他們的興趣。
利用糾刪碼創建下一代存儲
Reed-Solomon糾刪碼最初是作為前身糾錯(FEC)代碼,用於在不可靠的通道中發送資料,例如深空探測任務中的資料傳輸。 這一技術還被廣泛的應用在CD和DVD上,以處理灰塵和劃痕等光碟損傷問題。 目前幾家存儲廠商已經開始展開合作,將糾刪碼整合到他們的解決方案中。 通過糾刪碼,資料段能夠被分解為多個小塊,每一小塊資料本身都是沒用的。 然後,這些資料塊被分散到不同的硬碟上或是伺服器上。 只需要部分資料塊,資料就能夠隨時被重新恢復,甚至當硬碟故障導致多個資料塊丟失後,資料仍然能夠被完整地拼湊起來。 換句話說,你不再需要創建多份資料拷貝,單個實例就能夠保證資料的完整性和可用性。
總部位於芝加哥的Cleversaf公司是較早涉足糾刪碼解決方案的廠商之一。 該公司還通過增加存儲單元資訊研發出了分散碼技術。 該技術允許使用者在地理位置上相互獨立的地方,如在多個資料中心上存儲資料塊、或是片段。
由於每個片斷在數學意義上都是無用的,這使得其具有私密性和安全性。 與RAID需要多份拷貝不同,資訊分散技術僅使用一個單個實例資料,並且為了確保資料的完整性和可用性只進行了最低限制的擴展,因此公司可能節省90%的存儲成本。
Cleversafe 公司產品策略、行銷和客戶解決方案副總裁Russ Kennedy稱:「在重新將資料塊拼湊在一起時,你不必擁有每一個資料塊。 所生成的全部資料塊的數量我們稱之為廣度,恢復資料所需要的最低限度的資料塊,我們稱之為閾值。 這兩者之間的差異決定了資料的可靠性。 當你同時丟失了節點和硬碟後,你仍然能夠恢復原始的資料。 在RAID中你能夠獲得的最高的可靠性是雙同位,你可以丟失兩塊硬碟。 但是在我們的解決方案中,你可以丟失最多六塊硬碟。 」
糾刪碼是一項以軟體為基礎的技術,這意味著該技術可以使用商用硬體,進一步壓縮擴展成本。
(責任編輯:蒙遺善)