当前位置: 首页 > news >正文

X-ObjectMount: 对象存储访问接入的新选择

XEOS 自 2017 年发布面世以来,历经 7 年的研发迭代,上个月正式发布了 XSKY SDS 6.4 版本,包含了最新的多站点统一命名空间能力,也标志了 XEOS 在对象存储领域的全方面优势和领先市场地位。

在 XSKY 过去对象存储服务历程里,最常见的问题就是客户在做应用的存储规划时,面对文件存储和对象存储的选择问题

通常来说,XSKY 会根据应用的当前特点和发展来进行规划。

针对数据量不大的应用,建议使用 NAS(XGFS 产品)直接使用,一方面可以用较低的开发成本,另一方面也可以也可以获得较好的性能,同时也可以依赖 NAS 企业级功能,如快照、配额、ACL 等成熟 NAS 功能进行数据管理。

而针对数据量较多,且以非结构化数据为主,未来有容灾和 PB 级增长的情况下,推荐使用对象存储作为存储类型,使用 AWS S3 作为对象存储的事实标准进行开发,可以很好的利用 API 的灵活性实现数据细粒度管理。

但是大部分客户都会面临中间状态,即大量的应用无法从 NAS 存储转移到 S3,因此对象存储的业界产品都会有不同方案来承接这部分需求

01 对象存储接入的选择

为了充分利用对象存储的优势和高级特性,使用 S3 API 接入对象存储肯定是最佳选择,但对象存储的特殊协议给一些传统应用带来了较高的接入复杂度。

840e34acde6837c2579d47eb1f945135.jpeg

企业内部存在大量数据和应用,并非所有应用都能重新开发以适配对象存储。尽管这些应用的读写请求相对简单,但它们仍希望利用对象存储的优势。此外,一些企业需要将数据导入对象存储的数据湖底座,以供其他应用调用。

为了解决这些问题,需要简化传统应用在对象存储上的接入过程,使其能够在保持现有工作流的同时,充分利用对象存储的扩展性和成本效益。这样不仅可以提升数据管理效率,还能确保企业在技术迁移过程中平稳过渡。

对于上述需求,业界提供了如在对象存储基础上架设 NFS 网关和独立元数据的文件网关并纳管对象方案,但它们在实际应用中存在诸多局限性,在生产业务和长期的对象数据湖建设上力不从心。

c10b73f90dcf11df7e4270c4026b3d81.jpeg

对象 NFS 网关方案

对象 NFS 网关是过去对象存储产品提供的文件接口方式,主要是通过 NFS 网关服务来实现从 NFS 到 S3 的转换,业界主流的对象存储产品都有类似功能,但实际推广都不佳,主要是该架构的局限性较强:
  • 单网关架构问题此类方案一般采用单网关架构,在高可用性方面存在显著不足。当网关出现故障时,故障切换导致的降级也不如原生 S3 网关,导致系统可用性大幅降低,进而影响业务连续性;
  • 网络和 HTTP 开销大:此类方案无法有效利用客户端缓存,所有的请求都需要通过网络并且以 HTTP 协议传输,这导致了较高的网络开销和较低的传输效率。

独立元数据网关方案

独立元数据网关指的是通过私有文件客户端来实现应用的文件接口接入,通常采用 FUSE 来承接,然后通过独立的元数据服务来管理文件元数据,并且采用对象存储来进行数据存储,即元数据管理文件数据的对象索引。

该方案相较于对象 NFS 网关提供了更好的元数据支持,使得过去应用对于文件接口的性能可以最大化保证,但也存在一定的问题:

  • 额外资源开销这类方案引入了独立的元数据和缓存系统,这虽然提升了部分性能,但也需要额外的 SSD 和计算资源,从而增加了成本;

  • 协议转换带来的问题这些方案在对接对象存储时需要进行协议转换和切片,导致底层对象存储对象跟应用看的到文件不是一一对应关系。这不仅使得底层存储无法直接提供对象存储服务,还丢失了底层存储所具备的功能特性,如对象的生命周期管理、快照、配额管理和数据处理能力。

每种方案都有其优势和不足,XEOS 在历经多年后,希望为“合适的”文件应用提供更方便的接入和简单运维,在 6.4 版本中推出了 X-ObjectMount 方案,它并不是能够完美的承接各种各样的文件应用,但对于非常适用于对象存储 IO 模型的文件应用来说,提供了无损的接入方式。

02 X-ObjectMount的设计实现

X-ObjectMount 旨在让应用通过熟悉的 POSIX 文件系统 API 来访问和管理对象存储数据。它部署在业务节点上,作为中间层将对象存储的 key-value 结构映射到业务节点的文件和文件夹层次结构中,使得业务应用可以像使用本地磁盘或者网络共享一样操作存储在 XEOS 中的数据。它将业务应用对挂载目录的文件读写等操作转为 S3 协议发送到后端的 XEOS 集群中,完成数据的总体访问路径。


17ea293504f2ac33d62445f412bfdf3d.jpeg

