GFS論文筆記

前言

這是看GFS的論文的研讀筆記。

GFS設計目的

  • 滿足日益增長的數據處理需求

GFS設計的目標

高性能,可伸縮,高可靠,高可用

  • 高性能:一般是指時間復雜度小,空間復雜度小,CPU占用時間少等
  • 可伸縮:指程序性能硬件資源的增加和減少而增強或減弱的能力,可伸縮有很多種,線性伸縮(世界人民的目標),超線性伸縮,負伸縮等,但是隨著程序規模的增大,伸展性會越來越差
  • 可靠性:指程序在規定條件下,在規定時間內完成規定任務的能力
  • 可用性:就是一個系統處在可工作狀態的時間的比例

GFS設計假設

  • 組件失效被認為是常態事件,而不是意外事件。(容錯能力)
  • 系統存儲一定數量的大文件。(大數據)
  • 系統的工作負載主要由兩種讀操作組成:大規模的流式讀取和小規模的隨機讀取。(讀寫模型)
  • 系統的工作負載還包括許多大規模的、順序的、數據追加方式的寫操作。(讀寫模型)
  • 系統必須高效的、行為定義明確的實現多客戶端并行追加數據到同一個文件里的語意。
  • 高性能的穩定網絡帶寬遠比低延遲重要。

GFS設計架構

GFS架構圖.png

注解:

  • 元數據:命名空間、訪問控制信息、文件和Chunk的映射信息、以及當前Chunk的位置信息
  • 心跳:master以心跳周期來和chunk通信,給chunk指示以及收集他們當前狀態

GFS系統設計的優點

  • 容錯性:每個塊都會復制到多個塊服務器上。缺省情況下,我們使用3個存儲復制節點,不過用戶可以為不同的文件命名空間設定不同的復制級別。
  • 單一的Master節點:單一的Master簡化了設計,使架構能變得簡單。Master一般會返回離Client最近的文件副本(減少網絡IO)
  • Client采用庫形式:GFS客戶端代碼以庫的形式被鏈接到客戶程序里??蛻舳舜a實現了GFS文件系統的API接口函數、應用程序與Master節點和Chunk服務器通訊、以及對數據進行讀寫操作
  • Chunk的大小選擇:默認為64MB, 較大Chunk尺寸減少Client和Master通訊,減少Master存儲元數據的大小,Client對一個Chunk能進行多次操作,減少網絡IO。

GFS系統的缺點

  • 單一的Master節點:有可能成為系統瓶頸,需要減少對Master的讀寫較大
  • Chunk尺寸的缺點:小文件會存儲為一個Chunk,多個Client同時對單個小文件多次操作時,存放這個Chunk的Server會成為熱點

系統缺點的解決:

  • 單一的Master節點:Client只詢問Master相關文件的元數據信息,Client對元數據信息做適當緩存,后面的具體讀寫操作均在Chunk上

GFS交互流程

GFS數據交換操作圖.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 分布式文件系統的主要功能有兩個:一個是存儲文檔、圖像、視頻之類的Blob類型數據;另外一個是作為分布式表格系統的持...
    olostin閱讀 3,262評論 1 5
  • 眾所周知,Hadoop的存儲基礎,HDFS分布式文件系統,是按照GFS的思想實現的。本文參考:Google Fil...
    SmileySure閱讀 1,154評論 0 1
  • 引言 GFS是谷歌2003年提出的一個文件系統。雖然GFS比較古老,但是后來的HDFS,是受到了GFS的啟發,是G...
    炸茄盒閱讀 2,575評論 1 5
  • 這個地方我不知道來來回回多少次 我好像熟悉每家店 每個招牌 我又根本沒有真實感受過他們 來來回回的路途 來來回回的...
    晨陽Indra閱讀 121評論 0 0
  • 在自己累了的時候,我可以到你這里來休息休息。 身體上有一點點的累了,當感覺學習的東西太多了的時候。我想人,總是需要...
    米亞MIA閱讀 233評論 0 0