Glusterfs入门

968 字
5 分钟
Glusterfs入门

1 介绍#

1.1 GlusterFS 数据访问流程#

1.客户端通过 glusterfs 的 mount point 来读写数据。

2.用户的这个操作被递交给本地 linux 系统的 VFS 来处理。

3.VFS 将数据递交给 FUSE 内核文件系统,在启动 glusterfs 客户端以前,需要向系统注册一个实际的文件系统 FUSE,如图所示,该文件系统与 XFS 在同一个层次上面,XFS 是对实际的磁片进行处理,而 fuse 文件系统则是将数据通过/dev/fuse 这个设备文件递交给了 glusterfs client 端。所以,我们可以将 fuse 文件系统理解为一个代理。

4.数据被 fuse 递交给 Glusterfs client 后,client 对数据进行根据配置文件进行的一系列处理

5.在 glusterfsclient 的处理末端,通过网路将数据递交给 Glusterfs Server,并且将数据写入到服务器所控制的存储设备上

整体流程
整体流程

2 安装#

2.1 配置 yum 源并安装#

Terminal window
cat /etc/yum.repos.d/glusterfs.repo
[glusterfs]
name=glusterfs
baseurl=https://buildlogs.centos.org/centos/7/storage/x86_64/gluster-9/
enabled=1
gpgcheck=0
yum install -y glusterfs glusterfs-server glusterfs-fuse

2.2 启动#

Terminal window
systemctl enable glusterd
systemctl start glusterd

2.3 查看状态#

Terminal window
systemctl status glusterd

3 配置集群#

Terminal window
gluster peer probe 10.1.1.1
gluster peer probe 10.1.1.2
gluster peer probe 10.1.1.3

3.1 查看状态#

Terminal window
gluster peer status

4 创建存储池#

4.1 卷类型#

名称应用场景优点缺点
分布式卷对可靠性高和读写性能要求高的场景读写性能好写性能差
复制卷对可靠性高和读写性能要求高的场景读写性能好写性能差
条带卷大文件适用于大文件存储可靠性低
分布式复制卷大量文件读和可靠性要求高的场景高可靠,读性能高牺牲存储空间,写性能差
分布式条带卷读/写性能高的大量大文件场景高并发支持没有冗余,可靠性差
条带式复制卷超大文件,并且对可靠性要求高大文件存储,可靠性高牺牲空间写性能差
分布式条带复制卷大量大文件并且对可靠性要求高的场景读/写/可靠性比较均匀牺牲存储空间,写性能相对差

4.2 卷存储机制说明#

名称说明
分布式卷分布式卷也成为哈希卷,多个文件以文件为单位在多个 brick 上,使用哈希算法随机存储。
复制卷多个文件在多个 brick 上复制多份,brick 的数目要与需要复制的份数相等,建议 brick 分布在不同的服务器上。
条带卷将文件分成条带,存放在多个 brick 上,默认条带大小 128k
分布式复制卷多个文件在多个节点哈希存储,每个文件再多分条带在多个 brick 上存储
分布式条带卷多个文件在多个节点上哈希存储,在多个 brick 复制多份存储。
条带式复制卷一个大文件存储的时候划分条带,并且保存多份
分布式条带复制卷多个大文件在多个节点哈希存储,存储是分成条带,并且保存多份

因为这里只是简单部署,主要测试 csi,只是用了分布式卷,具体参考:架构 - Gluster Docs

4.3 创建虚拟化磁盘#

别批量复制执行,这里要一步一步操作

Terminal window
dd if=/dev/zero of=gfs_data.img bs=1M count=1024
du -h gfs_data.img
mkfs.ext4 gfs_data.img
mkdir /data/gfs_data
mount -o loop -t ext4 gfs_data.img /data/gfs_data/
df -h

4.4 创建分布式卷#

Terminal window
gluster volume create gv0 replica 3 10.1.1.1:/data/gfs_data 10.1.1.2:/data/gfs_data 10.1.1.3:/data/gfs_data
gluster volume start gv0

4.4.1 查看#

Terminal window
gluster volume info
Volume Name: gv0
Type: Replicate
Volume ID: 544e31b9-2c0f-4454-a35a-xxxxxxxxx
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: 10.1.1.1:/data/gfs_data
Brick2: 10.1.1.2:/data/gfs_data
Brick3: 10.1.1.3:/data/gfs_data
Options Reconfigured:
performance.client-io-threads: off
nfs.disable: on
transport.address-family: inet
storage.fips-mode-rchecksum: on
cluster.granular-entry-heal: on

4.5 挂载测试#

Terminal window
mount -t glusterfs 10.1.1.1:/gv0 /opt/1/

5 删除卷#

5.1 停止#

Terminal window
gluster volume stop gv0

5.2 删除#

Terminal window
gluster volume delete gv0

5.3 删除目录残留#

Terminal window
rm -f /data/gfs_data

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Glusterfs入门
https://ccops.cc/posts/bd6e1347/
作者
蹦蹦站长
发布于
2022-03-29
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
蹦蹦站长
一个养兔子的运维
公告
感谢你的来访!希望在这里能找到对你有用的内容!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
81
分类
6
标签
45
总字数
88,456
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.12.1
文章许可
CC BY-NC-SA 4.0

文章目录