阿里云存储网关(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软件版则将本地文件元数据、数据缓存更新后即返回,文件操作异步上云。



目录
相关文章
|
12月前
|
存储 缓存 Linux
阿里云云存储网关(CSG)软件版顺序写模式使用教程
阿里云云存储网关(CSG)软件版是一款安装在阿里云用户机器上的云存储网关产品。本文介绍了如何使用CSG软件版的特殊工作模式——顺序写模式,以及相关注意事项。
|
12月前
|
消息中间件 缓存 运维
阿里云存储网关CSG对比ossfs
阿里云存储网关和ossfs都可以让用户像访问文件系统一样操作OSS Bucket中的对象。本文将从各方面详细对比二者的区别。
319 0
|
存储 缓存 弹性计算
阿里云存储网关(CSG)软件版与ossfs对比(数据缓存篇)
本文从文件数据的管理、使用角度,详细对比阿里云存储网关(CSG)软件版与ossfs之间的区别。
438 0
|
存储 缓存 弹性计算
阿里云云存储网关(CSG)软件版使用详细教程(Linux版)
本文将详细介绍如何在Linux操作系统中安装并使用阿里云云存储网关(CSG)软件版。
阿里云云存储网关(CSG)软件版使用详细教程(Linux版)
|
存储 缓存 对象存储
利用云存储网关在Windows上挂载OSS
概述 阿里云OSS提供了海量低成本高可靠的对象存储,非常适合于存储文件,图像,视频等非结构化数据,同时也提供了丰富的SDK生态给开发者集成使用。但是对于开发资源有限的小企业或者个人用户而言,直接使用OSS存储还是存在诸多不便。
9181 0
|
11月前
|
存储 Linux API
如何经济高效使用云存储网关对接OSS存储
存储网关是一款可以为OSS存储提供文件访问接口的产品,从而用户可以像使用NAS一样在Windows/Linux操作系统里面直接挂载OSS进行使用。众所周知,OSS存储具有多种存储类型。那么对于所有的存储类型,云存储网关是否都适用呢?本文将围绕这一话题,展开一些探讨。
201 0
|
存储 Kubernetes 文件存储
使用阿里云容器ACK通过云存储网关(CSG)挂载OSS
本文将详细介绍如何使用阿里云容器服务ACK通过云存储网关挂载OSS。
1323 1
使用阿里云容器ACK通过云存储网关(CSG)挂载OSS
|
消息中间件 存储 Linux
如何同步OSS Bucket数据到云存储网关SMB/NFS共享
云存储网关主要提供了反向同步和极速同步两种方法来同步OSS Bucket里面的数据到网关侧的共享里。本文将对这两种数据同步的方法均做下介绍,给出它们的实现原理以及分别适用的场景。反向同步是基于对文件夹进行全量扫描比对的方式来发现OSS Bucket里面的数据变化,极速同步则是基于OSS Bucket数据变化增量的方式来实现的。
3444 0
如何同步OSS Bucket数据到云存储网关SMB/NFS共享
|
存储 缓存 API
云存储网关共享透明读写OSS归档文件
本文通过具体的例子展示了云存储网关NFS共享所支持的对OSS Bucket里面归档文件的透明读写功能。对于SMB共享虽然不能完全支持透明读写功能,但是也能够帮助用户自动执行解冻过程。
3219 0
云存储网关共享透明读写OSS归档文件
|
存储 Linux 对象存储
如何利用用云存储网关作为Windows docker存储访问OSS
本文像用户介绍在windows的容器环境中,如果利用阿里云云存储网关的smb共享作为后端存储,实现docker容器内的数据上云,在docker中直接访问对象存储OSS中的数据。
2694 0
如何利用用云存储网关作为Windows docker存储访问OSS