在你配置glusterfs的volume以前,你須要先建立一個由存儲服務器組成的能夠信任的存儲池,glusterfs服務必須運行在每一臺加入存儲池的服務器上。算法
加入一臺服務器到可信任存儲池shell
命令:gluster peer probe server-namewindows
在GlusterFS-Server1上加入兩臺服務器到存儲池中,在GlusterFS-Server1上不須要設置加入本身,只須要設置要加入進來的服務器。在加入進來的服務器上會看到GlusterFS-Server1的。服務器
gluster peer probe GlusterFS-Server2 gluster peer probe GlusterFS-Server3
以下圖:
檢查加入可信任存儲池中的服務器狀態併發
命令:gluster peer statustcp
gluster peer status
以下圖:分佈式
從存儲池中移除一臺服務器高併發
命令:gluster peer detach server性能
gluster peer detach GlusterFS-Server3
如圖:
建立glusterfs的volume,volume是bricks的邏輯集合,每個bricks都是在信任的存儲池中服務器上導出的目錄,當建立volume的時候,你必須指定volume由那些bricks組成。測試
建立一個新volume
命令:gluster volume create NEW-VOLNAME [stripe COUNT | replica COUNT] [transport tcp | rdma | tcp, rdma] NEW-BRICK1 NEW-BRICK2 NEW-BRICK3
在GlusterFS中有五中類型的volume能夠被建立:
Distributed:分佈式卷,文件經過hash算法隨機的分佈到由bricks組成的捲上。
Replicated:複製式卷,相似raid1,replica數必須等於volume中brick所包含的存儲服務器數,可用性高。
Striped:條帶式卷,相似與raid0,stripe數必須等於volume中brick所包含的存儲服務器數,文件被分紅數據塊,以Round Robin的方式存儲在bricks中,併發粒度是數據塊,大文件性能好。
Distributed Striped:分佈式的條帶卷,volume中brick所包含的存儲服務器數必須是stripe的倍數(>=2倍),兼顧分佈式和條帶式的功能。
Distributed Replicated:分佈式的複製卷,volume中brick所包含的存儲服務器數必須是 replica 的倍數(>=2倍),兼顧分佈式和複製式的功能。
下面開始構建Distributed Volumes
只須要在volume中的一臺存儲服務器上操做,咱們選擇在GlusterFS-Server1上操做
分佈式的卷把文件分佈的存放在整個卷的bricks中,分佈式卷通常用於擴展存儲或者數據冗餘要求不高的地方,可是若是存儲服務器或者磁盤故障,分佈式的卷會致使嚴重的數據丟失。文件在分佈式卷中是隨機存放的,默認使用tcp協議。
建立一個分佈式的卷,包含GlusterFS-Server1:/opt/Server一、GlusterFS-Server2:/opt/Server二、GlusterFS-Server3:/opt/Server3等目錄。
gluster volume create test-volume GlusterFS-Server1:/opt/Server1 GlusterFS-Server2:/opt/Server2 GlusterFS-Server3:/opt/Server3
如圖:
查看建立的卷的信息
命令:gluster volume info
gluster volume info
如圖:能夠看到在GlusterFS-Server2/GlusterFS-Server3中能夠看到相同的信息
在建立完volume以後,就該啓動建立的捲了:
啓動volumes
命令:gluster volume start volume-name
也能夠在卷中的其餘存儲機器上啓動卷,咱們在GlusterFS-Server3上啓動test-volume
gluster volume start test-volume
如圖:
設置glusterfs客戶端 訪問數據
glusterfs提供了三種方式訪問存儲服務器的數據:
Gluster Native Client:這種方式提供了高併發、高性能、高傳輸速率的方式。
NFS:可使用NFS V3版本訪問數據,你須要在客戶端和服務端安裝 nfs-common軟件包。
CIFS:在windows下使用,相似與samba,samab客戶端須在客戶端安裝。
客戶端其實和服務端同樣,服務端既能夠作服務端也能夠作客戶端,都須要fuse,檢查fuse模塊是否被加載:
dmesg | grep -i fuse
手動掛載卷
在命令行指定的存儲掛載服務器是用來獲取gluster的卷配置文件的,隨後客戶端會直接和配置文件中提到的服務器進行通信。因此只要是卷中的服務器均可以掛載。
掛載test-volume捲到/mnt目錄:
mount -t glusterfs GlusterFS-Server1:/test-volume /mnt
如圖:
在客戶端的/mnt目錄建一批測試文件:
cd /mnt touch test{1,2,3,4,5,6,7,8,9}
如圖:
而後觀察存儲服務端文件的分佈狀況 由於我掛載的是分佈式卷,文件在卷中是隨機存放的,因此能夠看到是無規律的。