GFS分佈式文件系統集羣
GlusterFS概述
GlusterFS簡介
- 開源的分佈式文件系統
- 由存儲服務器,客戶端以及NFS/Samba存儲網關組成
- 無元數據服務器
RDMA:負責數據傳輸
GlusterFS的特點
- 擴展性和高性能
- 高可用性
- 全局統一的命名空間
- 彈性卷管理
- 基於標準協議
GlusterFS術語
- Brick : 存儲節點
- Volume : 卷
- FUSE : 內核模塊,用戶端的交互模塊
- VFS : 虛擬端口
- Glusterd : 服務
模塊化堆棧架構
- 模塊化、堆棧式的架構
- 通過對模塊的組合,實現負責的功能
GlusterFS工作模式
- Application:客戶端或應用程序通過GlusterFSync的掛載點訪問數據
- VFS:linux系統內核通過VFS API收到請求並處理
- FUSE : VFS 將數據遞交給FUSE內核文件系統,fuse
文件系統則是將數據通過/dev/fuse設備文件遞交給了GlusterFS client端 - GlusterFS Client ; 通過網絡將數據傳遞至遠端的GlusterFS Server,並且寫入到服務器存儲設備上
GlusterFS工作原理
GlusterFS工作流程
彈性HASH算法
- 通過HASH算法得到一個32位的整數
- 劃分爲N個連續的子空間,每個空間對應一個Brick
- 彈性HASH算法的優點
-
- 保證數據平均分佈在每一個Brink中
-
- 解決了對元數據服務器的依懶,進而解決了單點故障以及訪問瓶頸
四個Brick節點的GlusterFS卷,平均分配232次方的區間的範圍空間
通過hash算法去找到對應的brick節點的存儲空間,去分配數據存儲,去調用每一個節點數據
GlusterFS的卷類型
- 分佈式卷
- 條帶卷
- 複製卷
- 分佈式條帶卷
- 分佈式複製卷
- 條帶複製卷
- 分佈式條帶複製卷
分佈式卷
- 沒有對文件進行分塊處理
- 通過擴展文件屬性保存HASH值
- 支持底層文件系統有ext3、ext4、ZFS、XFS等
分佈式卷有如下特點
- 文件分佈在不同的服務器。不具備冗餘性
- 更容易和廉價地擴展卷的大小
- 單點故障會造成數據丟失
- 依懶底層的數據保護
創建分佈式卷
- 創建一個名爲dis-volume的分佈式卷,文件將根據HASH分佈在server1:/dir1、server2:/dir2和server3:/dir3中
gluster volume create dis-volume server1:/dir1 server2:/dir2
條帶卷
- 根據偏移量將文件分爲N塊(N個條帶節點),輪詢的存儲在每個Brick Server節點
- 存儲大文件時,性能尤爲突出
- 不具備冗餘性,類似Raid0
從多個server中同時讀取文件,效率提升
特點
- 數據被分割成更小塊分佈到塊服務器羣中的不同條帶區
- 分佈減少負載且更小的文件加速了存取的速度
- 沒有數據冗餘
創建條帶卷
- 創建一個名爲Stripe-volume的條帶卷,文件將被分塊輪詢的存儲在Server1:/dir1和Server2:dir2兩個Brick中
gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2
複製卷
- 同一個文件保存一份或多分副本
- 複製模式因爲保存副本,所以磁盤利用率較低
- 多個節點的存儲空間不一致,那麼將按照木桶效應取最低節點的容量作爲該卷的總容量
特點
- 卷中所有的服務器均保存一個完整的副本
- 卷的副本數量可以有客戶創建的時候決定
- 至少由兩個塊服務器或更多服務器
- 具備冗餘性
創建複製卷
- 創建名爲rep-volume的複製卷、文件將同時存儲兩個副本
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
分佈式條帶卷
- 兼顧分佈式卷和條帶卷的功能
- 主要用於大文件訪問處理
- 至少最少需要4臺服務器
創建分佈式條帶卷
- 創建一個名爲dis-stripe的分佈式條帶卷,配置分佈式的條帶卷時,卷中Brink所包含 的存儲服務器數必須是條帶數的倍數(>=2倍)
gluster volume create rep-volume stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir1 server4:/dir2
分佈式複製卷
- 兼顧分佈式卷和複製卷的功能
- 用於需要冗餘的情況下
創建分佈式複製卷
- 創建一個名爲dis-rep的分佈式條帶卷,配置分佈式條帶卷的複製卷時,卷中Brink所包含的存儲服務器必須是條帶數的倍數(>=2倍)
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir1 server4:/dir2