標籤:筆記 gfs system
GFS是google分布式儲存的基石,其他儲存系統,比如Google的bigtable、megastore、percolator均直接或者間接的構建在GFS上。
系統架構
GFS Master
維護了系統的中繼資料,包括檔案及chunk命名空間、檔案到chunk的映射關係、chunk的位置資訊;複製整個系統的全域控制,master定期會與CS通過心跳的方式交換資訊
GFS ChunkServer(CS,資料區塊伺服器)
64MB的chunk塊,由master在建立時分配一個64位全域唯一的chunk控制代碼,CS以普通的linux檔案的形式將chunk儲存在磁碟中
GFS用戶端
用戶端是GFS提供給應用程式的提供者,是一組專用介面,以庫檔案形式提供 ,GFS用戶端不快取檔案資料,只緩衝主控伺服器中擷取的中繼資料
關鍵問題
租約機制
GFS資料追加以記錄為單位,GFS系統中通過租約(lease)機制將chunk寫操作授權給chunkmaster,擁有租約的chunserver為主chunkserver,其他副本所在的chunkservcer為備chunkserver
一致性模型 -- 追加一致性
追加流程 -- GFS中最為複雜的部分
GFS追加流程有兩個特色:流水線及分離資料流和控制流程
容錯機制
master儲存三種中繼資料:命名空間(name space)、檔案到chunk的映射、chunk副本的位置資訊 (1)master容錯:動作記錄 + checkpoint、shadow master (2)chunkserver容錯:
Master設計
新副本所在的chunkserver的磁碟利用率遠遠低於平均水平
限制每個chunkserver“最近”建立的數量
每個chunkserver的所有副本不能在同一個機架
Master記憶體佔用
負載平衡
串講chunk的三種情況:chunk建立、chunk複製(re-replicantion)、負載平衡(rebalancing)
記憶體回收
GFS採用延遲刪除的機制
快照(snapshot)
ChunkServer設計
ChunkServer是一個磁碟和網路IO密集型的應用
總結
Linux GFS和Google GFS的區別
Linux GFS中的GFS是Global FileSystem,指的是通用檔案系統,要解決的是共用儲存的讀寫。如:
650) this.width=650;" src="http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Global_File_System/images/overview/fig-gfs-with-san.png" alt="Linux <wbr>GFS和Google <wbr>GFS的區別" />
Linux GFS類似於一個並發鎖的處理器:獲得獨佔鎖的節點才可以進行寫操作。
所以,Linux GFS面對的存放裝置有兩種:iSCSI和FC
Google GFS中的GFS是Google FileSystem,指的是Distributed File System,要解決的問題是檔案系統的分布。
除了管理節點外,其它的都是資料節點;資料節點存放具體的資料。
總結:
Linux GFS是把讓昂貴的儲存共用起來給大家用;
Google GFS是把便宜的各個本機存放區集中起來共用給大家用。
http://www.90rhca.com/?p=126
本文出自 “從心開始” 部落格,請務必保留此出處http://fuquanjun.blog.51cto.com/5820068/1429839