分佈式文件系統---GlusterFS

分佈式文件系統

  相對於本機端的文件系統而言,分佈式文件系統(英語:Distributed file systemDFS),或是網絡文件系統(英語:Network File System),是一種容許文件經過網絡在多臺主機上分享的文件系統,可以讓多機器上的多用戶分享文件和存儲空間centos

  在這樣的文件系統中,客戶端並不是直接訪問底層的數據存儲區塊,而是經過網絡,以特定的通訊協議和服務器溝通。藉由通訊協議的設計,可讓客戶端和服務器端都能根據訪問控制清單或是受權,來限制對於文件系統的訪問。api

glusterfs是什麼

  Gluster是一個分佈式文件系統。它是各類不一樣的存儲服務器之上的組合,這些服務器由以太網或無限帶寬技術Infiniband以及遠程直接內存訪問RDMA互相融匯,最終所造成的一個大的並行文件系統網絡。bash

 

   它有包括雲計算在內的多重應用,諸如:生物醫藥科學,文檔存儲。Gluster是由GNU託管的自由軟件,證書是AGPL。Gluster公司是Gluster的首要商業贊助商,且提供商業產品以及基於Gluster的解決方案。服務器

快速部署GlusterFS

環境說明

 注意:最少須要擁有兩塊硬盤網絡

 

 兩臺主機系統環境說明app

[root@glusterfs02 ~]# hostname
glusterfs02
[root@glusterfs02 ~]# uname -r
3.10.0-693.el7.x86_64dom

