分布式文件系统---GlusterFS

分布式文件系统

  相对于本机端的文件系统而言,分布式文件系统(英语:Distributed file systemDFS),或是网络文件系统(英语:Network File System),是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间

  在这样的文件系统中,客户端并非直接访问底层的数据存储区块,而是通过网络,以特定的通信协议和服务器沟通。借由通信协议的设计,可以让客户端和服务器端都能根据访问控制清单或是授权,来限制对于文件系统的访问。

glusterfs是什么

  Gluster是一个分布式文件系统。它是各种不同的存储服务器之上的组合,这些服务器由以太网或无限带宽技术Infiniband以及远程直接内存访问RDMA互相融汇,最终所形成的一个大的并行文件系统网络。

   它有包括云计算在内的多重应用,诸如:生物医药科学,文档存储。Gluster是由GNU托管的自由软件,证书是AGPL。Gluster公司是Gluster的首要商业赞助商,且提供商业产品以及基于Gluster的解决方案。

快速部署GlusterFS

环境说明

 注意:最少需要拥有两块硬盘

 

 两台主机系统环境说明

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

[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 glusterfs02

前期准备

 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  

二、启动卷

 gluster volume start 

例子:gluster volume start  gv0

三、停止卷

gluster volume stop 

例子:gluster volume stop gv0

四、 删除卷

gluster volume delete 

例子:gluster volume delete  gv0

五、添加节点

gluster peer probe

例子:gluster peer probe server3

六、删除节点

gluster peer detach (移除节点,需要提前将该节点上的brick移除)

例子:gluster peer detach server3

七、查看卷

gluster volume list              /*列出集群中的所有卷*/

gluster volume info [all]      /*查看集群中的卷信息*/
gluster volume status [all]  /*查看集群中的卷状态*/

八、 更改卷类型

3.更改卷的类型

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

例子:

九、重新均衡卷

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

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

十、收缩卷

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
原文地址:https://www.cnblogs.com/liujunjun/p/11850512.html