阿里云存储网关CSG对比ossfs

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 阿里云存储网关和ossfs都可以让用户像访问文件系统一样操作OSS Bucket中的对象。本文将从各方面详细对比二者的区别。

前言

阿里云云存储网关(Cloud Storage Gateway,CSG)是一款可在用户IDC和阿里云上部署的网关产品。它以阿里云对象存储(OSS)为后端存储,为云上和云下应用提供业界标准的文件服务(NFS和SMB)和块存储服务(iSCSI)。

CSG文件网关将OSS Bucket的对象结构与NAS文件系统的目录/文件建立映射关系,用户通过标准的NFS和SMB协议即可读写指定OSS Bucket里的对象。文件网关利用本地存储空间作为热数据缓存,使用户在享受OSS Bucket海量空间的同时,保障数据访问的高性能。

ossfs同样可以部署在用户IDC和阿里云实例上,通过创建一个FUSE文件系统,并挂载本地目录,使得用户可以通过POSIX协议,像访问本地目录一样访问OSS Bucket中的对象。


本文将详细对比两款产品的差异,方便用户选择适合自己的产品进行使用。


使用与原理对比


CSG文件网关与ossfs的原理对比大致如下图所示。



CSG文件网关

  • 对于线上环境,用户可以在阿里云创建一个托管的文件网关的实例;
  • 对于线下环境,用户可以在自身的IDC机房中部署文件网关实例。


用户需要在文件网关的控制台上,创建NFS/SMB共享,配置bucket信息,随后才能在客户端上,通过NFS/SMB协议访问共享目录,从而可以操作OSS Bucket中的对象。


ossfs

ossfs则是实现了一个FUSE文件系统,实现文件系统语义向对象存储语义的转换,但该软件直接运行在客户机器上。

用户在自己的客户端上下载并安装ossfs软件包之后,通过运行命令行,创建一个本地挂载点,从而可以像是操作本地文件目录一样操作OSS Bucket中的对象。


元数据缓存对比

元数据缓存管理

  • CSG文件网关:以KV数据库缓存目录结构等元数据信息。元数据全量缓存到缓存盘,支持上亿级别的文件。元数据操作基于缓存盘,通常性能较好。
  • ossfs:元数据使用内存缓存,并有默认的缓存上限。当内存缓存达到上限时,会淘汰最早的一个文件。其他情形,如访问文件夹时,如果缓存的元数据和云上不一致,也会更新元数据信息。ossfs元数据缓存容量较小,且需要频繁地向OSS Bucket请求最新的元数据,因此当有大量文件操作时,通常元数据性能较差。


文件目录视图一致性保证

  • CSG:所有的客户端通过nfs/smb协议挂载同一个文件网关共享,因此可以共享同一份元数据视图,一般情况下,由于元数据均缓存在本地磁盘中,因此访问速度较快。
  • CSG:当客户通过其他方式,如ossutil,往OSS Bucket中上传文件时,文件网关会定期扫描OSS Bucket,更新元数据信息。当文件夹较大时,扫描过程耗时较久,用户访问目录会有“卡顿”的体验。
  • CSG:文件网关支持“极速同步”功能。OSS Bucket中文件的变化会生成消息投递至mns消息队列,文件网关通过消费消息队列,从而能及时更新元数据信息。此时,多客户端视图能与最新的OSS Bucket保持一致,且不会扫描带来的“卡顿”。
  • ossfs:每个客户端独立维护元数据缓存,且需要频繁扫描OSS Bucket,更新元数据。因此,多个客户端之间的视图能够与最新的OSS Bucket保持一致,但是访问目录耗时更久,在访问大目录时,会有明显的“卡顿”。


以标准的元数据测试mdtest,Directory creation操作的结果为例。CSG文件网关(基础型)结果为1713(IOPS)。相比之下,ossfs(运行的客户端规格为ecs.g6.xlarge)的结果为400。可见,CSG的元数据性能明显好于ossfs。


数据缓存对比

