阿里云存储网关(CSG)软件版与ossfs对比(元数据篇)

简介: 本文从元数据的使用及管理角度,详细对比阿里云存储网关(CSG)软件版与ossfs之间的区别。

前言

目前阿里云团队开发了一款开源的工具:ossfs,可以将Oss Bucket挂载在本地机器上,以POSIX文件接口对存在Oss Bucket中的文件进行访问。不过,该工具从2019年起,已经不再维护了。

阿里云云存储网关(Cloud Storage Gateway, CSG)软件版(以下简称CSG软件版)。同样是一款可以安装在阿里云用户机器(ECS,或用户自建机房服务器)上的产品,将OSS Bucket挂载到用户机器,以POSIX文件接口进行访问。在实现上,CSG软件版衍生自已经商业化的CSG托管版,与ossfs有较大的不同,并且在使用上引入了监控等多项功能。

阿里云存储网关(CSG)软件版与ossfs对比(数据缓存篇)》一文中,已经详细对比了CSG软件版和ossfs中文件数据存储的区别。

本文将从元数据的使用和管理的角度,比较CSG软件版和ossfs的区别。


元数据存储管理

ossfs

  • 使用内存缓存文件的元数据信息。
  • 文件的元数据信息缓存数量有上限,默认能缓存1000个文件的元数据信息。当元数据缓存到达上限时,会遍历缓存中的元数据,淘汰最早的一个文件的元数据信息。


CSG软件版

  • CSG软件版以KV数据库缓存文件的元数据信息,包括文件系统目录结构、文件的状态等信息。
  • 所有的文件的元数据全量缓存到本地的缓存盘,支持上亿级别的文件。
  • 通过CSG软件版创建、修改的文件的元数据能直接保存在本地;通过其他方式上传、修改得Oss Bucket中的文件的元数据信息,需要通过访问该目录,将文件的元数据信息同步到本地缓存。


数据一致性保证

ossfs

  • 每次open一个文件时,都会将内存中文件的元数据缓存清除,重新访问oss bucket,获取文件的元数据信息。
  • 支持配置ExpireTime,配置之后,如果元数据缓存的时间至今已经超过了ExpireTime,也会将内存中文件的元数据缓存清除,重新访问oss bucket,获取文件的元数据信息。如果不配置,则在内存中淘汰元数据信息之前,都认为本地和云上的元数据信息是一致的。
  • 一旦挂载完成,不支持更改同步策略,即不支持修改ExpireTime。


CSG软件版

  • 文件元数据信息从本地缓存获取;
  • 支持开启“反向同步”选项,并配置“反向同步时间间隔”参数。开启之后,访问某个目录,会将oss bucket中该目录下的文件的元数据信息同步到本地缓存中。但是在反向同步时间间隔之内,访问一个目录只会触发一次反向同步。
  • 支持在挂载期间修改配置,即支持开启、关闭“反向同步”,或是设置“反向同步时间间隔”。用户可以根据使用场景的需求,实时更改配置,而不需要重新挂载,即中断IO。


对比测试

目前,CSG软件版支持Linux和Windows两个平台,而ossfs只支持Windows平台,因此下面的测试中,仅对比CSG软件版的linux版本和ossfs。


大量文件情形

测试环境:阿里云ECS,ecs.g5.8xlarge。

测试

CSG软件版

ossfs

创建一个文件夹testdir1,创建1*100*1000(目录结构)个大小为4k的文件。

305s(不含上云时间)

337s(包含上云时间

2h2min43s

rename testdir1

1.151s(不含上云时间)

284s(包含上云时间)

3h18min23s

创建文件夹testdir2,下面有10w个文件,每个文件大小4k

384s(不含上云时间)

402s(包含上云时间)

2h18min6s

将testdir2下面的10w个文件进行chmod操作

207s(不含上云时间)

240s(包含上云时间)

2h16min58s


少量文件情形

测试环境:阿里云ECS,ecs.g5.8xlarge。

测试

CSG软件版

ossfs

创建文件夹testdir3,下面有1000个文件,每个文件大小4k

3.13s(不含上云时间)

20.07s(包含上云时间)

81s

rename testdir3

0.196s(不含上云时间)

15.36s(包含上云时间)

58.115s


mdtest元数据测试结果

机器规格:阿里云ecs.g6.large,高效云盘,


元数据操作

CSG软件版

ossfs

dir stat

4928

544

dir create

2597

315

dir remove

3127

322

file stat

4593

458

file create

2347

191

file read

2018

122

file remove

2284

140

tree create

9

2

tree remove

13

0


结果分析

可以看出来,CSG软件版元数据性能优于ossfs。并且,在文件数量较多的情形下,CSG元数据性能的优势比较明显原因主要有三点:

(1)CSG软件版本地会缓存文件元数据信息,而不需要向OSS Bucket发送请求;

(2)ossfs内存中默认只存1000份元数据。超过1000份时,需要遍历元数据缓存,找到最老的删掉。而CSG软件版会缓存所有文件的元数据信息,无遍历淘汰的过程。

(3)ossfs的文件操作需要等到上云之后才返回,而CSG软件版则将本地文件元数据、数据缓存更新后即返回,文件操作异步上云。



目录
相关文章
|
16天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 11 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
1月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 10 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
2月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 09 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
3月前
|
Cloud Native 关系型数据库 Serverless
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
685 28
|
2月前
|
数据采集 传感器 监控
.NET 工控网关 轻量级组态软件
【10月更文挑战第10天】.NET 工控网关是一种基于 .NET 平台开发的设备,用于连接工业控制系统中的不同网络和设备,实现数据传输和协议转换。它能统一处理多种协议(如 Modbus、Profibus)的数据,便于后续系统处理。.NET 平台的优势包括开发效率高、跨平台能力强及安全性高,适用于工业物联网环境。此外,轻量级组态软件具备体积小、资源占用少的特点,可在资源受限的设备上运行,提供数据采集、监控、报警及数据分析等功能,简化工业自动化过程。
|
3月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 08 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
2月前
|
安全 5G 网络性能优化
|
3月前
|
监控 负载均衡 安全
微服务(五)-服务网关zuul(一)
微服务(五)-服务网关zuul(一)
|
6天前
|
NoSQL 前端开发 测试技术
👀探秘微服务:从零开启网关 SSO 服务搭建之旅
单点登录(Single Sign-On,简称SSO)是一种认证机制,它允许用户只需一次登录就可以访问多个应用程序或系统。本文结合网关和SaToken快速搭建可用的Session管理服务。
40 8
|
4月前
|
运维 Kubernetes 安全
利用服务网格实现全链路mTLS(一):在入口网关上提供mTLS服务
阿里云服务网格(Service Mesh,简称ASM)提供了一个全托管式的服务网格平台,兼容Istio开源服务网格,用于简化服务治理,包括流量管理和拆分、安全认证及网格可观测性,有效减轻开发运维负担。ASM支持通过mTLS提供服务,要求客户端提供证书以增强安全性。本文介绍如何在ASM入口网关上配置mTLS服务并通过授权策略实现特定用户的访问限制。首先需部署ASM实例和ACK集群,并开启sidecar自动注入。接着,在集群中部署入口网关和httpbin应用,并生成mTLS通信所需的根证书、服务器证书及客户端证书。最后,配置网关上的mTLS监听并设置授权策略,以限制特定客户端对特定路径的访问。
152 2

热门文章

最新文章