什么是 Gluster ?
Gluster 是一種可擴(kuò)展的分布式文件系統(tǒng),可將來自多個(gè)服務(wù)器的磁盤存儲資源聚合到一個(gè)全局命名空間中。
體系結(jié)構(gòu)
GlusterFS 體系結(jié)構(gòu)將計(jì)算,存儲和 I/O 資源聚合到一個(gè)全局命名空間中。 每臺服務(wù)器加上存儲設(shè)備(配置為直連存儲,JBOD 或使用存儲區(qū)域網(wǎng)絡(luò))被視為節(jié)點(diǎn)翻伺。 通過添加其它節(jié)點(diǎn)或向每個(gè)節(jié)點(diǎn)添加額外存儲來擴(kuò)展容量。 通過在更多節(jié)點(diǎn)之間部署存儲來提高性能沮焕。 通過在節(jié)點(diǎn)之間復(fù)制數(shù)據(jù)來實(shí)現(xiàn)高可用性吨岭。
優(yōu)點(diǎn)
- 存儲容量可擴(kuò)展至數(shù) PB
- 可連接數(shù)以千計(jì)的客戶端
- POSIX 兼容
- 使用商用硬件
- 可以使用任何支持?jǐn)U展屬性的磁盤文件系統(tǒng)
- 可使用 NFS 和 SMB 等行業(yè)標(biāo)準(zhǔn)協(xié)議進(jìn)行訪問
- 提供復(fù)制,配額峦树,地理復(fù)制辣辫,快照和位置檢測
- 允許針對不同工作負(fù)載進(jìn)行優(yōu)化
- 開源
設(shè)計(jì)
GlusterFS 通過以太網(wǎng)或 Infiniband RDMA 互連將各種存儲服務(wù)器聚合到一個(gè)大型并行網(wǎng)絡(luò)文件系統(tǒng)中。 GlusterFS 基于可堆疊的用戶空間設(shè)計(jì)魁巩。
GlusterFS 有一個(gè)客戶端和服務(wù)器組件急灭。服務(wù)器通常部署為 storage bricks,每個(gè)服務(wù)器運(yùn)行 glusterfsd 守護(hù)程序以將本地文件系統(tǒng)導(dǎo)出為 volume歪赢。 glusterfs 客戶端進(jìn)程通過 TCP/IP,InfiniBand 或套接字直接協(xié)議連接到具有自定義協(xié)議的服務(wù)器单料,使用可堆疊轉(zhuǎn)換器從多個(gè)遠(yuǎn)程服務(wù)器創(chuàng)建復(fù)合虛擬卷埋凯。默認(rèn)情況下点楼,文件是整體存儲的,但也支持跨多個(gè)遠(yuǎn)程卷分割文件白对。然后掠廓,客戶端主機(jī)可以通過 FUSE 機(jī)制使用自己的本機(jī)協(xié)議,使用內(nèi)置服務(wù)器轉(zhuǎn)換器的 NFS v3 協(xié)議或通過 libgfapi 客戶端庫訪問 volume甩恼。
GlusterFS 的大多數(shù)功能都實(shí)現(xiàn)為轉(zhuǎn)換器蟀瞧,包括基于文件的鏡像和復(fù)制,基于文件的條帶化条摸,基于文件的負(fù)載均衡悦污,卷故障轉(zhuǎn)移,調(diào)度和磁盤緩存钉蒲,存儲配額以及具有用戶可維護(hù)性的卷快照(自 GlusterFS 3.6 版本以來 )切端。
GlusterFS 服務(wù)器有意保持簡單:它按原樣導(dǎo)出現(xiàn)有目錄,將其留給客戶端轉(zhuǎn)換器來構(gòu)建存儲顷啼√ぴ妫客戶端本身是無狀態(tài)的,不相互通信钙蒙,并且期望具有彼此一致的轉(zhuǎn)換器配置茵瀑。 GlusterFS 依賴于彈性散列算法(elastic hashing algorithm),而不是使用集中式或分布式元數(shù)據(jù)模型躬厌。使用 GlusterFS 3.1 及更高版本马昨,可以動(dòng)態(tài)添加,刪除或遷移卷烤咧,有助于避免配置一致性問題偏陪,并允許 GlusterFS 通過避免通常會(huì)影響更緊密耦合的分布式文件系統(tǒng)的瓶頸,在商用硬件上擴(kuò)展到幾PB 煮嫌。
GlusterFS 通過各種復(fù)制選項(xiàng)提供數(shù)據(jù)可靠性和可用性:復(fù)制卷和地理復(fù)制笛谦。復(fù)制卷確保每個(gè)文件至少存在一個(gè)副本,因此如果一個(gè)文件出現(xiàn)故障昌阿,仍然可以訪問數(shù)據(jù)饥脑。地理復(fù)制提供了主從模式的復(fù)制, volume 會(huì)跨不同的地理位置進(jìn)行復(fù)制懦冰。這是異步發(fā)生的灶轰,在發(fā)生故障時(shí)備份數(shù)據(jù)非常有用。
參考引用
https://docs.gluster.org/en/latest/Administrator%20Guide/GlusterFS%20Introduction/
https://en.wikipedia.org/wiki/Gluster