facebook 開源項目 flashcache 初探

Flashcache是Facebook技術團隊的又一力作,最初是爲加速MySQL設計的。Flashcache是在Linux層面的,所以任何受磁盤IO困繞的軟件或應用都可以方便的使用之。

1. Why Flashcache

隨着時間的流逝,網站上的數據一直在不停的積累。如果你經營的只是一個博客的話,這不會是問題,因爲10G的空間,大概就夠你寫一輩子了(如果放在硬盤上,其實一輩子很短)。如果你恰巧在一個快速增長的公司,數據會越來越多,從MB,到GB,再到TB。

如果將這些數據全部放在大容量的SATA、SAS盤上時,會發現性能(響應時間)不夠;如果全放在SSD上時,又會發現成本很高。即使公司能夠大氣到都放到SSD上,你會發現1TB的數據裏面可能只有200G是經常被訪問的,300G可能偶爾被訪問到,最後剩下的500G可能已經成爲歷史數據了,幾乎不被訪問到,如果全部都放在SSD上有略有浪費。於是就有了Flashcache。

Flashcache一個非常不錯的軟件(準確的說是一個Linux的模塊),可以動態加載。Flashcache通過在文件系統(VFS)和設備驅動之間新增了一次緩存層,來實現對熱門的緩存。Flashcache是另一種緩存,一般用SSD作爲介質的緩存(一般的緩存用的是內存),通過將傳統硬盤上的熱門數據緩存到SSD上,然後利用SSD優秀的讀性能,來加速系統。這個方法較之內存緩存,沒有內存快,但是空間可以比內存大很多。

本文是一個關於Flashcache的初步介紹。

2. 誰適合用Flashcache

數據量很大(例如4TB),熱門數據也很大(800GB),不必要或者不捨得全部買內存來緩存。

3. 誰不適合用Flashcache

數據量不大的話,一般Flashcache就沒什麼用武之地了,內存就可以幫你解決問題了;

不差錢,買內存唄;

另外Flashcache的加入也使得系統的複雜度增加了一層,如果你堅持KISS原則(Keep it simple, Stupid!),也可以棄用之。

4. 基本原理圖

Flashcache_orczhou

上圖中,Flashcache將普通的SAS盤(/dev/sda)和一個高速的SSD(/dev/sdb)虛擬成一個帶緩存的塊設備(/dev/mapper/cachedev)。後續還將會有更多關於Flashcache相關的文章出現,敬請期待。

5. Flashcache是否只是一個過渡產品

對於當前,PCI接口的SSD價格還十分昂貴,而隨着時間的推移,價格會降;另外,根據摩爾定律,未來會有更快的設備出現,所以Flashcache是一個“持久的”產品,還只是一個過渡軟件,這並不好說。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章