Gluster is a software defined distributed storage that can scale to several petabytes. It provides interfaces for object, block and file storage.
Version: 10.3
Repo: https://github.com/gluster/glusterfs
依赖库 | 来源 | 备注 |
---|---|---|
libuuid | Middleware 仓库 | |
liburcu | Middleware 仓库 | |
libucontext | Middleware 仓库 | |
libargp | Middleware 仓库 | |
libxml2 | Middleware 仓库 | |
openssl | Base 组件 | 如果开发环境版本低于 IDE 5.0.5,请将 openssl 替换为 Middleware 仓库中的版本 |
libcurl | Base 组件 | 优先检测 Base 路径下的库,否则会使用工作空间下的库 |
libsunrpc | Base 组件 | |
libreadline | Base 组件 |
常用架构 arm/aarch64/mips64/x86/x64/loongarch 均能使用。
部署动态库:使用 ALT + D 部署配置文件:使用 ALT + X
首次部署后请在设备中运行 shfile /etc/glusterfs/mklink_glusterfs.sh
关于 GlusterFS 的操作请参考官方文档,以下仅对基本的操作进行介绍。
类别 | 记录 |
---|---|
服务端 | 依赖接口 xattr / hard-link / telldir / seekdir, 请确认使用的内核版本是否支持以上特性 |
- | 请确保内核 fs_cfg.h 中 LW_CFG_FS_XATTR_EN 为开启状态 |
- | setrlimit 参数未生效,需要将内核的 system_cfg.h 中 LW_CFG_MAX_FILES 配置为 65535 |
- | gluster 会占用较多的 event 资源,默认情况下 5000 的数量只能满足启动一个卷的场景,如果需要开启多个卷,请调整 kernel_cfg.h 中的 LW_CFG_MAX_EVENTS |
- | gluster probe 建立过程中会用到 getnameinfo 接口,请提前配置 DNS 服务,否则会因超时导致该流程耗时较长 |
客户端 | 依赖于 FUSE, 请确认使用的内核版本是否支持以上特性 |
运行服务端:
glusterd -p /var/run/glusterd.pid
添加远端服务器:
gluster peer probe <remote-server ip>
查看远端服务器状态:
gluster peer status
or
gluster pool list
创建卷:
gluster vol create [volume-type] <volume-name> <ip1:volume1> <ip2:volume2>
启动卷:
gluster vol start <volume-name>
挂载命令:
glusterfs --process-name fuse --volfile-server=<server-ip> --volfile-id=<volume-name> /mnt/glusterfs
如果需要使用分布式卷(Distributed Volume),请在服务端设置开启 readdir-ahead 功能。(由于 SylixOS 的 readdir 使用方式不同,此处在 Fuse 中进行了特殊处理)
配置命令
gluster vol set <volume-name> performance.readdir-ahead on
-
DHT_LINKFILE_MODE 及 IS_DHT_LINKFILE_MODE 宏功能无法支持
- 目前在 SylixOS 中 chmod 强制保留文件所有者的可读权限,该行为导致文件权限无法被设置为
---------T
。此权限被用于判断文件是否为 GlusterFs 的链接文件。 - 此问题导致分布式卷中执行 rename 操作时有概率出现同名文件,当前解决方案为在服务端检查文件的 "trusted.glusterfs.dht.linkto" xattr 属性,如果存在则不进行上报。
- 目前在 SylixOS 中 chmod 强制保留文件所有者的可读权限,该行为导致文件权限无法被设置为
-
mknod 函数功能异常
- SylixOS 中
mknod
函数总是默认添加 DEFAULT_DIR_PERM(754) 权限,此问题将导致 GlusterFS 中 rename 操作无法正确创建出权限位为---------T
的链接文件。 - 目前由于服务端对带有 "trusted.glusterfs.dht.linkto" xattr 属性的文件信息不进行上报,此问题暂不用修复。
- SylixOS 中
-
SylixOS 与 Linux 结合使用
- 在任何情况下,Linux 使用的 GlusterFS 版本与 SylixOS 使用的 GlusterFS 版本(10.3) 应当一致。否则可能出现 rename 操作后出现重复文件等问题。