Glusterfs是一款分布式文件系统,相对配置简单,高性能,无单点故障,适合作为基础服务打包到产品或系统中,提供文件系统服务。
本文将进行Glusterfs的环境搭建(•̀⌄•́)
—— By Jihan
Glusterfs官方文档
Glusterfs-github
序
本文的搭建环境:虚拟机,Ubuntu18,使用apt安装,需要root权限
准备3个节点,分别命名为server1,server2和server3.
每个节点需要额外挂载一个硬盘。
安装
Glusterfs安装(apt)
-
运行以下命令在 server1上安装 software-properties-common。
apt-get install software-properties-common
-
添加社区 GlusterFS PPA。
add-apt-repository ppa:gluster/glusterfs-7
-
请确保使用的是最新安装包。
apt-get update
-
安装 GlusterFS 服务器。
apt-get install glusterfs-server -y
-
在机器上验证安装包版本。
1
2glusterfs -V
ps -ef | grep glusterd
Glusterfs安装(docker)
-
获取镜像:
docker pull ghcr.io/gluster/gluster-containers:centos
如果需要导入到其他设备安装:- 制作完成后,进行打包:
# docker save aba01f181a4a > /xxxx/glusterfs.image.tar
- 上传到新设备进行导入:
# docker load < glusterfs.image.tar
- 新导入的镜像,名称和tag都是空,打上标签:
# docker tag 07c351837a3590f20 gluster/gluster-containers:centos
- 查看新设备的本地镜像
# docker images
- 制作完成后,进行打包:
-
启动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是创建块路径的父目录
-
进入镜像,查看状态:
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关联成一个集群:
-
在 server1上运行以下命令添加server2节点并创建集群。
gluster peer probe server2
-
验证集群中的所有节点均已成功连接。
gluster peer status
-
确认server1和server2挂载的硬盘,并创建对应的块路径: /data/glusterfs/rep
-
创建复制卷(2备份),卷的讲解
1
2gluster volume create rep-vol replica 2 \
server1:/data/glusterfs/rep server2:/data/glusterfs/rep如果是三备份,则需要三个磁盘块。如果是2备份,但是提供了4个磁盘块,则会自动创建为分布式复制卷。
-
启动分布式卷 rep-vol
gluster volume start rep-vol
-
查看状态:
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系列-性能测试方法