随着 5G+IoT 时代来临,产生数据的主角除了人类还有海量的物理设备,相比 4G 移动互联网的短视频、直播等,会有更大量的数据产生。据 IDC 发布的《数据时代 2025》的预测,全球每一年产生的数据将从 2018 年的 33ZB 增加到 2025 年的 175ZB,每一年新增约 20ZB,若是使用 8T 的磁盘,只保存一份副本,每一年须要 25 亿块磁盘,数亿台主机。数据库
这些数据大多以视频、图片、文本等非结构化形式存在,并须要妥善保存以作后续利用。为此,数据的存储载体须要具有随时随地上传、安全、可扩展以及低成本的特性。目前,对象存储是这些海量非结构化数据最好的存储载体。安全
UFile:作 Costco 式的对象存储网络
UFile 是 UCloud 2015 年推出的对象存储产品。过去一年间,UFile 从总体上作了一次较大升级,推出很多功能特性和优化,更好地知足用户对海量非结构化数据的需求。这一过程当中,UFile 将其产品理念归纳为 “成为 Costco 式的存储”,为何是 Costco 式的?架构
前段时间量贩式仓储会员店 Costco 在国内火爆开业,在一个既不缺线下商超、同时线上电商更是遍地开花,市场竞争异常激烈的中国市场,Costco 靠什么去切入用户?雷军是这么评价 Costco 的:“Costco 这么多年所向披靡的最重要缘由就是抓住了其存在的本质,商品作到极好,价格作到极低,服务作到超预期。”tcp
这个理念也一样适用于对象存储领域,UFile 把用户最本质的需求归纳为 3 点:极高的可靠性和性能、极低的成本以及极优的体验。工具
对象存储的三个典型案例oop
在介绍 UFile 以前,咱们先来看看 AI、大数据和 IoT 场景下的 3 个案例:性能
1大数据
某传统金属件加工企业本来有这样一项业务:员工人力摘捡不合格产品。如今,该项业务转变为拍照取证+AI 智能检测的方式,相较以前大大节省了企业的人力投入成本,并下降了人工检测的偏差。同时也产生了一项新需求:全部图片数据需保存 25 年以供后续质保检验。优化
用户的需求:如何保证数据长时间存储的高可靠需求?
2
某大数据分析企业积攒了数个 PB 的大数据,在完成分析后这些数据的访问量降到较低,但在一段时间内仍需存储保留原始数据或者分析后的中间数据。对企业来说,这数 PB 的数据存储将会是一笔不小的开销。
用户的需求:如何实现海量数据的低成本存储需求?
3
某城市地铁天天停运后都须要人工沿地铁进行检修,效率较低且须要大量人力的投入。所以计划引入 IoT 技术:在地铁中部署一些传感器,检测地铁的声音、温度、图像、视频等,数据使用 4G 网络随时随地上传到云端存储,解决人力工做成本并提升检修效率。
用户的需求:这些分散在地下各处的传感器如何方便、安全、低延时的进行数据的上传?
咱们总结了这三个案例的关键字:高可靠、低成本、使用体验,下面咱们来详细介绍 UFile 在这三方面所作的工做。
一 、数据高可靠
一、多副本 + 同构的冗余机制
首先,UFile 采用 3 副本和纠删码技术,能够确保数据在两块磁盘损坏的时候数据不丢失。不一样于相似 Ceph 异构的数据分布技术,UFile 3 副本技术采用同构的数据分布方式,这种同构的数据分布能够保证数据更高的可靠性。
图:同构与异构数据分布对比
从上图可知,同构状况下只有集群 a 或者 b 同时损坏 2 种丢失数据的可能状况,而在异构结构下有 6 种丢失数据的组合状况,同构的可靠性显然更高。
二、跨地域的数据灾备
UFile 是一个地域级别的存储产品,为了更好的提供数据灾备能力,UFile 今年推出了跨地域的灾备功能:支持 3 个及以上的地域复制,复制方式包括链式结构(A->B->C)与技术实现更复杂的环式结构(A->B->C->A)。环状结构的优势是可以支持更多地域的读写,并知足就近读写业务的需求。
图:多地域复制及就近读写功能示意
三、故障处理机制的完善和创新
除此以外,UFile 还在故障的快速发现和恢复上作了很多创新。除应用常规的硬件和软件层面的监控帮助用户快速发现数据异常外,UFile 采用 Set 化的架构设计,当出现机器或磁盘故障时,能够将该 Set 集群设置为只读,从而下降该 Set 集群的业务负载,帮助恢复程序以最快的速度恢复故障磁盘或机器,大大提升数据的可靠性。
二 、业务低成本
一、对象级别的分层存储
UFile 采用专门的存储机型,存储密度更高,单位存储的成本最低可降到计算机型的 15%。同时采用纠删码技术,在确保数据可靠性的前提下,存储成本可下降到 3 副本冗余机制下的 40% 左右。
此外,UFile 还对数据分层和数据生命周期管理进行了优化,致力于从数据分层存储的角度进一步下降用户存储的成本。
用户业务每每同时存在高频和低频访问的数据,而相同数据在不一样生命周期也存在不一样的访问频率。一个刚产生的高频访问的数据,随着时间的推移访问频率每每会逐渐减低,数个月后即可能从高频转为低频。不一样访问频率的数据可采用不一样成本的存储方案。
业内早期的解决方案是经过支持热、温、冷 3 种存储产品来知足不一样频率访问数据的要求,用户分别在 3 种存储产品上建立 Bucket,而后根据数据的访问频率放置到对应的 Bucket。按照用户设置的时间规则,在不一样时间点数据会在 3 种 Bucket 进行迁移。这种解决方案虽然解决了数据存储的成本问题,可是缺点在于对业务不太友好,须要业务感知这种变化。
图:传统的分层存储数据流转示意
针对该问题,UFile 在今年推出了对象级别的分层存储方案。和传统解决方案不同的是,UFile 支持同个 Bucket 中同时存在热、温、冷 3 种数据,用户能够将同个业务中的 3 种数据上传到同个 Bucket,同时数据访问频率发生变化后还会保留在同个 Bucket 中。
这种方案对用户的业务更加友好,并且也为后续即将推出的数据自动化分层管理奠基了良好的基础。用户不少时候没法区分数据的冷、热程度,或者没法准确的预测数据何时开始变冷,而更好的作法是将这些工做交给后台程序自动完成,这样可让用户享受到最低的存储成本。
图:UFile 分层存储方案数据流转示意
二、自建大数据存储与 UFile 归档存储的成本对比
咱们回到开头的大数据用户的场景,该企业现有 5PB 的数据量,由于用户的数据访问频率较低,因此推荐采用 UFile 的归档存储方案,下表是使用自建大数据存储和 UFile 归档存储方案成本差别对比。
事实上,咱们尚未考虑数据逐渐增加的过程,对象存储是按需付费的,实际使用多少资源才会支付多少费用,而自建大数据存储每每会存在资源和成本的空闲浪费。所以,针对海量数据的冷存储,UFile 归档存储方案可以提供更高的性价比。
三 、产品体验优化
一、数据安全 + 高质量网络保证
移动设备和 IoT 设备都有随时随地上传的需求,而随时随地的上传则对数据安全和网络质量都提出了更高的要求。
针对该需求,首先 UFile 支持 Https 协议,支持用户使用公私钥或者 Token 的方式来随时随地的传输数据、确保数据的安全性。
其次,UFile 已在全球 10 多个国家和地区分布有节点,覆盖国内主要城市和国外主要国家,按照规划 UFile 后续还将覆盖到更多地区和国家。国内外的数据节点均采用 BGP 机房或者运营商节点机房,可以提供高质量的网络保障,确保用户数据上传过程当中的稳定和低延时。
图:UFile 全球数据中心分布
二、用户接入体验优化
目前 UFile 的 SDK 覆盖了主流的开发语言,并分别支持 iOS 和 Android 移动端。同时 UFile 还兼容了经常使用的 S3 协议,支持第三方用户态网络文件系统访问 UFile,如 S3fs、Goofys,这样用户能够像使用本地文件系统同样使用对象存储。相比本地文件系统,以 UFile 为存储池的用户态网络文件系统能够为用户带来更大的存储空间和更低的存储成本。
图:经过 Goofys 把某个 Bucket 挂载成文件系统并操做
图:经过 Goofys 写 UFile 后的效果
三、各种应用场景下的定制化解决方案
此外,UFile 还提供了各种经常使用应用场景和备份场景的定制化解决方案:
针对多媒体场景,UFile 结合 UCloud 全球 500 多个 CDN 节点,给用户提供高质量的视频和图片类服务。 针对大数据场景,UFile 推出了计算存储分离的方案,使用 UFile 来替代 HDFS,计算层只需修改配置文件便可完成替换。 在 UCloud 今年推出的重量级数据分析产品 USQL 中便采用了计算存储分离的解决方案,对计算和存储都采用按需计费的方式,大大下降了大数据分析的成本。同时 USQL 依托于 UFile 强大的 IO 能力,以及无限存储容量,实现了海量数据的快速分析。 针对备份类的场景,UFile 提供了 Hadoop 冷数据备份场景、MySQL 数据库备份和恢复场景、ES 日志备份的场景、网站文件备份场景等解决方案,帮助用户轻松完成数据备份。 Hadoop 冷数据备份场景实例分析:
Step1
图:Hadoop 集群中的文件在 UFile 的某个 Bucket 中不存在
Step2
图:经过 distcp 工具有份至 UFile 的某个 Bucket 中
Step3
图:备份成功后能够在 UFile 控制台看到该文件
结语
最后,针对海量非结构化数据,除了数据高可靠、低成本以及良好的使用体验,还有一个很是重要的需求即是高性能。特别是在引入生命周期和目录功能后的列表查询场景以及相似网络摄像头的大量写入及删除类的场景,对索引和存储的性能提出较大的挑战。
UFile 目前已经上线了目录功能和生命周期功能,大批量删除的性能也相比以往有较大的提高。后期咱们还将专门介绍这两类场景下索引和存储的优化工做,敬请期待。