ZDNet存儲頻道 發(fā)表于:14年10月14日 14:43 [綜述] DOIT.com.cn
Facebook公司已經在其近線存儲體系當中徹底棄用RAID與復制機制,轉而采用分布式擦除編碼以隔離其所謂的“暖性BLOB”。
暖性?BLOB?這都是些什么東西?大家別急,馬上為您講解:
Facebook公司面臨的一大特殊問題在于,其擁有三種主要用戶數據類型外加與之相關的元數據,而且這三種類型都要求 擁有龐大的存儲空間作為支撐。Facebook最為主要且訪問頻率最高的數據集是那些生成時間不長,且在用戶時間表中留存時間不足一周的發(fā)布信息。這些內 容往往會受到該用戶“好友”們的大量訪問。
Facebook利用其Haystack存儲系統(tǒng)處理這些數據,這套方案采用三級復制機制對數據中以保護、確保這部分數據能夠始終接受訪問且具備快速的響應能力,同時盡可能將訪問指向單一磁盤(當元數據計算開始運行之后)。
當這部分數據逐漸陳舊之后,其訪問頻率通常也會有所降低——也就是前面提到的由熱門轉向“暖性”,但我們仍然需要為其提 供較快的訪問速度、從而切實滿足調用需求。這就產生了新的問題,數據總量一直處于規(guī)模膨脹態(tài)勢當中。舉例來說,截至今年一月份,F(xiàn)acebook所保存的 照片總數已經超過4000億張。
根據時間推移,請求的相對頻率也如圖示發(fā)生衰減。每一條只對應單獨一類存儲對象,圖中取其絕對值以增加易讀性。另外圓點部分代表著訪問請求頻率降低至下一數量級的轉折位置。
在對每TB數據IO次數進行計算之后,我們可以看到這種暖性型數據的IO密度要遠低于熱門數據,這意味著此類數據已經不再需要利用三級復制機制加以保存,但卻仍然需要具備可以接受的訪問速度,同時擁有必要的保護手段以避免遭受磁盤、主機以及機架故障的影響。
Facebook公司的工程師們已經打造出一款新型存儲系統(tǒng),也就是f4,專門用于保存這些暖性BLOB。工程師們在一篇論文中解釋道:“f4是一款新型系統(tǒng),能夠在降低暖性BLOB有效復制因素的同時保持其容錯性以及對較低數據吞需求的支持能力。”
Facebook的工程師們指出:
f4采用里德所羅門編碼機制并將數據塊排布在多臺不同機架之上,從 而確保單一數據中心內部的磁盤、主機以及機架故障不會對數據可用性造成影響。它還在廣域層面利用XOR編碼機制以確保數據中心的故障彈性。f4已經在 Facebook的生產環(huán)境之下運行了超過19個月。f4目前保存的邏輯數據超過65PB,幫助公司節(jié)約的存儲空間則超過53PB。
BLOB與聚合文件系統(tǒng)元數據共同被匯聚在以100GB為單位的邏輯分卷當中。這類邏輯分卷由數據文件、索引文件以及日志文件共同構成。其中索引文件其實是一套針對內存內存儲主機查找結構的快照。當所有分卷都被鎖定時,則不允許再創(chuàng)建新的分卷。
這些分卷構成多個cell單元并被保存在數據中心內部,其中每個單元由包含15臺主機的14套機架構成、每臺主機配備 30塊4TB磁盤驅動器。每個分卷/字符串/數據塊都擁有一個位于其它不同地理位置的對應分卷/字符串/數據塊。Facebook公司還會在獨立的第三個 區(qū)域另行保存一套XOR數據內容。這套體系能夠保證任意區(qū)域出現(xiàn)故障時,用戶仍能順利訪問所需數據信息。
那么一般性企業(yè)用戶是否需要建立這樣一套存儲體系來打理自己的近線數據呢?基本上用不著,畢竟大部分企業(yè)用戶根本不需要像Facebook那樣面對如此龐大的數據總量,也不可能遇到同等規(guī)模的數據增長速度或者信息不變性。