Glusterfs部署

34 阅读5分钟

实验准备

  1. **所有节点(包括client)**静态IP(NAT网络,能上外网)

  2. **所有节点(包括client)**都配置主机名及其主机名互相绑定(这次我这里做了别名,方便使用)

    10.1.1.11 vm1.cluster.com storage1 10.1.1.12 vm2.cluster.com storage2 10.1.1.13 vm3.cluster.com storage3 10.1.1.14 vm4.cluster.com storage4 10.1.1.15 vm5.cluster.com client

  3. **所有节点(包括client)**关闭防火墙,selinux

    # systemctl stop firewalld
    # systemctl disable firewalld
    # iptables -F
    
  4. **所有节点(包括client)**时间同步

  5. **所有节点(包括client)**配置好yum(需要加上glusterfs官方yum源)

    vim /etc/yum.repos.d/glusterfs.repo

    [glusterfs] name=glusterfs baseurl=buildlogs.centos.org/centos/7/st… enabled=1 gpgcheck=0

实验步骤:

  1. 在所有storage服务器上安装相关软件包,并启动服务

  2. 所有storage服务器建立连接, 成为一个集群

  3. 所有storage服务器准备存储目录

  4. 创建存储卷

  5. 启动存储卷

  6. client安装挂载软件

  7. client挂载使用

实验过程:

第1步, 在所有storage服务器上(不包括client)安装glusterfs-server软件包,并启动服务

下面的命令所有存储服务器都要做
# yum install glusterfs-server

# systemctl start glusterd
# systemctl enable glusterd
# systemctl status glusterdglusterd# systemctl status glusterd

分布式集群一般有两种架构:

  • 有中心节点的 中心节点一般指管理节点,后面大部分分布式集群架构都属于这一种

  • 无中心节点的 所有节点又管理又做事,glusterfs属于这一种

第2步, 所有storage服务器建立连接,成为一个集群

4个storage服务器建立连接不用两两连接,只需要找其中1个,连接另外3个各一次就OK了

下面我就在storage1上操作
storage1# gluster peer probe storage2		
storage1# gluster peer probe storage3
storage1# gluster peer probe storage4		--这里使用ip,主机名,主机名别名都可以

然后在所有存储上都可以使用下面命令来验证检查
# gluster peer status	

==注意==:

如果这一步建立连接有问题(一般问题会出现在网络连接,防火墙,selinux,主机名绑定等);

如果想重做这一步,可以使用gluster peer detach xxxxx [force] 来断开连接,重新做

第3步, 所有storage服务器准备存储目录(可以用单独的分区,也可以使用根分区)

因为我让大家准备的storage服务器没有准备额外的硬盘,所以这里用根分区来做实验
但生产环境肯定是不建议数据盘和系统盘在一起的
# mkdir -p /data/gv0   

第4步, 创建存储卷(在任意一个storage服务器上做)

==注意==: ==改变的操作(create,delete,start,stop)等只需要在任意一个storage服务器上操作,查看的操作(info)等可以在所有storage服务器上操作==

下面命令我是在storage1上操作的
因为在根分区创建所以需要force参数强制
replica 4表示是在4台上做复制模式(类似raid1)

storage1# gluster volume create gv0 replica 4 storage1:/data/gv0/ storage2:/data/gv0/ storage3:/data/gv0/ storage4:/data/gv0/ force
volume create: gv0: success: please start the volume to access data

所有storage服务器上都可以查看
# gluster volume info gv0
 
Volume Name: gv0
Type: Replicate				模式为replicate模式
Volume ID: 328d3d55-4506-4c45-a38f-f8748bdf1da6
Status: Created				这里状态为created,表示刚创建,还未启动,需要启动才能使用
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: storage1:/data/gv0
Brick2: storage2:/data/gv0
Brick3: storage3:/data/gv0
Brick4: storage4:/data/gv0
Options Reconfigured:
transport.address-family: inet
nfs.disable: on

第5步, 启动存储卷

storage1# gluster volume start gv0

# gluster volume info gv0

Volume Name: gv0
Type: Replicate
Volume ID: 328d3d55-4506-4c45-a38f-f8748bdf1da6
Status: Started			现在看到状态变为started,那么就表示可以被客户端挂载使用了
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: storage1:/data/gv0
Brick2: storage2:/data/gv0
Brick3: storage3:/data/gv0
Brick4: storage4:/data/gv0
Options Reconfigured:
transport.address-family: inet
nfs.disable: on

第6步, client安装软件

客户端上操作
client# yum install glusterfs glusterfs-fuse -y

说明:

fuse(Filesystem in Userspace): 用户空间文件系统,是一个客户端挂载远程文件存储的模块

第7步, client挂载使用

**==注意==:**客户端也需要在/etc/hosts文件里绑定存储节点的主机名,才可以挂载(因为我前面做的步骤是用名字的)

client# mkdir /test0
client# mount -t glusterfs storage1:gv0 /test0

这里client是挂载storage1,也可以挂载storage2,storage3,storage4任意一个。(也就是说这4个storage既是老板,又是员工。这是glusterfs的一个特点,其它的分布式存储软件基本上都会有专门的管理server)

对卷的各个操作

  1. 创建卷:根据模式指定参数(如replica 4stripe 4等)
  2. 查看卷信息gluster volume info [卷名]
  3. 删除卷:先卸载,再停止(gluster volume stop),最后删除(gluster volume delete
  4. 在线操作
    • 扩容:gluster volume add-brick(仅支持分布式及组合模式)

    • 裁减:gluster volume remove-brick(需移除无数据的节点)

GlusterFS 常见卷模式

卷模式

描述

特点

Replicated

复制卷,类似 Raid1

数据多副本,高可用,写性能较低

Striped(即将废弃)

条带卷,类似 Raid0

大文件平均分配,性能好,无高可用

Distributed

分布卷

数据随机存储,利用率 100%,无高可用

Distributed Replicated

分布与复制组合

兼具扩容性和高可用,分组复制

Dispersed

纠删卷,类似 Raid5/6

含校验数据,空间利用率高,支持冗余配置

Raid 级别回顾

Raid 级别

特点

磁盘利用率

可靠性

Raid0

条带化,读写性能佳

100%

低,单盘故障数据丢失

Raid1

镜像备份,读性能较好

50%

Raid10

先做 Raid1 再做 Raid0

50%

高,性能好

Raid5

多盘,含校验数据

(n-1)/n

允许单盘故障

Raid6

在 Raid5 基础上增加一块校验盘

(n-2)/n

允许双盘故障

各卷模式测试结果

  • Replicated:类似 Raid1,数据多副本,支持同读同写
  • Striped:大文件平均分配,无高可用,单节点故障卷不可用
  • Distributed:数据随机存储,单节点故障后数据丢失
  • Distributed Replicated:分组复制,兼具扩容性和高可用性
  • Dispersed:含校验数据,空间利用率高(如 4 节点配置 1 个冗余,实际存储 3 份数据 + 1 份校验)