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 volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir1 server4:/dir2