CSG文件网关

  • 文件为异步上传。客户端通过NFS协议发送写请求至文件网关。缓存写到本地磁盘即返回(同步落盘),随后有后台线程,异步将文件上传至OSS Bucket。
  • 所有的客户端请求均会发送至同一个文件网关实例,因此当大量客户端并发IO时,CSG实例容易达到瓶颈。


ossfs

  • 上传文件时,ossfs会在客户端的系统盘创建一个tmpfile作为缓存,等文件写入磁盘(异步落盘)并成功上传至OSS Bucket之后,才会返回。当文件close时,缓存文件tmpfile会被系统自动回收。
  • 由于ossfs运行在独立的客户端上,因此IO性能只受到客户端自身的规格(网络带宽、磁盘带宽)的影响。


对比

  • 当客户端数量不多时,由于CSG的文件是异步上传,因此性能更优。
  • 当有大量客户端同时读写时,CSG实例的性能容易成为瓶颈。
  • CSG的文件数据会被缓存在本地磁盘,而ossfs的文件数据在文件close时就会被回收。因此,在重复读热点数据时,CSG的性能更优。


由于CSG文件网关与ossfs软件的形态并不相同,因此二者的读写性能受到不同的因素影响。

  • CSG文件网关:受到客户端的网络、CSG规格的影响。
  • ossfs:受到客户端的网络、磁盘性能的影响。


下面提供一种测试场景供参考:

创建一台阿里云公共云CSG文件网关(基础型),在一块PL1缓存盘上创建NFS共享。创建两台ECS实例,也均配置PL1磁盘,其中一台通过NFS协议挂载网关共享,另一台创建ossfs挂载点。进行一些4K小IO多线程读写测试。可以看到,

  • 数据写入的场景下,CSG由于是异步上传,数据落盘之后即返回。而Ossfs是同步上传,数据上传到OSS Bucket之后才能返回,因此CSG有一定优势。
  • 读写文件数目较多时,元数据的性能也在其中扮演了很重要的作用,因而此时CSG表现更优。
  • CSG支持缓存数据到本地磁盘。数据重复读取的场景下,无需重复从云上下载,直接从本地缓存读取即可,优势巨大。


CSG

ossfs

多线程,写小文件

0.99MB/s

0.05MB/s

64线程。每个线程cp 160个本地4K小文件至挂载点。

多线程,读小文件(本地无缓存)

3.28MB/s

0.29MB/s

64线程。每个线程从挂载点cp 160个4K小文件至本地。

多线程,读小文件(本地有缓存)

7.61MB/s

0.30MB/s

重复上面的步骤。在本地已有缓存时,进行多线程读


监控运维与其他特性对比


CSG

ossfs

其他特性

图形化部署

支持

仅支持命令行安装配置

Windows访问

支持,通过挂载SMB共享

不支持

对接归档存储

支持对接归档存储,但体验有所影响

不支持

忽略删除

支持

不支持

稳定性

磁盘缓存管理

支持,CSG实例智能管理缓存盘,支持限流与缓存空间回收

不支持,默认情况下,写大量的大文件可能会占满系统盘

错误/故障重传

支持

不支持

中断操作的体验

中断一些操作几乎无延迟

访问大文件夹,上传/删除大量文件时,延迟较高

监控与运维

云监控

支持将网关实例状态上报云监控。可灵活配置告警策略

不支持,需要客户手动配置客户端的监控脚本

后台监控

CSG后台配置了监控告警

不支持

后台运维

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 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
4月前
|
人工智能 缓存 Cloud Native
用 Higress AI 网关降低 AI 调用成本 - 阿里云天池云原生编程挑战赛参赛攻略
《Higress AI 网关挑战赛》正在火热进行中,Higress 社区邀请了目前位于排行榜 top5 的选手杨贝宁同学分享他的心得。本文是他整理的参赛攻略。
550 73
|
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
|
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 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
4月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2024 年 07 月产品动态
阿里云微服务引擎 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

热门文章

最新文章