站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        GlusterFS分布式存儲系統(tǒng)

        分布式存儲已經(jīng)研究很多年,但直到近年來,伴隨著谷歌、亞馬遜和阿里等互聯(lián)網(wǎng)公司云計算和大數(shù)據(jù)應用的興起,它才大規(guī)模應用到工程實踐中。如谷歌的分布式文件系統(tǒng)GFS、分布式表格系統(tǒng)google Bigtable,亞馬遜的對象存儲AWS,阿里的TFS等都是很好的代表,同時也催生了一大批優(yōu)秀的開源分布式存儲系統(tǒng),包括ceph、swift、Lustre和glusterfs等。

        分布式存儲系統(tǒng)

        分布式存儲按其存儲接口分為三種:文件存儲、塊存儲和對象存儲。

        文件存儲

        通常支持POSIX接口(如glusterfs,但GFS、HDFS是非POSIX接口的),可以像普通文件系統(tǒng)(如ext4)那樣訪問,但又比普通文件系統(tǒng)多了并行化訪問的能力和冗余機制。主要的分布式文件存儲系統(tǒng)有TFS、cephfs、glusterfs和HDFS等。主要存儲非結構化數(shù)據(jù),如普通文件、圖片、音視頻等。可以采用NFS和CIFS等協(xié)議訪問,共享方便。NAS是文件存儲類型。

        塊存儲

        這種接口通常以QEMU Driver或者Kernel Module的方式存在,主要通過qemu或iscsi協(xié)議訪問。主要的塊存儲系統(tǒng)有ceph塊存儲、sheepdog等。主要用來存儲結構化數(shù)據(jù),如數(shù)據(jù)庫數(shù)據(jù)。數(shù)據(jù)共享不方便。DAS和SAN都是塊存儲類型。

        對象存儲

        對象存儲系統(tǒng)綜合了NAS和SAN的優(yōu)點,同時具有SAN的高速直接訪問和NAS的數(shù)據(jù)共享等優(yōu)勢。以對象作為基本的存儲單元,向外提供RESTful數(shù)據(jù)讀寫接口,常以網(wǎng)絡服務的形式提供數(shù)據(jù)訪問。主要的對象存儲系統(tǒng)有AWS、swift和ceph對象存儲。主要用來存儲非結構化數(shù)據(jù)

        Glusterfs

        Glusterfs是一個開源分布式文件系統(tǒng),具有強大的橫向擴展能力,可支持數(shù)PB存儲容量和數(shù)千客戶端,通過Infiniband RDMA 或Tcp/Ip 方式將許多廉價的x86 主機,通過網(wǎng)絡互聯(lián)成一個并行的網(wǎng)絡文件系統(tǒng)。具有可擴展性、高性能、高可用性等特點。

        GlusterFS概述

        GlusterFS系統(tǒng)是一個可擴展的網(wǎng)絡文件系統(tǒng),相比其他分布式文件系統(tǒng),GlusterFS具有高擴展性、高可用性、高性能、可橫向擴展等特點,并且其沒有元數(shù)據(jù)服務器的設計,讓整個服務沒有單點故障的隱患。

        術語:

        · Brick:GFS中的存儲單元,通過是一個受信存儲池中的服務器的一個導出目錄。可以通過主機名和目錄名來標識,如‘SERVER:EXPORT‘

        · Client:掛載了GFS卷的設備

        · Extended Attributes:xattr是一個文件系統(tǒng)的特性,其支持用戶或程序關聯(lián)文件/目錄和元數(shù)據(jù)。

        · FUSE:Filesystem Userspace是一個可加載的內(nèi)核模塊,其支持非特權用戶創(chuàng)建自己的文件系統(tǒng)而不需要修改內(nèi)核代碼。通過在用戶空間運行文件系統(tǒng)的代碼通過FUSE代碼與內(nèi)核進行橋接。

        · Geo-Replication

        · GFID:GFS卷中的每個文件或目錄都有一個唯一的128位的數(shù)據(jù)相關聯(lián),其用于模擬inode

        · Namespace:每個Gluster卷都導出單個ns作為POSIX的掛載點

        · Node:一個擁有若干brick的設備

        · RDMA:遠程直接內(nèi)存訪問,支持不通過雙方的OS進行直接內(nèi)存訪問。

        · RRDNS:round robin DNS是一種通過DNS輪轉(zhuǎn)返回不同的設備以進行負載均衡的方法

        · Self-heal:用于后臺運行檢測復本卷中文件和目錄的不一致性并解決這些不一致。

        · Split-brain:腦裂

        · Translator:

        · Volfile:glusterfs進程的配置文件,通常位于/var/lib/glusterd/vols/volname

        · Volume:一組bricks的邏輯集合

        1、無元數(shù)據(jù)設計

        元數(shù)據(jù)是用來描述一個文件或給定區(qū)塊在分布式文件系統(tǒng)中所在的位置,簡而言之就是某個文件或某個區(qū)塊存儲的位置。傳統(tǒng)分布式文件系統(tǒng)大都會設置元數(shù)據(jù)服務器或者功能相近的管理服務器,主要作用就是用來管理文件與數(shù)據(jù)區(qū)塊之間的存儲位置關系。相較其他分布式文件系統(tǒng)而言,GlusterFS并沒有集中或者分布式的元數(shù)據(jù)的概念,取而代之的是彈性哈希算法。集群中的任何服務器和客戶端都可以利用哈希算法、路徑及文件名進行計算,就可以對數(shù)據(jù)進行定位,并執(zhí)行讀寫訪問操作。

        這種設計帶來的好處是極大的提高了擴展性,同時也提高了系統(tǒng)的性能和可靠性;另一顯著的特點是如果給定確定的文件名,查找文件位置會非常快。但是如果要列出文件或者目錄,性能會大幅下降,因為列出文件或者目錄時,需要查詢所在節(jié)點并對各節(jié)點中的信息進行聚合。此時有元數(shù)據(jù)服務的分布式文件系統(tǒng)的查詢效率反而會提高許多。

        2、服務器間的部署

        在之前的版本中服務器間的關系是對等的,也就是說每個節(jié)點服務器都掌握了集群的配置信息,這樣做的好處是每個節(jié)點度擁有節(jié)點的配置信息,高度自治,所有信息都可以在本地查詢。每個節(jié)點的信息更新都會向其他節(jié)點通告,保證節(jié)點間信息的一致性。但如果集群規(guī)模較大,節(jié)點眾多時,信息同步的效率就會下降,節(jié)點信息的非一致性概率就會大大提高。因此GlusterFS未來的版本有向集中式管理變化的趨勢。

        GlusterFS分布式存儲系統(tǒng)

        3、客戶端訪問流程

        當客戶端訪問GlusterFS存儲時,首先程序通過訪問掛載點的形式讀寫數(shù)據(jù),對于用戶和程序而言,集群文件系統(tǒng)是透明的,用戶和程序根本感覺不到文件系統(tǒng)是本地還是在遠程服務器上。讀寫操作將會被交給VFS(Virtual File System)來處理,VFS會將請求交給FUSE內(nèi)核模塊,而FUSE又會通過設備/dev/fuse將數(shù)據(jù)交給GlusterFS Client。最后經(jīng)過GlusterFS Client的計算,并最終經(jīng)過網(wǎng)絡將請求或數(shù)據(jù)發(fā)送到GlusterFS Server上。

        三、GlusterFS集群的模式

        GlusterFS 集群的模式只數(shù)據(jù)在集群中的存放結構,類似于磁盤陣列中的級別。

        1、分布式卷(Distributed Volume)

        又稱哈希卷,近似于RAID0,文件沒有分片,文件根據(jù)hash算法寫入各個節(jié)點的硬盤上,優(yōu)點是容量大,缺點是沒冗余。

        GlusterFS分布式存儲系統(tǒng)

        2、復制卷(Replicated Volume)

        相當于raid1,復制的份數(shù),決定集群的大小,通常與分布式卷或者條帶卷組合使用,解決前兩種存儲卷的冗余缺陷。缺點是磁盤利用率低。

        復本卷在創(chuàng)建時可指定復本的數(shù)量,通常為2或者3,復本在存儲時會在卷的不同brick上,因此有幾個復本就必須提供至少多個brick,當其中一臺服務器失效后,可以從另一臺服務器讀取數(shù)據(jù),因此復制GlusterFS卷提高了數(shù)據(jù)可靠性的同事,還提供了數(shù)據(jù)冗余的功能。

        GlusterFS分布式存儲系統(tǒng)

        3、分布式復制卷(Distributed ReplicatedVolume)

        分布式復制GlusterFS卷結合了分布式和復制Gluster卷的特點,看起來類似RAID10,但其實不同,RAID10其實質(zhì)是條帶化,但分布式復制GlusterFS卷則沒有。

        GlusterFS分布式存儲系統(tǒng)

        4、條帶卷(Striped Volume)

        相當于raid0,文件是分片均勻?qū)懺诟鱾€節(jié)點的硬盤上的,優(yōu)點是分布式讀寫,性能整體較好。缺點是沒冗余,分片隨機讀寫可能會導致硬盤IOPS飽和。

        GlusterFS分布式存儲系統(tǒng)

        5、分布式條帶卷(DistributedStripedVolume)

        當單個文件的體型十分巨大,客戶端數(shù)量更多時,條帶卷已經(jīng)無法滿足需求,此時將分布式與條帶化結合起來是一個比較好的選擇。其性能與服務器數(shù)量有關。

        操作環(huán)境 :

        4臺NAT模式

        1 master 192.168.80.181

        2 slave 192.168.80.182 192.168.80.183

        1 client 192.168.80.184

        用三個節(jié)點搭建一個glusterfs集群,再用一個作為客戶端使用

        四臺都操作:

        vi /etc/hosts

        192.168.80.181 master

        192.168.80.182 slave1

        192.168.80.183 slave2

        192.168.80.184 client

        192.168.80.181(master)

        ssh-keygen -t rsa

        GlusterFS分布式存儲系統(tǒng)

        ssh-copy-id -i slave1

        ssh-copy-id -i slave2

        ssh-copy-id -i client

        GlusterFS分布式存儲系統(tǒng) (嘗試在master用ssh上登陸其他三臺服務器)

        四臺都操作:

        配置yum源為阿里源(在每個節(jié)點中都執(zhí)行)

        wget http://mirrors.aliyun.com/repo/Centos-7.repo

        GlusterFS分布式存儲系統(tǒng)

        執(zhí)行yum源更新命令

        yum clean all

        yum makecache

        安裝glusterfs

        在master、slave1、slave2節(jié)點安裝glusterfs

        yum install centos-release-gluster -y

        yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

        systemctl start glusterd

        systemctl enable glusterd

        GlusterFS分布式存儲系統(tǒng)

        在master節(jié)點上配置,將兩個slave節(jié)點加入到gluster集群中。

        gluster peer probe master

        gluster peer probe slave1

        gluster peer probe slave2

        GlusterFS分布式存儲系統(tǒng)

        查看集群狀態(tài):在master上查看

        gluster peer status

        創(chuàng)建數(shù)據(jù)存儲目錄(在三個節(jié)點上都運行):

        mkdir -p /opt/gluster/data

        查看volume 狀態(tài):

        gluster volume info

        創(chuàng)建GlusterFS磁盤:

        gluster volume create models replica 3 master:/opt/gluster/data slave1:/opt/gluster/data slave2:/opt/gluster/data force //force強制執(zhí)行 volume 卷replica 3表明存儲3個備份,后面指定服務器的存儲目錄

        ——

        GlusterFS 幾種volume 模式指令:

        一、 默認模式,既DHT, 也叫分布卷: 將文件已hash算法隨機分布到一臺服務器節(jié)點中存儲。

        命令:gluster volume create test-volume server1:/exp1 server2:/exp2

        二、 復制模式,既AFR, 創(chuàng)建volume 時帶replica x 數(shù)量: 將文件復制到replica x 個節(jié)點中。

        命令:gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2

        三、 條帶模式,既Striped, 創(chuàng)建volume 時帶stripe x 數(shù)量: 將文件切割成數(shù)據(jù)塊,分別存儲到stripe x 個節(jié)點中( 類似raid 0 )。

        命令:gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2

        四、 分布式條帶模式(組合型),最少需要4臺服務器才能創(chuàng)建。 創(chuàng)建volume 時stripe 2 server = 4 個節(jié)點: 是DHT 與Striped 的組合型。

        命令:gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

        五、分布式復制模式(組合型), 最少需要4臺服務器才能創(chuàng)建。 創(chuàng)建volume 時replica 2 server = 4 個節(jié)點:是DHT 與AFR 的組合型。

        命令:gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

        六、 條帶復制卷模式(組合型), 最少需要4臺服務器才能創(chuàng)建。 創(chuàng)建volume 時stripe 2 replica 2 server = 4 個節(jié)點: 是Striped 與AFR 的組合型。

        命令:gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

        七、 三種模式混合, 至少需要8臺服務器才能創(chuàng)建。 stripe 2 replica 2 , 每4個節(jié)點組成一個組。

        命令:gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7 server8:/exp8

        ——

        再次查看volume信息

        gluster volume info

        GlusterFS分布式存儲系統(tǒng)

        啟動models

        gluster volume start models

        gluster 性能調(diào)優(yōu):

        開啟指定volume 的配額:(models 為volume 名稱)

        gluster volume quota models enable

        限制models 中/ (既總目錄) 最大使用80GB 空間

        gluster volume quota models limit-usage / 80GB

        設置cache 大小(此處要根據(jù)實際情況,如果設置太大可能導致后面客戶端掛載失敗)

        gluster volume set models performance.cache-size 512MB

        開啟異步,后臺操作

        gluster volume set models performance.flush-behind on

        設置io 線程32

        gluster volume set models performance.io-thread-count 32

        設置回寫(寫數(shù)據(jù)時間,先寫入緩存內(nèi),再寫入硬盤)

        gluster volume set models performance.write-behind on

        調(diào)優(yōu)之后的volume信息

        gluster volume info

        GlusterFS分布式存儲系統(tǒng)

        在客戶端上:

        部署GlusterFS客戶端并mount GlusterFS文件系統(tǒng)

        yum install -y glusterfs glusterfs-fuse

        建立掛載點:

        mkdir -p /opt/gfsmount

        mount命令:

        mount -t glusterfs 192.168.80.181:models /opt/gfsmount/

        GlusterFS分布式存儲系統(tǒng)

        df 命令檢查:df -h

        測試:

        往該目錄寫入文件,隨后查看gluster服務器的存儲情況

        time dd if=/dev/zero of=/opt/gfsmount/hello bs=100M count=1

        查看phn機器上/opt/gfsmount 目錄

        查看master機器上/opt/gluster/data目錄

        查看slave1機器上/opt/gluster/data目錄

        查看slave2機器上/opt/gluster/data目錄

        可以看到gluster服務器的每個節(jié)點上都有備份,符合之前設置的3個備份的原則

        其他命令

        查看GlusterFS中所有的volume:

        gluster volume list

        刪除GlusterFS磁盤:

        gluster volume stop models //停止名字為models 的磁盤

        gluster volume delete models //刪除名字為models 的磁盤

        注: 刪除磁盤以后,必須刪除磁盤( /opt/gluster/data ) 中的( .glusterfs/ .trashcan/ )目錄。

        否則創(chuàng)建新volume 相同的磁盤會出現(xiàn)文件不分布,或者類型錯亂的問題。

        卸載某個節(jié)點GlusterFS磁盤

        gluster peer detach swarm-node-2

        設置訪問限制,按照每個volume 來限制

        gluster volume set models auth.allow 10.6.0.*,10.7.0.*

        添加GlusterFS節(jié)點:

        gluster peer probe swarm-node-3

        gluster volume add-brick models swarm-node-3:/opt/gluster/data

        配置卷

        gluster volume set

        縮容volume:

        先將數(shù)據(jù)遷移到其它可用的Brick,遷移結束后才將該Brick移除:

        gluster volume remove-brick models slave1:/opt/gluster/data slave2:/opt/gluster/data start

        在執(zhí)行了start之后,可以使用status命令查看移除進度:

        gluster volume remove-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data status

        不進行數(shù)據(jù)遷移,直接刪除該Brick:

        gluster volume remove-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data commit

        注意,如果是復制卷或者條帶卷,則每次移除的Brick數(shù)必須是replica或者stripe的整數(shù)倍。

        擴容:

        gluster volume add-brick models swarm-node-2:/opt/gluster/data

        修復命令:

        gluster volume replace-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data commit -force

        遷移volume:

        gluster volume replace-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data start

        pause 為暫停遷移

        gluster volume replace-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data pause

        abort 為終止遷移

        gluster volume replace-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data abort

        status 查看遷移狀態(tài)

        gluster volume replace-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data status

        遷移結束后使用commit 來生效

        gluster volume replace-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data commit

        均衡volume:

        gluster volume models lay-outstart

        gluster volume models start

        gluster volume models startforce

        gluster volume models status

        gluster volume models stop

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 久久99久久99小草精品免视看| 亚洲精品无码久久千人斩| 综合精品欧美日韩国产在线| 欧美精品一二区| 亚洲综合av永久无码精品一区二区| 在线精品动漫一区二区无广告| 日本精品一区二区三区在线观看| 91麻豆精品国产91久久久久久 | 亚洲永久永久永久永久永久精品| 国内精品久久九九国产精品| 亚洲国产精品无码久久98| 久久精品亚洲欧美日韩久久| 在线观看国产精品日韩av| 国产精品无码专区在线观看| 亚洲精品成人在线| 国产a∨精品一区二区三区不卡| 99久re热视频这里只有精品6| 无码aⅴ精品一区二区三区浪潮| www.亚洲精品.com| 精品91自产拍在线观看| 亚洲国产精品高清久久久| 国产亚洲精品看片在线观看| 午夜精品视频在线| 国产成人精品免费视频网页大全| 国产精品无码日韩欧| 99久久99久久精品国产片| 老司机国内精品久久久久| 国产福利在线观看精品| 91精品国产高清久久久久久国产嫩草| 国产精品视频一区二区三区四| 无码人妻精品一区二区三区久久| 亚洲AV日韩精品一区二区三区| 久久久无码精品亚洲日韩软件| 国产精品毛片无码| 日韩精品久久无码人妻中文字幕 | 国产精品九九九| 国产精品白丝AV嫩草影院| 国产精品va在线观看无码| 精品无码综合一区| 大伊香蕉精品视频在线导航| 国产精品美女久久久久|