通过这种方式,X-ObjectMount 为合适的文件应用了提供了无损的对象存储接入,同时利用客户端的资源来增加处理数据和缓存的能力,提高了对小文件和元数据操作的性能

  • 客户端线性扩展:X-ObjectMount 可以通过客户端节点数量的增加,来扩展客户端访问存储的读写性能。每个新增的客户端节点都能够分担部分读写压力,提高整体系统的吞吐量和响应速度;

  • 客户端缓存:客户端缓存机制有效地减少了对后端 XEOS 集群的直接访问次数,提升了数据读取的速度。通过缓存常用数据和元数据信息,减少了重复请求带来的延迟,从而加快了业务应用的数据访问速度;

  • 追加写和高性能重命名:X-ObjectMount 利用 XEOS 的追加写 API,实现了高效的 POSIX 追加写能力,使得应用程序能够快速、连续地写入数据,而无需重写整个文件。这一特性对于日志记录、大数据处理等场景尤其关键,能够显著提高数据写入的效率;

    通过 XEOS 的 API,重命名操作只需要变更元数据记录,而不需要实际搬迁数据。这种方式大幅提高了重命名操作的性能,使得文件在被重命名时能够快速响应,减少了延迟。

  • 完善的管理能力:X-ObjectMount 也在管理监控方面做了强化,支持对用户或应用分配存储配额和设置容量上限,防止资源滥用。与此同时,它还提供监控功能,帮助管理员实时了解挂载点和客户端的状态。

03 X-ObjectMount 适合的场景案例

X-ObjectMount 并不能解决所有文件应用对于对象存储的迁移问题,但在一些合适的场景中表现出来很好的优势,目前已经在一些种子客户场景中进行了验证和上线,以下是几个典型应用场景的案例。

案例1:AI 数据加载

某个 AI 客户由于数据集的快速增加,对存储的成本和稳定性提出了更高的要求,因此引入了 XEOS 作为 AI 海量数据存储的底座。

在客户的业务流程中,在发起训练前需要调度平台将数据从 XEOS 加载到并行文件系统中进行训练。在以往的实践中,这需要调度平台对接 S3 API,通过 S3 将数据从 XEOS 读取到并行文件系统中。这种方式需要额外的开发和适配工作,并且无法利用缓存的能力导致访问性能较低,难以满足快速增长的数据读取需求。

通过引入 X-ObjectMount,调度平台只需要利用 X-ObjectMount 的本地路径就可以读取到 XEOS 的数据。这一方式极大地提高了调度平台的对接效率,同时利用 X-ObjectMount 的缓存功能,可以大幅提升数据访问性能

daccb26e45659c1e65205cb7254a0701.jpeg

方案优势

  • 简化数据加载流程:调度平台不再需要单独对接 S3 API,只需使用熟悉的本地文件系统路径,即可访问 XEOS 中的数据;
  • 提升访问性能:借助 X-ObjectMount 的缓存功能,减少了对后端存储的直接访问次数,加快了数据读取速度,满足了 AI 训练对快速数据访问的需求;
  • 降低开发和维护成本:通过简化对接过程,减少了额外的开发和适配工作,降低了系统的整体维护成本。

该 AI 客户成功通过 X-ObjectMount 实现了数据的高效加载和读取,大幅提高了 AI 训练的效率,并显著降低了存储和运维成本。

案例2:日志归集和分析

某客户的 k8s 平台有大量的应用不断产生日志,如 nginx、webservice 等。为了将日志集中存储,便于后续的分析和审计,客户当前使用定时脚本和任务将日志复制到 NAS 中进行集中存储。然而,随着集群规模的不断增加,NAS 的存储容量和文件数量不断增加,导致性能出现瓶颈。

为了解决 NAS 的性能瓶颈问题,客户决定引入 X-ObjectMount 的 CSI 插件,将日志存储迁移至 XEOS。通过该方案,k8s 集群中的各个 pod 可以直接将日志写入 XEOS,而不再依赖 NAS 存储。这种过渡不仅提升了系统性能,还简化了日志管理流程

a6fae9499f54da6851062f4a859d60fc.jpeg

方案优势

  • 提升存储性能:XEOS 具有高扩展性,能够支持海量数据存储。通过直接写入 XEOS,避免了 NAS 的存储瓶颈问题,确保系统在高并发场景下仍能保持高性能;
  • 简化日志收集流程:业务组件的日志可以直接写入 XEOS,而无需通过定时脚本和任务进行复制。这大大简化了日志管理的工作量,减少了人为干预;同时原有的数据分析应用通过 X-ObjectMount 直接访问 XEOS,无需因为引入 XEOS 而改造对接 S3 API。
  • 增强数据分析和审计能力:集中存储的日志数据可以方便地进行分析和审计。XEOS 的强大管理功能和高性能访问能力,使得日志分析平台和审计业务能够更高效地获取和处理日志数据。

案例3:备份数据导入

某个客户存在大量的备份数据,NAS 存储成本居高不下,同时在与备份软件对接中无法做到全链路防勒索。为了解决这些问题,客户决定引入 XEOS 作为新的备份数据存储解决方案。

