GlusterFS是Scale-Out存儲解決方案Gluster的核心,它是一個開源的分布式文件系統(tǒng),具有強(qiáng)大的橫向擴(kuò)展能力,通過擴(kuò)展能夠支持?jǐn)?shù)PB存儲容量和處理數(shù)千客戶端。GlusterFS借助TCP/IP或InfiniBand RDMA網(wǎng)絡(luò)將物理分布的存儲資源聚集在一起,使用單一全局命名空間來管理數(shù)據(jù)。GlusterFS基于可堆疊的用戶空間設(shè)計(jì),可為各種不同的數(shù)據(jù)負(fù)載提供優(yōu)異的性能。
博望ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
GlusterFS支持運(yùn)行在任何標(biāo)準(zhǔn)IP網(wǎng)絡(luò)上標(biāo)準(zhǔn)應(yīng)用程序的標(biāo)準(zhǔn)客戶端,如圖2所示,用戶可以在全局統(tǒng)一的命名空間中使用NFS/CIFS等標(biāo)準(zhǔn)協(xié)議來訪問應(yīng)用數(shù)據(jù)。GlusterFS使得用戶可擺脫原有的獨(dú)立、高成本的封閉存儲系統(tǒng),能夠利用普通廉價的存儲設(shè)備來部署可集中管理、橫向擴(kuò)展、虛擬化的存儲池,存儲容量可擴(kuò)展至TB/PB級。GlusterFS主要特征如下:
GlusterFS利用雙重特性來提供幾TB至數(shù)PB的高擴(kuò)展存儲解決方案。Scale-Out架構(gòu)允許通過簡單地增加資源來提高存儲容量和性能,磁盤、計(jì)算和I/O資源都可以獨(dú)立增加,支持10GbE和InfiniBand等高速網(wǎng)絡(luò)互聯(lián)。Gluster彈性哈希(Elastic Hash)解除了GlusterFS對元數(shù)據(jù)服務(wù)器的需求,消除了單點(diǎn)故障和性能瓶頸,真正實(shí)現(xiàn)了并行化數(shù)據(jù)訪問。
GlusterFS可以對文件進(jìn)行自動復(fù)制,如鏡像或多次復(fù)制,從而確保數(shù)據(jù)總是可以訪問,甚至是在硬件故障的情況下也能正常訪問。自我修復(fù)功能能夠把數(shù)據(jù)恢復(fù)到正確的狀態(tài),而且修復(fù)是以增量的方式在后臺執(zhí)行,幾乎不會產(chǎn)生性能負(fù)載。GlusterFS沒有設(shè)計(jì)自己的私有數(shù)據(jù)文件格式,而是采用操作系統(tǒng)中主流標(biāo)準(zhǔn)的磁盤文件系統(tǒng)(如EXT3、ZFS)來存儲文件,因此數(shù)據(jù)可以使用各種標(biāo)準(zhǔn)工具進(jìn)行復(fù)制和訪問。
全局統(tǒng)一命名空間將磁盤和內(nèi)存資源聚集成一個單一的虛擬存儲池,對上層用戶和應(yīng)用屏蔽了底層的物理硬件。存儲資源可以根據(jù)需要在虛擬存儲池中進(jìn)行彈性擴(kuò)展,比如擴(kuò)容或收縮。當(dāng)存儲虛擬機(jī)映像時,存儲的虛擬映像文件沒有數(shù)量限制,成千虛擬機(jī)均通過單一掛載點(diǎn)進(jìn)行數(shù)據(jù)共享。虛擬機(jī)I/O可在命名空間內(nèi)的所有服務(wù)器上自動進(jìn)行負(fù)載均衡,消除了SAN環(huán)境中經(jīng)常發(fā)生的訪問熱點(diǎn)和性能瓶頸問題。
GlusterFS采用彈性哈希算法在存儲池中定位數(shù)據(jù),而不是采用集中式或分布式元數(shù)據(jù)服務(wù)器索引。在其他的Scale-Out存儲系統(tǒng)中,元數(shù)據(jù)服務(wù)器通常會導(dǎo)致I/O性能瓶頸和單點(diǎn)故障問題。GlusterFS中,所有在Scale-Out存儲配置中的存儲系統(tǒng)都可以智能地定位任意數(shù)據(jù)分片,不需要查看索引或者向其他服務(wù)器查詢。這種設(shè)計(jì)機(jī)制完全并行化了數(shù)據(jù)訪問,實(shí)現(xiàn)了真正的線性性能擴(kuò)展。
數(shù)據(jù)儲存在邏輯卷中,邏輯卷可以從虛擬化的物理存儲池進(jìn)行獨(dú)立邏輯劃分而得到。存儲服務(wù)器可以在線進(jìn)行增加和移除,不會導(dǎo)致應(yīng)用中斷。邏輯卷可以在所有配置服務(wù)器中增長和縮減,可以在不同服務(wù)器遷移進(jìn)行容量均衡,或者增加和移除系統(tǒng),這些操作都可在線進(jìn)行。文件系統(tǒng)配置更改也可以實(shí)時在線進(jìn)行并應(yīng)用,從而可以適應(yīng)工作負(fù)載條件變化或在線性能調(diào)優(yōu)。
Gluster存儲服務(wù)支持NFS, CIFS, HTTP, FTP以及Gluster原生協(xié)議,完全與POSIX標(biāo)準(zhǔn)兼容。現(xiàn)有應(yīng)用程序不需要作任何修改或使用專用API,就可以對Gluster中的數(shù)據(jù)進(jìn)行訪問。這在公有云環(huán)境中部署Gluster時非常有用,Gluster對云服務(wù)提供商專用API進(jìn)行抽象,然后提供標(biāo)準(zhǔn)POSIX接口。
Brick:GFS中的存儲單元,通過是一個受信存儲池中的服務(wù)器的一個導(dǎo)出目錄。可以通過主機(jī)名和目錄名來標(biāo)識,如'SERVER:EXPORT'
Client: 掛載了GFS卷的設(shè)備
Extended Attributes:xattr是一個文件系統(tǒng)的特性,其支持用戶或程序關(guān)聯(lián)文件/目錄和元數(shù)據(jù)。
FUSE:Filesystem Userspace是一個可加載的內(nèi)核模塊,其支持非特權(quán)用戶創(chuàng)建自己的文件系統(tǒng)而不需要修改內(nèi)核代碼。通過在用戶空間運(yùn)行文件系統(tǒng)的代碼通過FUSE代碼與內(nèi)核進(jìn)行橋接。
Geo-Replication
GFID:GFS卷中的每個文件或目錄都有一個唯一的128位的數(shù)據(jù)相關(guān)聯(lián),其用于模擬inode
Namespace:每個Gluster卷都導(dǎo)出單個ns作為POSIX的掛載點(diǎn)
Node:一個擁有若干brick的設(shè)備
RDMA:遠(yuǎn)程直接內(nèi)存訪問,支持不通過雙方的OS進(jìn)行直接內(nèi)存訪問。
RRDNS:round robin DNS是一種通過DNS輪轉(zhuǎn)返回不同的設(shè)備以進(jìn)行負(fù)載均衡的方法
Self-heal:用于后臺運(yùn)行檢測復(fù)本卷中文件和目錄的不一致性并解決這些不一致。
Split-brain:腦裂
Translator:
Volfile:glusterfs進(jìn)程的配置文件,通常位于/var/lib/glusterd/vols/volname
Volume:一組bricks的邏輯集合
GlusterFS認(rèn)為存儲是軟件問題,不能夠把用戶局限于使用特定的供應(yīng)商或硬件配置來解決。GlusterFS采用開放式設(shè)計(jì),廣泛支持工業(yè)標(biāo)準(zhǔn)的存儲、網(wǎng)絡(luò)和計(jì)算機(jī)設(shè)備,而非與定制化的專用硬件設(shè)備捆綁。對于商業(yè)客戶,GlusterFS可以以虛擬裝置的形式交付,也可以與虛擬機(jī)容器打包,或者是公有云中部署的映像。開源社區(qū)中,GlusterFS被大量部署在基于廉價閑置硬件的各種操作系統(tǒng)上,構(gòu)成集中統(tǒng)一的虛擬存儲資源池。簡而言之,GlusterFS是開放的全軟件實(shí)現(xiàn),完全獨(dú)立于硬件和操作系統(tǒng)。
GlusterFS不僅提供了一個分布式文件系統(tǒng),而且還提供了許多其他重要的分布式功能,比如分布式內(nèi)存管理、I/O調(diào)度、軟RAID和自我修復(fù)等。GlusterFS汲取了微內(nèi)核架構(gòu)的經(jīng)驗(yàn)教訓(xùn),借鑒了GNU/Hurd操作系統(tǒng)的設(shè)計(jì)思想,在用戶空間實(shí)現(xiàn)了完整的存儲操作系統(tǒng)棧。
與傳統(tǒng)的文件系統(tǒng)不同,GlusterFS在用戶空間實(shí)現(xiàn),這使得其安裝和升級特別簡便。另外,這也極大降低了普通用戶基于源碼修改GlusterFS的門檻,僅僅需要通用的C程序設(shè)計(jì)技能,而不需要特別的內(nèi)核編程經(jīng)驗(yàn)。
GlusterFS采用模塊化、堆棧式的架構(gòu),可通過靈活的配置支持高度定制化的應(yīng)用環(huán)境,比如大文件存儲、海量小文件存儲、云存儲、多傳輸協(xié)議應(yīng)用等。每個功能以模塊形式實(shí)現(xiàn),然后以積木方式進(jìn)行簡單的組合,即可實(shí)現(xiàn)復(fù)雜的功能。比如,Replicate模塊可實(shí)現(xiàn)RAID1,Stripe模塊可實(shí)現(xiàn)RAID0,通過兩者的組合可實(shí)現(xiàn)RAID10和RAID01,同時獲得高性能和高可靠性。
GlusterFS以原始數(shù)據(jù)格式(如EXT3、EXT4、XFS、ZFS)儲存數(shù)據(jù),并實(shí)現(xiàn)多種數(shù)據(jù)自動修復(fù)機(jī)制。因此,系統(tǒng)極具彈性,即使離線情形下文件也可以通過其他標(biāo)準(zhǔn)工具進(jìn)行訪問。如果用戶需要從GlusterFS中遷移數(shù)據(jù),不需要作任何修改仍然可以完全使用這些數(shù)據(jù)。
對Scale-Out存儲系統(tǒng)而言,最大的挑戰(zhàn)之一就是記錄數(shù)據(jù)邏輯與物理位置的映像關(guān)系,即數(shù)據(jù)元數(shù)據(jù),可能還包括諸如屬性和訪問權(quán)限等信息。傳統(tǒng)分布式存儲系統(tǒng)使用集中式或分布式元數(shù)據(jù)服務(wù)來維護(hù)元數(shù)據(jù),集中式元數(shù)據(jù)服務(wù)會導(dǎo)致單點(diǎn)故障和性能瓶頸問題,而分布式元數(shù)據(jù)服務(wù)存在性能負(fù)載和元數(shù)據(jù)同步一致性問題。特別是對于海量小文件的應(yīng)用,元數(shù)據(jù)問題是個非常大的挑戰(zhàn)。
GlusterFS獨(dú)特地采用無元數(shù)據(jù)服務(wù)的設(shè)計(jì),取而代之使用算法來定位文件,元數(shù)據(jù)和數(shù)據(jù)沒有分離而是一起存儲。集群中的所有存儲系統(tǒng)服務(wù)器都可以智能地對文件數(shù)據(jù)分片進(jìn)行定位,僅僅根據(jù)文件名和路徑并運(yùn)用算法即可,而不需要查詢索引或者其他服務(wù)器。這使得數(shù)據(jù)訪問完全并行化,從而實(shí)現(xiàn)真正的線性性能擴(kuò)展。無元數(shù)據(jù)服務(wù)器極大提高了GlusterFS的性能、可靠性和穩(wěn)定性。
系統(tǒng)版本:Linux CentOS release 6.9 (Final)
系統(tǒng)內(nèi)核:2.6.32-696.23.1.el6.x86_64
Glusterfs軟件版本:3.10.12
Node1:192.168.1.111
Node2:192.168.1.112
yum -y install centos-release-gluster310 #安裝glusterfs yum源
yum install -y libgssglue libtirpc rpcbind lvm2-develyum list glusterfs libaio #安裝依賴關(guān)系
yum install -y atop fio iperf #安裝測試工具
yum install -y glusterfs-libs glusterfs glusterfs-api glusterfs-cli glusterfs-client-xlators glusterfs-fuse glusterfs-server #安裝glusterfs服務(wù)端軟件
mkfs.ext4 /dev/sdb #格式化文件系統(tǒng)
mount /dev/sdb /storage/brick1/ 掛載文件系統(tǒng)
mount #查看
vim /etc/fstab #設(shè)置開機(jī)自動掛載
/dev/sdb /storage/brick1 exit4 defaults 0 0
service glusterd start #啟動gluster服務(wù)
chkconfig glusterd on #gluster服務(wù)開機(jī)自啟動
gluster peer probe node2 #將主機(jī)加入到集群
gluster peer status #查看節(jié)點(diǎn)狀態(tài)
=====================================================
創(chuàng)建分布式哈希卷:
gluster volume create testol node2:/storage/brick1/b1 #創(chuàng)建 一個卷 testol 到/storage/brick1/b1 這個目錄下
gluster volume start testol #啟動testol這個卷
gluster volume rebalance testol fix-layout start #哈希范圍重新分配,一般做完數(shù)據(jù)遷移或者添加新的brick做完負(fù)載后執(zhí)行這條命令
=====================================================
刪除一個卷(最好先將mount掛載的客戶端卸載后在刪除):
gluster volume stop testol #先將卷停止
gluster volume delete testol #然后刪除
PS:刪除卷后,數(shù)據(jù)還在,如果覺得不需要可以將數(shù)據(jù)刪掉
====================================================
刪除一個brick
gluster volume remove-brick
====================================================
負(fù)載均衡:(刪除brick后對其他的卷進(jìn)行負(fù)載均衡)
gluster volume rebalance VOLNAME {start|stop|}[force]
====================================================
創(chuàng)建一個復(fù)制卷:
gluster volume create testvol replica 2 node2:/storage/brick1/b2 #創(chuàng)建一個復(fù)制卷
yum install -y glusterfs-fuse glusterfs-libs glusterfs #客戶端要安裝的軟件
mount -t glusterfs node1:testvol /mnt #客戶端掛載,注意做好hosts解析。