突破吞吐限制,多NAS性能聚合方案,数据上传及读写

简介: 本文提出一种通过挂载多个NAS来获取更高文件存储吞吐性能的方法,适合特殊场景下的一些应用

阿里云文件存储(Network Attached Storage,简称NAS)是面向阿里云ECS实例、HPC和Docker的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。
NAS的吞吐性能和存储容量/存储包大小相关,在大多数情况下,客户数据量不到1TB,单一容量型NAS文件系统所能达到的吞吐大约为120MB/s左右,具体数据如下图:
image
在有些场景下面,客户需要将数据从本地存储阵列/云存储阵列/云OSS上迁移到NAS,并对这些数据进行读写和后续计算。那么如何在不花费更多钱(购买更大存储包)的情况下,获取更高的数据上传速度和读写性能呢?本文将介绍其中一种方法:将源数据迁移到多个NAS,并用软链接组装上传后的文件目录,以让多个NAS从逻辑上形成和源数据一致的结构。经测试,在4个NAS上的数据上传吞吐能力达到440MB/s。

第一部分,如何将本地存储阵列(或其他高吞吐设备)中目录/data/下的所有数据上传到NAS?
使用NAS分布式上传工具nasimport2.0(目前尚未发布到公有云页面,如有需要请钉钉联系王俊俏)。下面对工具作简要介绍:
前提条件:一台(或若干台)服务器,可以同时访问源数据和NAS文件系统,打通ssh通道。创建若干个nas(比如4个)挂载上, 目录为/nas/mnt1,/nas/mnt2,/nas/mnt3/,/nas/mnt4/。

工具原理:工具采用master-slave模式,一台机器上master启动后在本机(或者配置好的其他机器上)启动若干个slave,然后扫描源数据目录下面所有的文件,在文件级别将若干文件作为一个批次,每个批次作为一个job分发给slave分别上传。所有job完成之后,源目录/data/下的所有文件,都分布在了4个nas上,也就是/nas/mnt1,/nas/mnt2,/nas/mnt3/,/nas/mnt4/上面。之后把这四个目录下面的所有文件软链接到/nas/mnt1/下面,使得从/nas/mnt1/入口可以访问到所有的原始文件。
链接前的目录结构比如是这样:
image
链接后:
image

第二部分:数据上传到NAS之后的读写。在一些场景下,上传后的数据直接作为原始数据,会被计算程序多次读取,这样的话,直接把/nas/mnt1/作为目录的入口就可以了。多线程并发读的情况,吞吐可以充分发挥4个NAS的优势,理论上也可以达到400MB/s的吞吐。在写的情况下,如果创建新的目录会创建在父目录所在的NAS上,写入速度取决于数据目录的形式,但至少会比单个NAS性能要好。

以上就是利用多个NAS聚合产生更高IO性能的一种方式。分布式上传工具和rebuild 目录的工具目前均在内测阶段,如有需要,请联系钉钉(王俊俏)。

相关实践学习
函数计算部署PuLID for FLUX人像写真实现智能换颜效果
只需一张图片,生成程序员专属写真!本次实验在函数计算中内置PuLID for FLUX,您可以通过函数计算+Serverless应用中心一键部署Flux模型,快速体验超写实图像生成的魅力。
目录
相关文章
|
安全 算法 Linux
CentOS7下部署长亭科技雷池Web应用防火墙(WAF)开源社区版
CentOS7下部署长亭科技雷池Web应用防火墙(WAF)开源社区版
3128 0
|
SQL 关系型数据库 MySQL
如何使用MySQL Binlog Digger 4.14对binlog日志进行挖掘分析以便快速恢复误删除数据
MySQL Binlog Digger是一款运行在windows操作系统的挖掘与分析MySQL binlog的可视化工具,通过它可以快速打回被误操作时的数据,例如:delete, insert, update操作,并依据这些误操作生成相应的undo回滚语句,以便快速恢复数据,此外,它还可以支持离线binlog挖掘分析与binlog下载,它仅支持dml操作的回滚,但不支持ddl的回滚。
5992 1
如何使用MySQL Binlog Digger 4.14对binlog日志进行挖掘分析以便快速恢复误删除数据
|
4月前
|
SQL 关系型数据库 MySQL
击穿 MySQL InnoDB MVCC 底层:从 undo log、Read View 到隔离级别的全链路深度拆解
本文深入解析MySQL InnoDB的MVCC机制,涵盖undo log版本链、Read View可见性规则、各隔离级别行为差异,并纠正脏读/幻读等常见误区,辅以SQL与Spring Boot实战演示,助你透彻理解高并发下数据一致性的底层原理。
337 3
|
存储 消息中间件 OLAP
基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
本文整理自淘天集团高级数据开发工程师朱奥在Flink Forward Asia 2024的分享,围绕实时数仓优化展开。内容涵盖项目背景、核心策略、解决方案、项目价值及未来计划五部分。通过引入Paimon和Hologres技术,解决当前流批存储不统一、实时数据可见性差等痛点,实现流批一体存储与高效近实时数据加工。项目显著提升了数据时效性和开发运维效率,降低了使用门槛与成本,并规划未来在集团内推广湖仓一体架构,探索更多技术创新场景。
2119 3
基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
|
10月前
|
存储 算法 关系型数据库
我们来讲一讲 MVCC 的实现原理
我是小假 期待与你的下一次相遇 ~
464 1
我们来讲一讲 MVCC 的实现原理
|
9月前
|
运维 Prometheus 监控
监控体系大一统:OpenTelemetry 就是运维人的“鸿蒙”
监控体系大一统:OpenTelemetry 就是运维人的“鸿蒙”
964 11
|
资源调度 运维 容灾
中国广电云,全国首个多Region2.0架构升级正式完成并亮相2025CCBN!
2025年4月25日,中国国际广播电视信息网络展览会(CCBN)在北京圆满落幕,在中国广电集团的展台上,阿里云支持建设的“国家文化专网基础设施——中国广电云”接待国家广电总局领导及广电传媒行业专家的参观指导,安全自主、文化特色、全国覆盖、产业智能等中国广电云的鲜明特点给莅临展位的行业同仁留下了深刻的印象。
716 4
|
存储 C语言 索引
Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
本文全面介绍了Python的基础知识,包括Python的诞生背景、为什么学习Python、Python的应用场景、Python环境的安装、Python的基础语法、数据类型、控制流、函数以及数据容器的使用方法,旨在为Python零基础读者提供一篇全面掌握Python语法的博客。
4301 2
Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
|
Web App开发 JSON 数据格式
【Azure Developer】浏览器查看本地数据文件时遇见跨域问题(CORS)
Access to XMLHttpRequest at 'file:///C:/Users/.../failedrequests.json' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome-untrusted, https, edge. reportdata/failedrequests.json:1 Fail
471 1
|
缓存 前端开发 Android开发
Android实战之如何截取Activity或者Fragment的内容?
本文首发于公众号“AntDream”,介绍了如何在Android中截取Activity或Fragment的屏幕内容并保存为图片。包括截取整个Activity、特定控件或区域的方法,以及处理包含RecyclerView的复杂情况。
466 3

相关产品

  • 文件存储 NAS