Glusterfs簡介以及其工做流程的簡單分析

1. Glusterfs簡介 html

GlusterFS是Scale-Out存儲解決方案Gluster的核心,它是一個開源的分佈式文件系統,具備強大的橫向擴展能力,經過擴展可以支持數PB存儲容量和處理數千客戶端。GlusterFS藉助TCP/IP或InfiniBand
RDMA網絡將物理分佈的存儲資源彙集在一塊兒,使用單一全局命名空間來管理數據。GlusterFS基於可堆疊的用戶空間設計,可爲各類不一樣的數據負載提供優異的性能。 linux

2. Glusterfs特色 算法

2.1 擴展性和高性能
GlusterFS利用雙重特性來提供幾TB至數PB的高擴展存儲解決方案。Scale-Out架構容許經過簡單地增長資源來提升存儲容量和性能,磁盤、計算和I/O資源均可以獨立增長,支持10GbE和InfiniBand等高速網絡互聯。Gluster彈性哈希(Elastic Hash)解除了GlusterFS對元數據服務器的需求,消除了單點故障和性能瓶頸,真正實現了並行化數據訪問。
高可用性GlusterFS能夠對件進行自動複製,如鏡像或屢次複製,從而確保數據老是能夠訪問,甚至是在硬件故障的狀況下也能正常訪問。自我修復功能可以把數據恢復到正確的狀態,並且修復是以增量的方式在後臺執行,幾乎不會產生性能負載。GlusterFS沒有設計本身的私有數據文件格式,而是採用操做系統中主流標準的磁盤文件系統(如EXT三、ZFS)來存儲文件,所以數據可使用各類標準工具進行復制和訪問。[吖Sool-社區 ] 服務器

2.2 全局統一命名空間
全局統一命名空間將磁盤和內存資源彙集成一個單一的虛擬存儲池,對上層用戶和應用屏蔽了底層的物理硬件。存儲資源能夠根據須要在虛擬存儲池中進行彈性擴展,好比擴容或收縮。當存儲虛擬機映像時,存儲的虛擬映像文件沒有數量限制,成千虛擬機均經過單一掛載點進行數據共享。虛擬機I/O可在命名空間內的全部服務器上自動進行負載均衡,消除了SAN環境中常常發生的訪問熱點和性能瓶頸問題。
2.3彈性哈希算法
GlusterFS採用彈性哈希算法在存儲池中定位數據,而不是採用集中式或分佈式元數據服務器索引。在其餘的Scale-Out存儲系統中,元數據服務器一般會致使I/O性能瓶頸和單點故障問題。GlusterFS中,全部在Scale-Out存儲配置中的存儲系統均可以智能地定位任意數據分片,不須要查看索引或者向其餘服務器查詢。這種設計機制徹底並行化了數據訪問,實現了真正的線性性能擴展。[吖Sool-社區 ]
2.4 彈性卷管理
數據儲存在邏輯卷中,邏輯卷能夠從虛擬化的物理存儲池進行獨立邏輯劃分而獲得。存儲服務器能夠在線進行增長和移除,不會致使應用中斷。邏輯卷能夠在全部配置服務器中增加和縮減,能夠在不一樣服務器遷移進行容量均衡,或者增長和移除系統,這些操做均可在線進行。文件系統配置更改也能夠實時在線進行並應用,從而能夠適應工做負載條件變化或在線性能調優。
2.5基於標準協議
Gluster存儲服務支持NFS,CIFS, HTTP, FTP以及Gluster原生協議,徹底與POSIX標準兼容。現有應用程序不須要做任何修改或使用專用API,就能夠對Gluster中的數據進行訪問。這在公有云環境中部署Gluster時很是有用,Gluster對雲服務提供商專用API進行抽象,而後提供標準POSIX接口。 [吖Sool-社區 ] 網絡

 

3 模塊化堆棧式架構簡介
GlusterFS採用模塊化、堆棧式的架構,可經過靈活的配置支持高度定製化的應用環境,好比大文件存儲、海量小文件存儲、雲存儲、多傳輸協議應用等。每一個功能以模塊形式實現,而後以積木方式進行簡單的組合,便可實現複雜的功能。好比,Replicate模塊可實現RAID1,Stripe模塊可實現RAID0,經過二者的組合可實現RAID10和RAID01,同時得到高性能和高可靠性。以下圖所示: 架構

 

 


每一個功能模塊就是一個Xlator,不一樣的xlator在初始化後造成樹,每一個xlator爲這棵樹中的節點,glusterfs要工做,就必然會涉及到節點之間的調用。
調用主要包括2個方面,父節點調用子節點,子節點調用父節點,如當父節點向子節點發出寫請求則要調用子節點的寫操做,當子節點寫操做完成後,會調用父節點的寫回調操做。父子節點的調用關係可用下圖說明: 負載均衡


4 glusterfs總體工做流程
總體流程以下圖所示: 分佈式

 

 

1)    
首先是在客戶端, 用戶經過glusterfs的mount point 來讀寫數據, 對於用戶來講, 集羣系統的存在對用戶是徹底透明的,
用戶感受不到是操做本地系統仍是遠端的集羣系統。
2)    
用戶的這個操做被遞交給 本地linux系統的VFS來處理。
3)    
VFS 將數據遞交給FUSE 內核文件系統:在啓動 glusterfs 客戶端之前, 須要想系統註冊一個實際的文件系統FUSE,如上圖所示,該文件系統與ext3在同一個層次上面, ext3 是對實際的磁盤進行處理, 而fuse 文件系統則是將數據經過/dev/fuse 這個設備文件遞交給了glusterfs client端。因此, 咱們能夠將 fuse文件系統理解爲一個代理。
4)    
數據被fuse 遞交給Glusterfs client 後, client 對數據進行一些指定的處理(所謂的指定,是按照client 配置文件據來進行的一系列處理, 咱們在啓動glusterfs client
時須要指定這個文件。
5)      
在glusterfs
client的處理末端, 經過網絡將數據遞交給 Glusterfs Server,而且將數據寫入到服務器所控制的存儲設備上。[吖Sool-社區  ] 模塊化

這樣, 整個數據流的處理就完成了。 工具


    (新浪博客同步:http://blog.sina.com.cn/s/blog_03dfc9330101fk61.html )

    新浪博客:http://blog.sina.com.cn/6yulanggongwu6(山東_小狼)

    新浪微博:http://weibo.com/uc64997683/home?wvr=5(山東_小狼)

      有興趣的同窗能夠試用一下 吖Sool-社區 http://www.iesool.com  感謝支持!

相關文章
相關標籤/搜索