最近,大家都在討論大數據分析及其帶來的商業情報的價值,但是在企業從這些數據中挖掘出有效信息之前,他們必須弄清楚該如何存儲這些大數據。
完全不同的PB級基礎設施
“PB級基礎設施是完全不同的一回事,”Day表示,“它們很難建立和維護。PB或多PB級基礎設施與傳統大規模數據集之間的差別簡直就像白天和黑夜的差別,就像在筆記本電腦上處理數據和在RAID陣列上處理數據之間的差別。”
當Day在2009年加入Shutterfly時,存儲已經成為該公司最大的開支,并且以飛快的速度增長。
“每N個PB的額外存儲意味著我們需要另一個存儲管理員來支持物理和邏輯基礎設施,”Day表示,“面對大規模數據存儲,系統會更頻繁地出問題,任何管理超大存儲的人經常都要處理硬件故障。大家都在試圖解決的根本問題是:當你知道存儲的一部分將在一段時間內出現問題,你應該如何確保數據可用性,同時確保不會降低性能?”
RAID問題
解決故障的標準答案是復制,通常以RAID陣列的形式。但Day表示,面對龐大規模的數據時,RAID解決問題的同時可能會制造更多問題。在傳統RAID數據存儲方案中,每個數據的副本都被鏡像和存儲在陣列的不同磁盤中,以確保完整性和可用性。但這意味著每個被鏡像和存儲的數據將需要其本身五倍以上的存儲空間。隨著RAID陣列中使用的磁盤越來越大(從密度和功耗的角度來看,3TB磁盤非常具有吸引力),更換故障驅動器的時間也將變得越來越長。
“實際上,我們使用RAID并不存在任何操作問題,”Day表示,“我們看到的是,隨著磁盤變得越來越大,當任何組件發生故障時,我們回到一個完全冗余的系統的時間增加。生成校驗是與數據集的大小成正比的。當我們開始使用1TB和2TB的磁盤時,回到完全冗余系統的時間變得很長。可以說,這種趨勢并沒有朝著正確的方向發展。”
對于Shutterfly而言,可靠性和可用性是非常關鍵的因素,這也是企業級存儲的要求。Day表示,其快速膨脹的存儲成本使商品系統變得更具吸引力。當Day及其團隊在研究潛在技術解決方案以幫助控制存儲成本時,他們對于一項叫做糾刪碼(erasure code)的技術非常感興趣。
采用擦除代碼技術的下一代存儲
里德-所羅門糾刪碼最初作為前向糾錯碼(Forward Error Correction, FEC)用于不可靠通道的數據傳輸,例如外層空間探測的數據傳輸。這項技術還被用于CD和DVD來處理光盤上的故障,例如灰塵和劃痕。一些存儲供應商已經開始將糾刪碼納入他們的解決方案中。使用糾刪碼,數據可以被分解成幾塊,單塊分解數據是無用的,然后它們被分散到不同磁盤驅動器或者服務器。在任何使用,這些數據都可以完全重組,即使有些數據塊因為磁盤故障已經丟失。換句話說,你不需要創建多個數據副本,單個數據就可以確保數據的完整性和可用性。
基于糾刪碼的解決方案的早期供應商之一是Cleversafe公司,他們添加了位置信息來創建其所謂的分散編碼,讓用戶可以在不同位置(例如多個數據中心)存儲數據塊或者說數據片。
每個數據塊就其自身而言是無用的,這樣能夠確保隱私性和安全性。因為信息分散技術使用單一數據來確保數據完整性和可用性,而不是像RAID一樣使用多個副本,公司可以節省多達90%的存儲成本。
“當你將試圖重組數據時,你并不一定需要提供所有數據塊,”Cleversafe公司產品策略、市場營銷和客戶解決方案副總裁Russ Kennedy表示,“你生成的數據塊的數量,我們稱之為寬度,我們將重組數據需要的最低數量稱之為門檻。你生成的數據塊的數量和重組需要的數量之間的差異決定了其可靠性。同時,即使你丟失節點和驅動器,你仍然能夠得到原來形式的數據。通過RAID你能夠獲取的最高可靠性是雙奇偶校驗,你可以丟失兩個驅動器,而通過我們的解決方案,你最多可以丟失六個。”
糾刪碼也是一個基于軟件的技術,這意味著它可以與商品硬件使用,更大程度地降低了成本。
建立下一代存儲基礎設施
“在確定正確的技術后,我們看了很多這個領域提供解決方案的供應商,”Day表示,“我們希望自己來建立,但是如果我們能夠找到一個滿足我們的要求且具備可靠系統的公司,那事情就更好辦了。”
Shutterfly將四家供應商帶到其實驗室進行評估,為其數據中心需要的存儲設備建立原型,Day表示,他希望看到性能、可用性、容錯率和管理方面的評估信息。
“我們有一個專門管理照片存檔的工作人員,”他表示,“2010年我們遇到的最大問題之一就是照片存檔的不斷增加,使我們不得不壯大員工隊伍,但這增加了我們的開支。”
Day表示經過評估,Cleversafe更加適合Shutterfly,這主要是因為該公司愿意與Shutterfly配合根據Shutterfly的需求來調整其解決方案。這兩家公司開始經歷了一些列的概念證明階段,包括在Shutterfly實驗室的負載和性能測試。在Shutterfly對操作和性能感到滿意后,Cleversafe在生產中放置了一個并行存儲基礎設施,直接將所有Shutterfly流量的副本導向Cleversafe。
“每張上傳的照片都被寫入我們原有的基礎設施和Cleversafe的基礎設施,”Day表示,“我們運行了六個月,包括節假日。”
節假日是Shutterfly的高峰期,因為用戶拍了很多照片。
Shutterfly在2011年開始使用Cleversafe的存儲解決方案,并一直將其作為主要圖像庫。
基于糾刪碼存儲的總體擁有成本
“這其實是一個軟件解決方案,讓我們可以部署非常具有成本效益的硬件,”Day表示,“從總體擁有成本角度來看,這給我們帶來了巨大的改變。我們與硬件供應商溝通時,具有更大的靈活性,并且能夠保證我們購買最具成本效益的驅動器和基礎設施。”
Day表示,“管理存儲池也大大簡化。”
“基本上我們只需要添加另一個存儲塊,它會自動被添加到我們為其指定的存儲池,”他表示,“以前,我們每次添加額外的存儲空間,都不得不重復相同的工作。”
另外,現在當驅動器故障或者脫機時,Shutterfly的存儲基礎設施能夠將其標記為“不可用”,并繞過該驅動器來路由數據,同時透明地恢復該驅動器上的數據。Day表示其團隊現在可以簡單地發現故障,然后根據預定的維護時間表更換受影響的基礎設施。
“我們不再需要像以前一樣增加人員,”他表示,“我們仍然在增長,但是速度比以前慢得多。日常維護工作量有所下降,管理員能夠花更多時間在其他項目上。”
只要存儲數據,就具有洞察力
Shutterfly只是一家與大多數公司一樣需要處理大量數據的互聯網公司,各行各業的公司都正在面對不斷增加的數據量。
Day表示:“在過去四五年間,我們看到很多應用程序和技術進入市場,讓處理大數據成為可能,這真的非常令人激動,因為這些技術讓企業能夠通過分析細粒度數據而獲取業務價值。”
“我們正處在大數據的非常早期階段,”Day表示,“另一個有趣的因素是隨著企業開始面對更多實時客戶交互,他們正產生大量數據,現在我們能通過分析這些數據獲取真正具有影響力的商業洞察力,但這些都取決于我們可靠地存儲大量數據的能力。”