glusterfs

第1章 什么是分布式文件系统?

相对于本极端的文件系统而言,分布式文件系统DFS,伙食网络文件系统NFS,是一种允许文件通过网络在多台主机上分享的文件系统你那个,可以让多机器上的多用户分享指定问加你和存储空间

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

第2章 glusterfs简介

glusterfs是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端,glusterfs借助tcp/ip或者infinband RDMA(是一种支持多并发连接的转换线缆技术)网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据,glusterfs基于可堆砌的用户空间设计,可为各种不同的数据负载提供优异的性能

第3章 glutserfs服务端部署:

3.1 环境准备:

[root@lb01 ~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

[root@lb01 ~]# systemctl status firewalld.service

firewalld.service - firewalld - dynamic firewall daemon

   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)

   Active: inactive (dead)

 

Mar 18 00:27:08 lb01 systemd[1]: Starting firewalld - dynamic firewall daemon...

Mar 18 00:27:12 lb01 systemd[1]: Started firewalld - dynamic firewall daemon.

Mar 18 01:29:20 lb01 systemd[1]: Stopping firewalld - dynamic firewall daemon...

Mar 18 01:29:22 lb01 systemd[1]: Stopped firewalld - dynamic firewall daemon.

[root@lb01 ~]# getenforce

Disabled

[root@lb01 ~]# hostname -I

10.0.0.5 172.16.1.5

[root@lb02 ~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

[root@lb02 ~]# systemctl status firewalld.service

firewalld.service - firewalld - dynamic firewall daemon

   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)

   Active: inactive (dead)

[root@lb02 ~]# getenforce

Disabled

[root@lb02 ~]# hostname -I

10.0.0.6 172.16.1.6

注意:配置hosts文件这一步很关键,所有机器都要有

[root@web03 gv0]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.1.41 backup            gluster服务端

172.16.1.17 web03             gluster服务端

172.16.1.18 web04        

172.16.1.21 cache01           进行挂载的客户端

3.2 服务端部署

backup和web03相同操作:

yum install centos-release-gluster -y           glusterfs仓库

yum -y install glusterfs-server

systemctl start glusterd

说明:可以修改镜像源进行加速

sed -i 's#http://mirror.centos.org#https://mirrors.shuosc.org#g' /etc/yum.repos.d/CentOS-Gluster-3.12.repo

3.3 建立信任池,单向建立即可,即把服务端连接在一起使之成为一个整体

[root@backup ~]# gluster peer probe web03

peer probe: success.

3.3.1 说明:将某台机器从信任池中分离用

gluster peer datach

查看信任池建立情况

[root@web03 gv0]# gluster peer status

Number of Peers: 1

 

Hostname: backup

Uuid: 55a0673a-fc85-45de-92f4-ffe4c6918806

State: Peer in Cluster (Connected)

[root@backup ~]# gluster peer status

Number of Peers: 1

 

Hostname: web03

Uuid: f89a8665-f94a-4246-a626-4a9e0dc6be49

State: Peer in Cluster (Connected)

3.3.2 创建分布式卷

服务端创建数据存放目录:

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

[root@backup ~]# mkdir –p /data/gv0

使用命令创建分布式卷,命令为test,可随意命名

[root@lb01 ~]# gluster volume create test 172.16.1.5:/data/exp1/ 172.16.1.6:/data/exp1/ force

volume create: test: success: please start the volume to access data

说明:这条命令最后的force表示将文件存储在系统盘上,因为默认是不允许在系统盘上进行覆盖的

查看卷信息:服务端出入信息应为相同

[root@lb01 ~]# gluster volume info test

 

Volume Name: test

Type: Distribute

Volume ID: 03f9176c-4e7d-49dc-a8f5-9f9f8cc08867

Status: Created

Snapshot Count: 0

Number of Bricks: 2

Transport-type: tcp

Bricks:

Brick1: 172.16.1.5:/data/exp1

Brick2: 172.16.1.6:/data/exp1

Options Reconfigured:

transport.address-family: inet

nfs.disable: on

启动卷

[root@lb01 ~]# gluster volume start  test

volume start: test: success

第4章 客户端部署:

4.1 安装软件:

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

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

[root@cache01 ~]# mount -t glusterfs 172.16.1.17:/test /mnt/

4.2 特殊说明:

在客户端执行挂载命令时,ip或者主机名的冒号后面接的是卷名称,不是目录!

反反复复试验了两天的时间,全都错在挂载命令上,如果不接卷名接的目录,就会遇到如下报错:

[root@cache01 ~]# mount.glusterfs 172.16.1.17:/data/gv0 /mnt/

Mount failed. Please check the log file for more details.

查看/var/log/glusterfs/mnt.log后发现如下信息:

GlusterFS分布式文件系统_文件

1.1 进行检测:

客户端创建文件

[root@cache01 mnt]# mkdir nihao

[root@cache01 mnt]# ll

total 4

drwxr-xr-x 2 root root 4096 Mar 27  2018 nihao

1.2 在服务端进行查看:

[root@backup gv0]# ll                            backup服务端正常

total 0

drwxr-xr-x 2 root root 6 Mar 27 03:18 nihao

[root@web03 gv0]# ll                             web03服务端正常

total 0

drwxr-xr-x 2 root root 6 Mar 18 00:43 nihao

至此,简单的glusterfs服务实现

第2章 扩展怎样创建复制卷和条带卷

2.1.1 创建复制卷---对比RAID1

创建数据存放目录

[root@lb01 ~]# mkdir /data/exp3

[root@lb02 ~]# mkdir /data/exp4

使用命令创建复制卷,命令为repl

[root@lb01 data]# gluster volume create repl replica 2 transport tcp 172.16.1.5:/data/exp3/ 172.16.1.6:/data/exp4 force

volume create: repl: success: please start the volume to access data

查看卷信息

[root@lb01 data]# gluster volume info repl

 

Volume Name: repl

Type: Replicate

Volume ID: 98182696-e065-4bdb-9a11-f6a086092983

Status: Created

Snapshot Count: 0

Number of Bricks: 1 x 2 = 2

Transport-type: tcp

Bricks:

Brick1: 172.16.1.5:/data/exp3

Brick2: 172.16.1.6:/data/exp4

Options Reconfigured:

transport.address-family: inet

nfs.disable: on

performance.client-io-threads: off

启动卷

[root@lb01 data]# gluster volume start repl

volume start: repl: success

2.1.2 创建条带卷---对比RAID0

创建数据存放目录

[root@lb01 data]# mkdir /data/exp5

[root@lb02 data]# mkdir /data/exp6

使用命令创建条带卷,命名为raid0

[root@lb01 data]# gluster volume create raid0 stripe 2 transport tcp 172.16.1.5:/data/exp5/ 172.16.1.6:/data/exp6 force

volume create: raid0: success: please start the volume to access data

查看卷信息

[root@lb01 data]# gluster volume info raid0

 

Volume Name: raid0

Type: Stripe

Volume ID: f8578fab-11c7-4aaa-b58f-b1825233cfd6

Status: Created

Snapshot Count: 0

Number of Bricks: 1 x 2 = 2

Transport-type: tcp

Bricks:

Brick1: 172.16.1.5:/data/exp5

Brick2: 172.16.1.6:/data/exp6

Options Reconfigured:

transport.address-family: inet

nfs.disable: on

启动卷

[root@lb01 data]# gluster volume start raid0

volume start: raid0: success