雲端計算讀書筆記(一)之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(資料塊伺服器)
Client:GFS提供給應用程式的訪問介面。
Master:GFS的管理節點,儲存系統的元資料,負責整個檔案系統的管理,是GFS檔案系統中的“大腦”。
Chunk Server 負責具體的儲存工作。
客戶端訪問GFS時,首先訪問Master節點,獲取與之進行互動的Chunk Server資訊,然後直接訪問這些Chunk Server,完成資料存取工作。實現了控制流和資料流的分離。Client與Master之間只有控制流,而無資料流,極大地降低了Master
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啟動或ChunkServer向Master註冊時自動生成。為了防止Master徹底宕機的情況,GFS還提供了Master遠端實時備份。
2. ChunkServer容錯
GFS採用副本的方式實現Chunk Server的容錯,對於每一個Chunk,必須將所有的副本全部寫入成功,才視為成功寫入。Chunk的預設大小是64MB,每一個Chunk以Block為單位進行劃分,大小為64KB,每一個Block對應一個32bit的校驗和。當讀取一個Chunk副本時,ChunkServer會將讀取的資料和校驗和進行比較,如果不匹配,就會返回錯誤,使Client選擇其他Chunk Server上的副本。
系統管理技術:
- 大規模叢集安裝技術
- 故障檢測技術
- 節點動態加入技術
- 4. 節能技術
參考資料:
《雲端計算》(第二版)[劉鵬]