淘寶內分布式文件系統 TFS

TFS(Taobao FileSystem)是一個高可擴展、高可用、高性能、面向互聯網服務的分布式文件系統,其設計目標是支持海量的非結構化數據。

目前,國內自主研發的文件系統可謂鳳毛麟角。淘寶在這一領域做了有效的探索和實踐,Taobao File System(TFS)作為淘寶內部使用的分布式文件系統,針對海量小文件的隨機讀寫訪問性能做了特殊優化,承載著淘寶主站所有圖片、商品描述等數據存儲。

文章首先概括了TFS的特點:最近,淘寶核心系統團隊工程師楚材(李震)在其官方博客上撰文(《TFS簡介》,以下簡稱文章)簡要介紹了TFS系統的基本情況,引起了社區的關注。

  • 完全扁平化的數據組織結構,拋棄了傳統文件系統的目錄結構。
  • 在塊設備基礎上建立自有的文件系統,減少EXT3等文件系統數據碎片帶來的性能損耗。
  • 單進程管理單塊磁盤的方式,摒除RAID5機制。
  • 帶有HA機制的中央控制節點,在安全穩定和性能復雜度之間取得平衡。
  • 盡量縮減元數據大小,將元數據全部加載入內存,提升訪問速度。
  • 跨機架和IDC的負載均衡和冗余安全策略。
  • 完全平滑擴容。

當前,TFS在淘寶的應用規模達到“數百臺PCServer,PB級數據量,百億數據級別”,對于其性能參數,楚材透漏:

TFS在淘寶的部署環境中前端有兩層緩沖,到達TFS系統的請求非常離散,所以TFS內部是沒有任何數據的內存緩沖的,包括傳統文件系統的內存緩沖也不存 在......基本上我們可以達到單塊磁盤隨機IOPS(即I/O per second)理論最大值的60%左右,整機的輸出隨盤數增加而線性增加。

TFS的邏輯架構圖1如下所示:

淘寶內分布式文件系統 TFS

圖1. TFS邏輯架構圖(來源:淘寶核心系統團隊博客)

楚材結合架構圖做了進一步說明:

  1. TFS尚未對最終用戶提供傳統文件系統API,需要通過TFSClient進行接口訪問,現有JAVA、JNI、C、PHP的客戶端
  2. TFS的NameServer作為中心控制節點,監控所有數據節點的運行狀況,負責讀寫調度的負載均衡,同時管理一級元數據用來幫助客戶端定位需要訪問的數據節點
  3. TFS的DataServer作為數據節點,負責數據實際發生的負載均衡和數據冗余,同時管理二級元數據幫助客戶端獲取真實的業務數據。

項目主頁:http://www.baiduhome.net/lib/view/home/1339141676641

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!