YTFS——跨地域的分布式存储(WAN存储)

Ceph/HDFS等传统分布式存储属于中心化存储,整个存储网络都位于同一机房,能提供服务器级别的故障域隔离,但无法应对机房甚至城市级别的故障,包括但不限于停电、断网、地震、火灾、911式恐怖袭击、天津大爆炸式毁灭性灾难、切尔诺贝利式运维人员神操作等。

跨地域的分布式存储称为WAN存储,其存储网络是广域网,网络性能、网络节点故障率、丢包率等都与局域网相差极大,因此WAN存储从设计理念到技术架构都与传统局域网的分布式存储不相同,需要完全重新设计。

YTFS是一个商业化的WAN存储,作为YottaChain区块链存储的核心功能,自2019年12月24日上线以来一年半时间存储了数十PB的数据,每天新增存储100TB左右,得到了生产环境的验证。YTFS的商业化版本包含在YottaChain的开源代码中,可以在https://github.com/yottachain获取。

YTFS的设计目标是:

  1. 数据持久性、安全性、可用性等核心技术指标比传统分布式存储要有多个数量级的提高
  2. 成本上要有明显优势
  3. 兼容现有主要存储接口

YTFS的数据可靠性保障机制,能对数据持久性、服务可用性、数据一致性、容灾性都起到强有力的保障,而且数据冗余率低:

  1. 每个数据段采用YTLRC编码成N+36(N<=128)个数据分片,每个数据分片的长度固定为16KB大小
  2. 每个数据分片保存在不同地域的不同数据节点上,这样保存同一个数据块的最多164个数据节点最多允许36个数据节点同时故障也不会丢失数据
  3. 数据节点之间互相交叉做心跳监测,一旦任何节点出现故障则其数据在其它节点进行数据重建
  4. 仅计算硬件故障因素的话,可靠性至少达到20个9(99.999999999999999999%)以上,比传统局域网的分布式存储的11个9(99.999999999%)要提高10亿倍以上
  5. 由于这些数据节点都是分布在不同地域的,天然自带容灾性,无需另行支付成本和代价
  6. 同理,每一个数据块都可容忍多达36个地域同时出现断网宕机等故障或灾难都仍然能保证服务可用性,比传统局域网的分布式存储的服务可用性也是提高很多个数量级
  7. 摒弃了极容易出现脑裂的多副本模式,每一个数据块都是用YTLRC编码和Hash算法横向和纵向双维度强力检错、纠错、纠删的,从而杜绝了数据不一致的可能性
  8. YTLRC的数据冗余率只有不到130%,比经典三副本的300%数据冗余率降低了一半以上,成本也相应降低
     

传统的存储系统不包含数据安全机制,数据不加密,用网络安全和人员安全的传统方法保护存储设备。但YTFS作为WAN存储,其数据节点分布在全球各地,目前生产环境已经有了上万个节点,将来可能会多达上千万个节点,仍然沿用对每个节点采用网络安全和人员安全的保护手段是不现实的。因此,YTFS设计有内置的的数据安全体系,实现了全程加密、无缝加密、零知识加密,并有专业的密钥管理系统,和密文去重技术,保证除了数据所有者外其它人联合作恶也偷不走用户数据:

  1. 数据采用AES-256加密,不掌握密钥无法破解
  2. 每个数据块的密钥都不相同,都是实时随机生成,确保生成之前没人知道
  3. 以用户公钥用ECC-256加密存储密钥,无用户私玥时无法破解
  4. 以数据明文计算出密钥,用来加密存储密钥,用于密文去重
  5. 用不同Hash算法分别计算每个数据块明文Hash值和每个数据分片密文Hash值,通过双重Hash来彻底解决Hash碰撞问题,同时也能防止假冒数据攻击

在架构上,YTFS由SN(元数据节点)、DN(数据节点)和用户端组成。YTFS的设计能力支持多达1亿个DN;存储用户端对上层应用提供存储服务接口,目前提供S3对接存储接口。

在每一次上传数据时,都要对数据先压缩再切块,每个数据块最大2MB,用自适应压缩算法保证压缩不超过分块的边界;然后对每个数据块进行AES加密和YTLRC编码分片,每个数据分片固定16KB大小,冗余分片数量固定为36,一个数据块最多128+36=164分片;最后多线程同时上传所有分片到不同DN,元数据保存在SN。在此过程中,还穿插进行本用户去重、全局文件去重和数据块去重三重去重,对重复数据免去上传操作,而且可以与相同数据的用户共同分担存储费用。

YTFS有智能DN分配引擎,根据故障域隔离和每个DN的权重决定每个DN获得数据分片的概率。

由于YTFS的存储引擎要运行在数量最多的设备上,按照业务逻辑简单、对DN配置要求低的原则设计,并尽可能降低资源损耗,提高可用于存储有效数据的空间比率。

YTFS采用数据分片大小固定但数据分片数不固定的冗余编码方式,使得存储引擎只需要保存16K固定大小数据分片,大大降低数据管理复杂度,也避免了空间浪费。

YTFS在保存数据分片时无需文件系统,直接读写裸硬盘,不仅缩短数据路径提升性能,而且还减少故障点,同时也减少文件系统对硬盘空间的占用,进一步提高硬盘空间利用率。

YTFS不仅数据冗余低,更有标志性的独家密文去重专利技术,可以在保证零知识加密的前提下实现跨用户数据去重,将存储成本降低5-10倍。另外,YTFS对边缘节点友好,可以充分利用边缘节点在制冷成本、带宽成本、制造成本和房租成本和运维成本上的巨大优势,进一步降低系统总成本。 

YTFS有数据安全体系,实现了全程加密、无缝加密、零知识加密,并有专业的密钥管理系统,和密文去重技术,保证除了数据所有者外其它人联合作恶也偷不走用户数据:

  1. 数据采用AES-256加密,不掌握密钥无法破解
  2. 每个数据块的密钥都不相同,都是实时随机生成,确保生成之前没人知道
  3. 以用户公钥用ECC-256加密存储密钥,保存在SN,无用户私玥时无法破解
  4. 以数据明文计算出密钥,用来加密存储密钥,保存在SN,用于密文去重
  5. 用不同Hash算法分别计算每个数据块明文Hash值和每个数据分片密文Hash值,通过双重Hash来彻底解决Hash碰撞问题,同时也能防止假冒数据攻击

YTFS不仅数据冗余低,更有标志性的独家密文去重专利技术,可以在保证零知识加密的前提下实现跨用户数据去重,将存储成本降低5-10倍。另外,YTFS对边缘节点友好,可以充分利用边缘节点在制冷成本、带宽成本、制造成本和房租成本和运维成本上的巨大优势,进一步降低系统总成本。

你可能感兴趣的:(存储技术,分布式存储)