存儲幫助Facebook 150萬用戶順暢交友
Facebook的用戶現在每個月都上傳超過800萬張數碼照片,截至去年夏天,Facebook是全球***的網絡照片存儲網站,共存儲了6.5億張圖片,同時,Facebook還擁有500多萬部影片,以及其他內容,其中包括約20萬件網絡新聞、博客文章以及報告和評論,總計存儲的數據量達到數個PB,所有這些數據都需要安全的存儲,而且需要馬上就進行檢索。而這,是一個極為艱巨的任務。
事實上,Facebook就像是一個傳奇,很難相信,前哈佛大學二年級學生Mark Zuckerberg創(chuàng)建的Facebook到目前為止僅僅只有5歲,在如此短的時間內積累下如此龐大的數據簡直讓人不可思議,但是,這的確是事實。
其實,Facebook的增長一直這么快且樂觀,在2007年12月,該公司在美國加州的數據中心達到了滿載的容量,幸運的是,Facebook的存儲管理團隊已經看到了存儲的未來,并且在數據增長的過程中在美國東海岸的弗吉尼亞州建立了一個數據中心,并在幾周前正式上線。不過,能夠積極地管理PB級別的數據是很不容易的事情,因此,Facebook的團隊一直在尋找可行之道。
“對于存儲容量來說,我每天早餐的時候都會看到一個圖表,那上面顯示著我們正在做的?!盕acebook公司存儲工程經理Anoop Nagwani表示,他已經在Facebook工作了一年半,“我們每個月都會評價整個我們的組織機構,然后每周都會有一個小組討論。”
MySQL越來越龐大
Facebook的用戶數據存儲在MySQL數據庫上,Facebook擁有一個全球***的MySQL數據庫系統(tǒng),騎在超過1800臺服務器上運行著MySQL數據庫。Facebook選擇了MySQL的開放性,因為其代碼的可修改性是必要的。Facebook同時還是用了大量的內存緩存服務器(Memcached Server),其速度大幅度超過了MySQL服務器,從而能夠更好的跟上存儲數據副本的要求。此外,每個晚上,Facebook都會進行數據復制,將Facebook在西海岸數據中心的數據復制到東海岸的數據中心中,并進行一次數據轉儲,這些數據通過重復數據刪除技術專業(yè)廠商Data Domain的技術進行重復數據刪除后進行長期存儲。
Facebook處理圖片和視頻略有不同,其使用NetApp的NFS系統(tǒng)以及SATA硬盤來進行存儲,因為NetApp能夠在一個很大的容器中存儲很大的對象。但是,隨著Facebook上存儲的照片數量的增長,NetApp的系統(tǒng)因由元數據已經不堪重負,造成了帶寬的瓶頸。
因此,今年晚些時候,Facebook計劃推出自己的對象存儲系統(tǒng)“Haystack”,該系統(tǒng)被其描述為“一個標示數據所在的用戶級別的抽象對象都存儲在一個單一的文件中(類似于LUN)”。
Facebook也使用NFS來存儲視頻,“因為我們有許多設備要存儲相同的數據在一線系統(tǒng),這事***成本效益和高性能的方式做到這一點?!盢agwani談到。Facebook的系統(tǒng)正在像Isilon的集群存儲系統(tǒng)一樣良好工作著。但是Nagwani和他的團隊仍然在積極尋找其他平臺,比如Sun的Storage 7410統(tǒng)一存儲系統(tǒng),其能夠擴展到576TB。
能耗和性能取得均衡
另一個備受Nagwani和他的團隊關注的話題是能耗問題。
“我們一直都在關注電力問題。”他表示,“我們擔心我們數據中心機架的能耗。話雖如此,我們正在制定一個解決方案,例如,當我們轉移到NetApp,特別是當我們的照片都轉移到運行著SATA硬盤的NetApp系統(tǒng)時,我們很看重電力消耗。我們期待系統(tǒng)能夠做到的I/O指數,他們提供的容量和性能。而且我們還希望從根本上創(chuàng)建一個cookie刀片設計,我們要知道該系統(tǒng)有多少能力能夠支持多少的用戶使用?!?/P>
正如他的MySQL的數據,Facebook的照片和視頻從西海岸數據中心利用快照復制到東海岸的數據中心,這樣一來,“如果有人和類型的應用程序或是管理錯誤,我們可以隨時通過快照來返回,或者,在最壞的情況下,出現系統(tǒng)故障,我們能夠轉移到東海岸,并將數據復制到西海岸那邊?!盢agwani表示。
另一個大的問題是,Facebook的團隊關注擴展性,因為,大約每周用戶上傳到Facebook的數據達到25TB,“這是我們的***要務,是我們的規(guī)模、和擴展水平能夠領先市場需求的原因。”
“閃存將是我們今年巨大的進步?!薄狝noop Nagwani
作為其始終創(chuàng)建***的數據存儲平臺的長期戰(zhàn)略,Facebook目前正在研究閃存技術,特別是以PCI為基礎的高容量閃存設備,加入到固態(tài)存儲(SSD)的用戶大軍中去。
“我們正在尋求將高容量的閃存設備到我們的MySQL數據庫中去,因為我們的數據庫內容需要非常快的I/O操作,這樣做就能更快的進行ETL處理、數據倉庫并且可以更快的獲得數據?!盢agwani表示,“我們也在尋求將Sun的ZFS平臺作為我們的一個新的系統(tǒng),就像我們使用NetApp一樣。我們喜歡他們,因為他們有一系列的閃存,因此,我們可以緩存大量的數據,所以基本上我們今年在閃存存儲上的進步將是巨大的。”