杉岩数据:MOS对象存储为IPFS打造坚实底座

2023-10-29 14:32

本文主要是介绍杉岩数据:MOS对象存储为IPFS打造坚实底座,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IPFS是InterPlanetary File System(星际文件系统)的简称,是一个旨在创建持久且分布式存储和共享文件的网络传输协议。IPFS网络中的节点构成了一个分布式文件系统,它为用户提供了一个支持部署和写入的平台,同时能够支持大文件的分发和版本管理。

IPFS试图解决什么问题?

IPFS是对中心化存储的一种补充,具有去中心化、数据不可篡改、全程留痕、可以追溯、集体维护、公开透明的特点。其目标是通过建立对等的分布式文件系统,为数据存储服务的需求者提供一个高吞吐量、按内容寻址的块存储模型,及与内容相关的超链接。分布式内容传递可以节约带宽,和防止HTTP可能遇到的DDoS攻击。

相较于中心化存储(基于HTTP构建的云存储),IPFS解决了下载速度慢、存储成本高、修复能力不足以及数据隐私安全等问题,且不存在单点故障,网络节点之间不需要相互信任,安全性和可靠性更高。

IPFS如何保证用户数据被安全地存储?

从数据存取的角度来看,IPFS的做法是:文件被用户上传时,会切割成N个加密碎片,分散存储在供应方(矿工)提供的存储空间中,在下载时再合成为完整的源文件;通过一种共识机制(复制证明PoRep和时空证明PoSt)来确保正确的数据在正确的时间被有效存储且未被篡改,以保障安全、公开、透明;据此,系统也会得出矿工的实际贡献值,提供对等的报酬。

图1.IPFS通过共识机制确保数据安全

整体流程大致如下:当用户上传原始数据后,矿工向主链提交交易证明并获取出块权,之后按照规则将数据装入扇区继而封装成标准大小(32GB)的数据块;在封装过程中会进行复制证明并提交给主链,以证明矿工确实保存了用户要求存储的数据;数据封装后,系统会按照数据的存储期限,每隔一段时间(一般是半小时一次)运行时空证明,以证明矿工确实在规定时间内存储了准确的数据。

IPFS需要高度匹配的存储能力

在运行证明的过程中,需要强大的算力支撑,这既包括对原始数据的封装处理、对证明数据的高效运算,还包括对封装数据的及时写入、对证明数据的检索抽取。这对存储也提出了严苛的要求,主要特点如下。

图2.证明过程中计算与存储高频交互

超大容量

IPFS要求数据持续可读,历史数据永久保存。一般周数据增量为PB级,年增量可达百PB级甚至EB级。

高吞吐

IPFS写入模型是大文件并发写入,存储集群至少要提供100Gbps以上的吞吐量,以保证封装数据的写入效率。

随机读

在时空证明阶段,每天完成一次全量证明(分48次进行,每半小时就要完成一个SHARD的证明),均是小数据块随机读,要求存储提供极高的随机读取效率。

高效运维

数百PB甚至EB级的海量空间,必然由大规模集群来支撑,高效运维、降低人力成本同样是刚需。

兼顾安全与低成本

除了IPFS原有的哈希去重和加密算法,存储集群也需要提供低成本的安全保护策略。业内厂商多采用高性价比的纠删码方案,在保证数据高可用的同时,尽可能降低总体成本。

MOS对象存储为IPFS打造坚实底座

从前文的描述中不难看出,选择合适的存储底座无疑能给IPFS带来强有力支撑。杉岩MOS对象存储凭借海量、高性能、智能化、低成本等优势,为IPFS场景提供了极佳的存储底座。

图3.基于MOS打造强大的存储底座

EB级弹性扩展,300 Gbps吞吐能力

MOS可提供单一命名空间的EB级资源池,以及超过300 Gbps的吞吐能力;由于计算与存储分离,存储集群可独立扩展,灵活响应业务变化。

空间利用率超90%,成本节约超过50%

为了满足数据高可用和低成本的要求,MOS采用22+2的纠删码技术,将空间利用率提升到了90%以上,相较于3副本策略,硬件成本缩减超过50%。

15秒读完一个Partition

针对IPFS高频随机读的特点,MOS也进行了性能优化,可将数百次随机读请求合并为一个请求,将读取效率提升了数倍,每15秒即可读完一个Partition。

管理超大规模集群仅需1-2人

MOS提供可视化管理和智能化运维,故障自动监测和即时申报;通过多故障域隔离和智能DNS分配技术,帮助运维人员轻松管控超大规模集群,在提升数据可靠性的同时降低运维复杂度,节省人力成本。

“工欲善其事,必先利其器。”IPFS需要强大的云算力,除了部署强大的算力集群,选好存储同样重要。杉岩已顺利交付IPFS项目,实践证明,MOS对象存储值得这份信赖。

这篇关于杉岩数据:MOS对象存储为IPFS打造坚实底座的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/301287

相关文章

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、