1. 程式人生 > >雲端計算讀書筆記(一)之Google雲端計算技術GFS

雲端計算讀書筆記(一)之Google雲端計算技術GFS

《雲端計算》(第二版)[劉鵬]讀書筆記

Google雲端計算技術包括:

Google檔案系統GFS、分散式計算程式設計模型MapReduce、分散式鎖服務Chubby、分散式結構化資料表Bigtable、分散式儲存系統和Megastore以及分散式監控系統Dapper等。

其中GFS提供了海量資料的儲存和訪問的能力,MapReduce使得海量資訊的並行處理變得簡單易行,Chubby保證了分散式環境下併發操作的同步問題,Bigtable使得海量資料的管理和組織十分方便,構建在Bigtable智商的Megastore則實現了關係型資料庫和NoSQLogic之間的巧妙融合,Dapper能夠全方位的監控整個Google

雲端計算平臺的執行狀況。

Google檔案系統GFS

GFS分為:Client(客戶端)、Master(主伺服器)和ChunkServer(資料塊伺服器)

ClientGFS提供給應用程式的訪問介面。

MasterGFS的管理節點,儲存系統的元資料,負責整個檔案系統的管理,是GFS檔案系統中的“大腦”。

Chunk Server 負責具體的儲存工作。

客戶端訪問GFS時,首先訪問Master節點,獲取與之進行互動的Chunk Server資訊,然後直接訪問這些Chunk Server,完成資料存取工作。實現了控制流和資料流的分離。ClientMaster之間只有控制流,而無資料流,極大地降低了Master

的負載。ClientChunk Server之間直接傳輸資料流,由於檔案分成多個Chunk分散式儲存,Client可以同時訪問多個Chunk Server,從而使得整個系統的I/O高度並行,系統整體效能得到提高。

GFS的特點:

1.      採用中心伺服器模式

控制和儲存分離,使得增加新的Chunk Server容易實現,Master掌握整個系統內ChunkServer的情況,實現系統範圍內資料儲存的負載均衡。中心伺服器缺點是極易成為整個系統的瓶頸。GFS採用多種機制來避免Master成為系統性能和可靠性上的瓶頸,如儘量控制元資料的規模、對Master進行遠端備份、控制資訊和資料分流等。

2.      不快取資料

客戶端大部分是流式順序讀寫,並不存在大量的重複讀寫,快取這些資料對提供系統整體效能的作用不大,由於GFS的資料在Chunk Server上以檔案的形式儲存,如果某塊資料讀取頻繁,本地的檔案系統自然會將其快取。但是對於儲存在Master中的元資料,GFS採用了快取策略,因為Master需要頻繁操作元資料,儲存元資料到記憶體可以提高操作的效率。另一方面,採用相應的壓縮機制降低儲存空間,提高記憶體利用率。

3.      在使用者態下實現

4.      只提供專用介面

容錯機制:

1.      Master容錯

Master上儲存了GFS檔案系統的三種元資料:名稱空間(整個檔案系統的目錄結構)、Chunk與檔名的對映表、Chunk副本的位置資訊(每一個Chunk預設有三個副本)。

前兩種元資料GFS通過操作日誌來提供容錯功能,第三種元資料資訊則直接儲存在各個Chunk Server上,當Master啟動或ChunkServerMaster註冊時自動生成。為了防止Master徹底宕機的情況,GFS還提供了Master遠端實時備份。

2.      ChunkServer容錯

GFS採用副本的方式實現Chunk Server的容錯,對於每一個Chunk,必須將所有的副本全部寫入成功,才視為成功寫入。Chunk的預設大小是64MB,每一個ChunkBlock為單位進行劃分,大小為64KB,每一個Block對應一個32bit的校驗和。當讀取一個Chunk副本時,ChunkServer會將讀取的資料和校驗和進行比較,如果不匹配,就會返回錯誤,使Client選擇其他Chunk Server上的副本。

系統管理技術:

  1. 大規模叢集安裝技術
  2. 故障檢測技術
  3. 節點動態加入技術
  4. 4. 節能技術

參考資料:

《雲端計算》(第二版)[劉鵬]