對於淘寶網這類型訪問量極高的電子交易網站來說,對圖片系統的要求和日常的照片分享完全不在一個級別。日常照片分享往往集中在幾個有限的親朋好友之間,訪問量不會特別高,而淘寶網商鋪中的商品照片,尤其是熱門商品,圖片的訪問流量其實是非常大的。而且對於賣家來說,圖片遠勝於文字描述,因此賣家也格外看重圖片的顯示質量、上傳時間、訪問速度等等問題。根據淘寶網的流量分析,整個淘寶網流量中,圖片的訪問流量會占到90%以上,而主站的網頁則占到不到10%。
基本介紹
- 中文名:TFS集群檔案系統
- 外文名:Taobao File System
- 性質:系統
- 存儲系統容量:1800TB
簡介,集群檔案系統,
簡介
TFS淘寶檔案系統,Taobao File System
解決海量並發小檔案的系統噩夢
與此同時,這些圖片的存儲與讀取還有一些頭疼的要求:例如,這些圖片要求根據不同的套用位置,生成不同大小規格的縮略圖。考慮到多種不同的套用場景以及改版的可能性,一張原圖有可能需要生成20多個不同尺寸規格的縮略圖。
淘寶整體圖片存儲系統容量1800TB(1.8PB),已經占用空間990TB(約1PB)。保存的圖片檔案數量達到286億多個,這些圖片檔案包括根據原圖生成的縮略圖。平均圖片大小是17.45K;8K以下圖片占圖片數總量的61%,占存儲容量的11%。
這就給淘寶網的系統帶來了一個巨大的挑戰,眾所周知,對於大多數系統來說,最頭疼的就是大規模的小檔案存儲與讀取,因為磁頭需要頻繁的尋道和換道,因此在讀取上容易帶來較長的延時。在大量高並發訪問量的情況下,簡直就是系統的噩夢。
集群檔案系統
TFS 1.0版本的集群檔案系統
從2006年開始,淘寶網決定自己開發一套針對海量小檔案存儲難題的檔案系統,用於解決自身圖片存儲的難題。到2007年6月,TFS(淘寶檔案系統,Taobao File System)正式上線運營。在生產環境中套用的集群規模達到了200台PC Server(146G*6 SAS 15K Raid5),檔案數量達到上億級別;系統部署存儲容量: 140 TB;實際使用存儲容量: 50 TB;單台支持隨機IOPS 200+,流量3MBps。 淘寶集群檔案系統TFS 1.0第一版的邏輯架構,TFS最大的特點就是將一部分元數據隱藏到圖片的保存檔案名稱上,大大簡化了元數據,消除了管理節點對整體系統性能的制約,這一理念和目前業界流行的“對象存儲”較為類似。
圖為淘寶集群檔案系統TFS 1.0第一版的邏輯架構:集群由一對Name Server和多台Data Server構成,Name Server的兩台伺服器互為雙機,就是集群檔案系統中管理節點的概念。
· 每個Data Server運行在一台普通的Linux主機上
· 以block檔案的形式存放數據檔案(一般64M一個block)
· block存多份保證數據安全
· 利用ext3檔案系統存放數據檔案
· 磁碟raid5做數據冗餘
· 檔案名稱內置元數據信息,用戶自己保存TFS檔案名稱與實際檔案的對照關係–使得元數據量特別小。
淘寶TFS檔案系統在核心設計上最大的取巧的地方就在,傳統的集群系統裡面元數據只有1份,通常由管理節點來管理,因而很容易成為瓶頸。而對於淘寶網的用戶來說,圖片檔案究竟用什麼名字來保存實際上用戶並不關心,因此TFS在設計規劃上考慮在圖片的保存檔案名稱上暗藏了一些元數據信息,例如圖片的大小、時間、訪問頻次等等信息,包括所在的邏輯塊號。而在元數據上,實際上保存的信息很少,因此元數據結構非常簡單。僅僅只需要一個fileID,能夠準確定位檔案在什麼地方。
由於大量的檔案信息都隱藏在檔案名稱中,整個系統完全拋棄了傳統的目錄樹結構,因為目錄樹開銷最大。拿掉後,整個集群的高可擴展性極大提高。實際上,這一設計理念和目前業界的“對象存儲”較為類似,淘寶網TFS檔案系統已經更新到1.3版本,在生產系統的性能已經得到驗證,且不斷得到了完善和最佳化,淘寶網目前在對象存儲領域的研究已經走在前列。