腾讯云存储团队正式公布数据加速器 GooseFS 1.4 版本(含 GooseFS 1.4.0 和 GooseFS 1.4.1 版本),该版本针对 AI、大数据场景提供了文件解压缩等便捷易用的工具,同时针对海量文件读写下的集群性能和稳定性问题进行了针对性优化,晋升了产品竞争力。
重点更新点一:提供文件解压缩能力
AI 场景下,业务团队可能会将大量用于训练或者学习的文件打包成一个压缩包并上传到对象存储中;在执行训练或者学习工作时,再将压缩包文件下载到本地并解压。这一流程会对底层对象存储服务产生较大的读带宽,每次启动工作时,无论须要读取多少文件,都须要将文件所处的压缩包整包下载才能够执行。
GooseFS 在本次更新中联结 COS 服务提供了服务端的解压缩能力,反对通过解压缩工具向 COS 服务端发动解压缩申请,晋升文件拜访性能。GooseFS 反对文件解压缩能力的根本框架如下:
整体流程上:
1. 首先通过 GooseFS 解压缩指令 goosefs fs decompress
向 COS 服务发动指定文件的解压缩申请。
2. COS 服务收到解压缩申请后,会向解压缩服务模块提交解压缩工作,由文件加压缩模块治理工作进度。
3. 解压缩过程中,用户能够通过 goosefs fs queryDecompress
指令查问解压缩工作的状态。4. 解压缩工作实现后,实现解压后的文件会输入至用户指定的文件目录中。
5. 反对通过 goosefs fs listDecompressJobs <namespace>
指令查阅指定命名空间的解压缩工作停顿。
GooseFS 提供的解压缩能力目前依然在公测阶段,公测阶段有地区和可用区限度,但暂不进行免费,如需应用能够提交工单申请。
应用 GooseFS 文件解压缩能力的劣势如下:
1. 防止文件读放大问题,缩小底层对象存储服务的读带宽。用户在服务端侧实现解压缩后,只需按需读取须要用到的文件,无需读取整个压缩包。
- 缩小客户端侧的 CPU 压力。用户无需在客户端侧执行解压缩操作,能够让贵重的计算资源聚焦在 AI 计算工作上。
重点更新点二:反对长期密钥被动热更新
GooseFS 通过托管在集群中的密钥拜访远端的对象存储服务。腾讯云的永恒密钥具备永恒的有效期,长期密钥的有效期则能够由用户自行指定,最长不超过 2 小时。在 GooseFS 集群中托管永恒密钥存在肯定的平安危险,比方当永恒密钥泄露时,对象存储服务中的文件将继续存在泄露的危险。因而在本次更新中,GooseFS 团队提供了长期密钥托管的模式。
通过长期密钥托管服务,用户能够只在 Worker 节点上缓存从 Master 节点拉取的长期密钥信息,并通过长期密钥拜访远端对象存储服务,获取业务所需数据。GooseFS 反对长期秘钥托管服务的整体框架如下所示:
整体流程上:
1. 在 Worker 节点中,能够周期性地通过以下指令,变更节点上的长期密钥信息。goosefs ns update <namespace> [--secret <key=value>] [--attribute fs.cosn.userinfo.sessionToken=xxx]
2. 客户端读取文件时,如果文件未缓存在 Worker 节点上,Worker 节点能够通过长期密钥拜访远端对象存储服务拉取文件。
应用 GooseFS 长期密钥托管次要能够缩小密钥泄露带来的平安危险。GooseFS 集群中可能治理成千盈百台 Worker 节点,每一台 Worker 节点中都长久化永恒密钥大大增加了密钥泄露的概率,应用长期密钥能够极大缓解此类危险。
重点更新点三:GooseFS-FUSE 客户端反对降级读
GooseFS-FUSE 能够在一台 Unix 机器上的本地文件系统中挂载一个 GooseFS 分布式文件系统。通过应用该个性,一些规范的命令行工具(例如 ls、cat 以及 echo)能够间接拜访 GooseFS 分布式文件系统中的数据。GooseFS-FUSE 在拜访 GooseFS 时,须要先到 GooseFS 集群中获取缓存文件,如果文件不存在,GooseFS 会到远端对象存储服务上拉取文件。如果 GooseFS 集群的 Master 节点异样(比方 Standalone 模式的 Master 节点宕机,HA 模式的多节点主备切换),导致集群整体不可用时,GooseFS-FUSE 将无奈读取到文件,导致客户端也不可用。
GooseFS-FUSE 客户端在本期更新中新增了降级读能力,能够在 Master 节点异样时透传 FUSE 客户端的申请到远端对象存储服务上,这一能力有助于晋升客户端整体的可用性。
整体流程上:
1. 默认状况下,GooseFS-FUSE 默认会去 Master 节点获取文件元数据信息,并读取 GooseFS 集群中的文件;
2. 节点异样的状况下,GooseFS-FUSE 会启用降级读模式,间接去远端对象存储中读取文件。
其余更新点
除了上述更新之外,咱们在本次版本中优化了 GooseFS 的产品性能和稳定性,进一步晋升 GooseFS 在大数据、AI 场景下的集群稳定性。
次要更新点如下:
- GooseFS distributedLoad 能力反对层级遍历能力, 反对递归拉取指定目录下的元数据信息。(GooseFS 1.4.0)
- FUSE 随机读性能优化。(GooseFS 1.4.0)
- 减少 Master 查问 / 更新 RocksDB 的分位耗时监控,晋升元数据服务的监控灵敏度。(GooseFS 1.4.0)
- 优化了 GooseFS HA 模式下的集群复原工夫,晋升了集群可用性。(GooseFS 1.4.0)
- CosN 依赖版本升级,反对通过原生 HDFS 协定拜访开启元数据减速的存储桶,晋升大数据场景下的文件操作性能。(GooseFS 1.4.0)
- GooseFS 配置精简优化,缩小了不必要的配置项,晋升了配置易用性。(GooseFS 1.4.0)
- listInfo 精简优化。(GooseFS 1.4.0)
- 大文件程序读优化。(GooseFS 1.4.0)
9. 反对清理和查看未实现文件列表(GooseFS 1.4.1)
10. 优化递归加载元数据(loadmetadata -R)操作加锁粒度(GooseFS 1.4.1)
同时,GooseFS 1.4 版本还修复了若干问题,其中存在潜在稳定性危险的重要修复点如下:
- 修复 Worker 接管大量有效 async block 的申请。(GooseFS 1.4.0)
- 优化 Worker 上报时对孤立 block 的解决逻辑。(GooseFS 1.4.0)
- 修复 Flume 写入场景认证流和数据流状态对立问题。(GooseFS 1.4.1)
- 修复大文件写入耗尽客户端资源后死锁的问题。(GooseFS 1.4.1)