[root@glusterfs02 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.221 glusterfs01
192.168.1.222 glusterfs02tcp

前期準備

 gluster01主機掛載磁盤分佈式

 [root@glusterfs01 ~]# mkfs.xfs /dev/sdb工具

 [root@glusterfs01 ~]# mkdir -p /data/brick1

 [root@glusterfs01 ~]# echo '/dev/sdb /data/brick1 xfs defaults 0 0' >> /etc/fstab

 [root@glusterfs01 ~]# mount -a && mount

 gluster02主機掛載磁盤

 [root@glusterfs02 ~]# mkfs.xfs /dev/sdb

 [root@glusterfs02 ~]# mkdir -p /data/brick1

 [root@glusterfs02 ~]# echo '/dev/sdb /data/brick1 xfs defaults 0 0' >> /etc/fstab

 [root@glusterfs02 ~]# mount -a && mount

部署GlusterFS

安裝軟件

 在兩個節點上操做

 [root@glusterfs01 ~]# yum install centos-release-gluster -y

 [root@glusterfs02 ~]# yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

啓動GlusterFS

 在兩個節點上都進行操做

 [root@glusterfs01 ~]# systemctl start glusterd.service 

配置互信(可信池)

 在glusterfs01上操做

[root@glusterfs01 ~]# gluster peer probe glusterfs02
peer probe: success.

 在glusterfs02上操做

[root@glusterfs02 ~]# gluster peer probe glusterfs01
peer probe: success. Host glusterfs01 port 24007 already in peer list

 注意:一旦創建了這個池,只有受信任的成員可能會將新的服務器探測到池中。新服務器沒法探測池,必須從池中探測。

檢查對等狀態

[root@glusterfs01 ~]# gluster peer status
Number of Peers: 1

Hostname: glusterfs02
Uuid: 2f94889d-25d4-4775-ab61-5db25ddfb2fc
State: Peer in Cluster (Connected)

[root@glusterfs02 ~]# gluster peer status
Number of Peers: 1

Hostname: glusterfs01
Uuid: 8f9e6573-7042-4227-a8f9-d7922cc1f1f9
State: Peer in Cluster (Connected)

 注意:看到的UUID應不相同。

 

創建一個GlusterFS卷

 在兩個節點上操做

 [root@glusterfs01 ~]# mkdir -p /data/brick1/gv0

  在任意一個節點上執行

[root@glusterfs01 ~]# gluster volume create gv0 replica 2 glusterfs01:/data/brick1/gv0 glusterfs02:/data/brick1/gv0 force
volume create: gv0: success: please start the volume to access data

[root@glusterfs01 ~]# gluster volume start gv0
volume start: gv0: success

 查看信息

 

[root@glusterfs01 ~]# gluster volume info

Volume Name: gv0
Type: Replicate
Volume ID: 630085a3-58af-4547-a4f0-2613412dc650
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: glusterfs01:/data/brick1/gv0
Brick2: glusterfs02:/data/brick1/gv0
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off

 至此,服務端配置結束

客戶端測試

安裝客戶端工具

掛載測試

[root@client ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.221 glusterfs01
192.168.1.222 glusterfs02
192.168.1.220 client

[root@client ~]# yum install centos-release-gluster -y

[root@client ~]# yum install -y glusterfs glusterfs-fuse

[root@client ~]# mount.glusterfs glusterfs01:/gv0 /mnt
[root@client ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 19G 1.4G 18G 8% /
devtmpfs 226M 0 226M 0% /dev
tmpfs 237M 0 237M 0% /dev/shm
tmpfs 237M 4.6M 232M 2% /run
tmpfs 237M 0 237M 0% /sys/fs/cgroup
/dev/sda1 247M 105M 142M 43% /boot
tmpfs 48M 0 48M 0% /run/user/0
glusterfs01:/gv0 20G 237M 20G 2% /mnt

複製文件測試

[root@client ~]# for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/copy-test-$i; done
[root@client ~]# ls -lA /mnt/copy* | wc -l
100

服務節點檢查文件

[root@glusterfs01 gv0]# ls -lA /data/brick1/gv0/copy* |wc -l
100

[root@glusterfs02 ~]# ls -lA /data/brick1/gv0/copy* |wc -l
100

至此Glusterfs簡單配置完成

 

 

建立卷

gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0 force  

2、啓動卷

 gluster volume start 

例子:gluster volume start  gv0

3、中止卷

gluster volume stop 

例子:gluster volume stop gv0

4、 刪除卷

gluster volume delete 

例子:gluster volume delete  gv0

5、添加節點

gluster peer probe

例子:gluster peer probe server3

6、刪除節點

gluster peer detach (移除節點,須要提早將該節點上的brick移除)

例子:gluster peer detach server3

7、查看卷

gluster volume list              /*列出集羣中的全部卷*/

gluster volume info [all]      /*查看集羣中的卷信息*/
gluster volume status [all]  /*查看集羣中的卷狀態*/

8、 更改卷類型

 

3.更改卷的類型

語法:gluster volume set test-volume config.transport tcp,rdma OR tcp OR rdma

例子:

9、從新均衡卷

語法:gluster volume rebalance <VOLNAME> fix-layout start

例子:gluster volume rebalance test-volume fix-layout start

10、收縮卷

1.開始收縮

gluster volume  remove-brick  gv0 server3:/data/brick1/gv0 server4:/data/brick1/gv0 start

2.查看遷移狀態

gluster volume  remove-brick  gv0 server3:/data/brick1/gv0 server4:/data/brick1/gv0 status

3.遷移完成提交

gluster volume  remove-brick  gv0 server3:/data/brick1/gv0 server4:/data/brick1/gv0 commit

九.GlusterFS的配額

GlusterFS目錄限額,容許你根據目錄或卷配置限制磁盤空間的使用量

1.開啓限額

gluster volume quota VolumeName enable

2.關閉限額

gluster volume quota VolumeName disable

3.設置或替換磁盤限制

 3.1.根據卷限制

 

gluster volume  quota  VolumeName limit-usage / size
例子: gluster volume  quota  gv0 limit-usage / 10GB
3.2.根據目錄限制
gluster volume  quota  VolumeName limit-usage DirectoryPath LimitSize
相關文章
相關標籤/搜索