glusterfs系列-环境搭建

Glusterfs是一款分布式文件系统,相对配置简单,高性能,无单点故障,适合作为基础服务打包到产品或系统中,提供文件系统服务。
本文将进行Glusterfs的环境搭建(•̀⌄•́)
                              —— By Jihan


Glusterfs官方文档
Glusterfs-github

本文的搭建环境:虚拟机,Ubuntu18,使用apt安装,需要root权限
准备3个节点,分别命名为server1,server2和server3.
每个节点需要额外挂载一个硬盘。

安装

Glusterfs安装(apt)

  1. 运行以下命令在 server1上安装 software-properties-common。
    apt-get install software-properties-common

  2. 添加社区 GlusterFS PPA。
    add-apt-repository ppa:gluster/glusterfs-7

  3. 请确保使用的是最新安装包。
    apt-get update

  4. 安装 GlusterFS 服务器。
    apt-get install glusterfs-server -y

  5. 在机器上验证安装包版本。

    1
    2
    glusterfs -V
    ps -ef | grep glusterd

Glusterfs安装(docker)

  1. docker安装

  2. 获取镜像:
    docker pull ghcr.io/gluster/gluster-containers:centos
    如果需要导入到其他设备安装:

    1. 制作完成后,进行打包:
      # docker save aba01f181a4a > /xxxx/glusterfs.image.tar
    2. 上传到新设备进行导入:
      # docker load < glusterfs.image.tar
    3. 新导入的镜像,名称和tag都是空,打上标签:
      # docker tag 07c351837a3590f20 gluster/gluster-containers:centos
    4. 查看新设备的本地镜像
      # docker images
  3. 启动glusterfs:

    1
    2
    3
    4
    5
    6
    7
    8
    $ sudo docker run --name gluster \
    -v /etc/glusterfs:/etc/glusterfs:z \
    -v /var/lib/glusterd:/var/lib/glusterd:z \
    -v /var/log/glusterfs:/var/log/glusterfs:z \
    -v /sys/fs/cgroup:/sys/fs/cgroup:rw \
    -d --privileged=true --net=host \
    -v /data/glusterfs:/data/glusterfs \
    gluster/gluster-containers:centos

    /data是额外的磁盘挂载点,/data/glusterfs是创建块路径的父目录

  4. 进入镜像,查看状态:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # docker exec -it gluster bash
    [root@jihan /]# gluster --version
    glusterfs 10.3
    Repository revision: git://git.gluster.org/glusterfs.git
    Copyright (c) 2006-2016 Red Hat, Inc. <https://www.gluster.org/>
    GlusterFS comes with ABSOLUTELY NO WARRANTY.
    It is licensed to you under your choice of the GNU Lesser
    General Public License, version 3 or any later version (LGPLv3
    or later), or the GNU General Public License, version 2 (GPLv2),
    in all cases as published by the Free Software Foundation.
    [root@jihan /]# gluster peer status
    Number of Peers: 0

搭建Glusterfs集群

节点的硬盘挂载到/data目录下。
首先只创建两个节点的集群,这里先将server1和server2关联成一个集群:

  1. 在 server1上运行以下命令添加server2节点并创建集群。
    gluster peer probe server2

  2. 验证集群中的所有节点均已成功连接。
    gluster peer status

  3. 确认server1和server2挂载的硬盘,并创建对应的块路径: /data/glusterfs/rep

  4. 创建复制卷(2备份),卷的讲解

    1
    2
    gluster volume create rep-vol replica 2 \
    server1:/data/glusterfs/rep server2:/data/glusterfs/rep

    如果是三备份,则需要三个磁盘块。如果是2备份,但是提供了4个磁盘块,则会自动创建为分布式复制卷。

  5. 启动分布式卷 rep-vol
    gluster volume start rep-vol

  6. 查看状态:
    gluster volume status

创建挂载点

当我们完成上述glusterfs安装和集群创建后,基本完成了分布式文件系统搭建过程。而使用分布式文件系统,则需要把创建的卷挂载到需要使用的地方。挂载方式推荐使用系统的mount命令。
不论是apt安装还是docker安装,都必须在主机上进行mount,docker中mount,并不会通过文件映射映射到本地上。但本机mount后,通过目录映射可以映射到docker中。
挂载命令(设置rep-vol的挂载点到/gfs,并通过server1节点访问):

1
mount -t glusterfs server1:/rep-vol /gfs


配置完成后,就可以通过/gfs访问glusterfs的分布式文件系统了。

glusterfs的各种卷

glusterfs中有多种卷类型,可根据实际情况选择卷类型进行使用

分布式卷

将文件通过hash算法分布在多个磁盘块上,文件没有冗余,但能充分利用磁盘空间

复制卷卷

根据设置的备份数量,将文件划分成多个备份,存储到不同的节点上,读写时进行副本同步

分布式复制卷

是分布式卷和复制卷的融合,比如有4个节点,但是只设置了2备份,则总共有2份数据分布在4个节点上。

条带卷

数据分布类似分布式卷,但数据以条带方式一段段分布存储,以提高读写性能。

同样还有分布式条带卷,就是在条带卷上增加分布式存储。同分布式复制卷一个原理

总结

至此,glusterfs的安装搭建就完成了,总体来说搭建过程还是比较简单的。

参考

https://github.com/gluster/gluster-containers
https://docker-practice.github.io/zh-cn/install/ubuntu.html

系列文章

glusterfs系列-初探
glusterfs系列-环境搭建
glusterfs系列-功能测试
glusterfs系列-性能测试方法

-------------本文结束感谢您的阅读-------------