通过引入 X-ObjectMount,客户可以实现备份数据的无缝迁移和管理。X-ObjectMount 的优势在于无需修改现有备份脚本,只需替代原有的 NAS 挂载点即可完成迁移。这一方案不仅降低了存储成本,还增强了数据安全性。

5db371898c91167d84d65b0a0389d02e.jpeg

方案优势

  • 降低存储成本:XEOS 提供低成本、高容量的存储解决方案,显著降低了备份数据的存储成本;
  • 全链路防勒索:XEOS 拥有完善的对象锁功能,与 CommVault、都完成了专项认证并推出了联合方案。引入 XEOS 后,该客户可以实现业务数据的全链路防勒索功能;
  • 无缝迁移:通过 X-ObjectMount 替代 NAS 挂载点,现有的备份脚本无需修改,实现了无缝迁移,大大降低了迁移过程中的复杂度。

 小结

作为市场占有率领先的对象存储产品,XEOS 不断的适应各类业务需求,提供灵活的解决方案。为了快速响应业务的快速变化,XEOS 不断演变和优化,确保在不同应用场景中都能高效运作。作为对象存储产品,支持 S3 API 是基本能力,除了支持基础的 S3 API,XEOS 还在其基础上扩展了高级 API:

  • 基础功能:XEOS 与 AWS S3 的兼容性在行业中处于领先地位,确保用户可以无缝迁移和整合现有系统;

  • WORM:XEOS 完整支持监管模式和合规模式,是国内获得对象锁生态认证最多的厂商,提供数据不可变性和防篡改的功能;

  • 快照:为了更好地保护数据,并解决备份厂商或业务获取对象文件变化效率低的问题,XEOS 创造性地提供了对象存储整桶快照以及快照差异 API。这些功能大大提升了数据保护和管理的效率;

  • 除此之外,为了让阿里云客户更轻松的下云,XEOS 还和阿里云合作适配和 OSS API

随着 AI 和大语言模型(LLM)的快速发展,数据训练性能和存储成本的要求越来越高。在近期发布的 6.4 版本中,XEOS 与 Alluxio 联手推出了面向 AI 的联合方案。

XEOS 与 Alluxio 的深度合作,不仅能显著加速 AI 数据访问,还利用 XEOS 的海量低成本存储和灵活的全生命周期管理功能,大幅降低 AI 企业的数据存储成本。该方案为企业在 AI 数据管理和存储方面提供了强有力的支持,帮助企业在快速发展的 AI 领域保持竞争优势。

而 X-ObjectMount 的推出,通过结合熟悉的 POSIX 文件系统 API 和 XEOS 的强大存储能力,为企业提供了高效、灵活的数据管理解决方案。无论是 AI 数据加载、日志归集和分析,还是备份数据导入,X-ObjectMount 都表现出了显著的优势

通过实际应用场景的测试和优化,已经证明 X-ObjectMount 可以有效的提高应用对接效率,减少改造工作。

 


ee179059dbed1949c4c866bc0fe6aec8.jpeg

相关文章:

  • 读-改-写操作
  • java map对象格式化为json对象
  • 【第二周】基础语法学习
  • 征求意见《第三方运维服务水平评价指南 工业废水处理设施》
  • Unity发布PC限制本地访问exe次数
  • 从单点到全景:视频汇聚/安防监控EasyCVR全景视频监控技术的演进之路
  • 苍穹外卖项目 常用注解 + 动态sql
  • 华为昇腾×实在智能:让国产AI科技实实在在“飞得更高”
  • 游戏AI的创造思路-技术基础-深度学习(5)
  • 【neo4j图数据库】入门实践篇
  • ubuntu server 24.04 使用记录
  • 从二元一次方程组到二阶行列式再到克拉默法则
  • 实现Spring Boot与RabbitMQ消息中间件的无缝集成
  • 广州自闭症机构哪家好
  • 利用STM32的定时器输出PWM方波
  • Apache的基本使用
  • C++类的相互关联
  • export和import的用法总结
  • JavaScript创建对象的四种方式
  • JS笔记四:作用域、变量(函数)提升
  • JS题目及答案整理
  • leetcode388. Longest Absolute File Path
  • Linux Process Manage
  • nginx 配置多 域名 + 多 https
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 微信小程序--------语音识别(前端自己也能玩)
  • 学习JavaScript数据结构与算法 — 树
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • #define、const、typedef的差别
  • #include到底该写在哪
  • #前后端分离# 头条发布系统
  • $().each和$.each的区别
  • (16)Reactor的测试——响应式Spring的道法术器
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)计算机毕业设计大学生兼职系统
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (学习日记)2024.02.29:UCOSIII第二节
  • (杂交版)植物大战僵尸
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net 调用海康SDK以及常见的坑解释
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET实现之(自动更新)
  • .NET文档生成工具ADB使用图文教程
  • .NET下ASPX编程的几个小问题
  • @AliasFor 使用
  • @JoinTable会自动删除关联表的数据