乐趣区

关于对象存储:存储成本降低80US3在海量数据归档存储下的成本优化技术实践

前言

UCloud 在 2020 年 8 月正式公布了基于 US3 的全新一代归档存储产品,该产品采纳 UCloud 全新自研存储架构,相较规范存储升高近 80% 存储老本的同时,与市场同类归档存储产品相比升高近 30% 的价格。

据 IDC 的预测,寰球年新增数据量到 2025 年将达 175ZB,真正能存储下来的数据仅有 15ZB 左右,流失率超过 91%。在目前企业数据的冰山模型里,80% 的数据量来源于冷数据。在私有云畛域,UCloud 认为容量型存储通过技术手段晋升倒退的空间还非常微小。

如何最大化利用最新的高容量硬件来进一步升高存储老本?如何在归档存储长期保留的场景下充沛保障用户的数据安全?这些都须要对 US3 归档存储的整个 IO 门路做较大的优化以及硬件适配工作,同时咱们还须要保障产品的易用性,防止给用户带来额定的应用老本。

接下来本文将从 UCloud 如何利用硬盘技术晋升存储密度以及优化 IO 调度来升高经营老本这两个角度,具体解析 US3 归档存储的底层存储引擎的软件以及硬件选型优化细节。

采纳 SMR 盘 +JBOD 设施进步存储密度

升高硬件层面的老本,次要体现在进步存储密度上。这里咱们摸索过包含蓝光,磁带、硬盘等不同的存储介质,也有参考过微软的 Pelican 零碎的硬件设计。思考到咱们最终实现的指标是冀望 用户能够在紧急情况下分钟内实现数据的激活与读取,失常状况下能够在小时内实现激活与读取,对于用户的最短保留工夫不须要以年来计算。因而,UCloud 联合本身的存储技术劣势,临时排除了蓝光以及磁带的存储介质实现,次要采纳高密度硬盘的形式来实现归档型的云存储服务。

这里先介绍一下传统硬盘是怎么记录数据的。

这种传统的硬盘一般来说是属于垂直磁记录 PMR 类型的硬盘。数据通过写入彼此平行而不重叠的磁道来记录数据,晋升数据存储容量只能通过晋升磁道数量来晋升。

相较于这种传统的硬盘还有一种基于叠瓦磁记录 SMR 的磁存储数据记录技术的硬盘能够晋升存储密度以及整体硬盘的存储容量。这里介绍 SMR 硬盘的硬件实现之前还须要先理解一个背景常识,首先咱们将磁盘的磁头放大来看。

因为物理上的起因,磁盘写入磁头所须要的宽度要比读取的磁头宽上很多,这就导致了读写两个操作对于磁道宽度的需要其实是不对等的,写入须要的宽度更多,这就给进步磁盘密度带来了可能性,上面咱们再来看一下 SMR 磁盘的结构。

SMR 硬盘写入的新磁道与先前写入的磁道局部重叠,从而使先前的磁道更窄,因而能领有更高的磁道密度。由此能够看出,应用叠瓦磁技术的磁道互相重叠,与用作屋顶的瓦片重叠形式相似,所以叫做叠瓦磁记录硬盘。

从 SMR 硬盘的硬件结构咱们不难看出在晋升硬盘存储容量的同时,对于写入其实会造成很大的艰难,一旦以后磁道的下一条磁道被写入过数据,这个磁道如果再想写入,因为磁道有重叠,写入的磁头又较大就会对前面的数据造成影响。所以从应用的角度来看,SMR 硬盘会被划分成若干的 Zone,每个 Zone 中的数据只可能进行追加写入,这其中又会有 1% 的 Zone,磁道不重叠,叫做 CMR Zone,能够反对随机读写。

可想而知如果要对下层屏蔽 SMR 盘带来的限度的话会带来不少的代价,这里有 device managed、host aware 两种形式来简略屏蔽掉 SMR 的程序写入限度,但不管哪一种,都是将随机 IO 转化为程序 IO,这样会带来肯定的写放大以及读性能降落,以及在特定 IO 场景下的硬盘寿命影响,且下层对其影响不可控。

UCloud 存储团队在多个现有产品上,都有绕过文件系统间接对块层存储操作的技术积攒,为防止对底层存储落地文件系统有强依赖,咱们选取了 host managed 的形式来对 SMR 盘进行读写治理。

在硬盘数据落地的同时,咱们也将相干的大量元数据与数据合并在一起写入,这样做有三方面思考:

一是这部分大量元数据,咱们会蕴含这一次 IO 的整体 CRC,用于避免硬盘的静默谬误 (Silent Data Corruption),进步用户在应用 US3 归档存储时的数据可靠性,因而在冷存储这种海量且长期存储场景硬盘的比特位反转(bit flip) 等谬误还是须要咱们特地关注的。

二是当咱们的元数据受到一些毁灭性的软硬件问题导致不可用时,咱们能够通过从新读取这些随 IO 写入的元数据还原出整体的构造,当然这个代价也是比拟大,预期也是在应答一些黑天鹅事件时的解决计划。

三是能够升高咱们的写放大,在写入时不会因为须要更新元数据而写入两次 IO,这在随机 IO 能力不是强项的 HDD 硬盘场景下也分外重要。

咱们选取了其中头部的若干 CMR Zone 用于自解析以后盘的元数据,并冗余多份,这里因为本身 1% 的 CMR Zone 对于元数据来说还是较多,所以这里咱们将局部 CMR Zone 和只能追加写的 SMR Zone 都形象成了只能追加写的 Data Zone,来最大化的利用磁盘的空间。

至此咱们进步了单块磁盘的存储密度,使 单块硬盘存储空间晋升 150%,相较于之前,咱们还进步了单机柜的磁盘密度来进一步晋升整体的存储密度。相较于传统 36 盘位的传统高密机型,咱们采纳了 JBOD 的形式。这里受害于 UCloud 自建机房的劣势,先前单机柜机房地板承重以及高功率机柜稀缺的限度不再存在,从而能够在单机柜寄存更多的 JBOD 存储设备,使 单位机架的存储容量晋升 5.375 倍,硬盘数量减少 59%。

除此之外,咱们还采纳了双机头硬件架构,所有 JBOD 中的硬盘保障同时双机头可见,这样保障了在单机宕机的状况下,依然能够通过咱们的选主算法立即切到另外一个机器上,保障服务的可用性。

优化 IO 调度算法升高经营老本

进步密度实质上升高的是咱们的 CAPEX(Capital Expenditure)资本性支出,在归档存储的场景下长期的 OPEX(Operating Expense)经营老本也占比拟大。这里咱们做出的优化是在不影响用户应用体验及存储性能的前提下升高咱们的电费收入(即升高 OPEX 老本)。

为此咱们在 IO 调度层减少基于硬盘 Spin-up、Spin-down 的调度算法。用来升高在高密度机型的冷存储场景下大量硬盘空转的电力节约。

这里整体的调度算法须要思考的因素很多,咱们首先依据故障域把 JBOD 中的磁盘分成若干个磁盘组,保障在适当的 EC 条带以及 JBOD 个数下,可能容忍磁盘以及 JBOD 层面的故障,之后 Spin up-down 的操作都基于磁盘组为单位进行操作。

同时咱们须要思考在满足用户紧急读取需要的同时保障硬盘的 Spin up-down 次数在肯定的范畴之内,这里咱们将硬盘使用寿命内的可操作高低电次数均匀到每天每小时,在算法上保障磁盘的每次 Spin up-down 会有肯定的冷却工夫,而用户的一般读再通过失常的轮询上电的工夫片内进行读取,这样既能够升高用户的应用老本也保障了用户数据在硬盘应用形式层面的可靠性。

除了可靠性下面的思考,咱们也须要保障写入的性能是否可能吃满咱们的硬件,因为 SMR 盘以及业务逻辑的特殊性咱们的写入包含之后的 Compaction 都是大量程序写入,所以咱们配合 EC 条带的大小保障一个磁盘组的写入数据带宽能够吃满咱们整体设施的网卡带宽,这样在性能上就不会有额定的节约。

写在最初

基于上述进步磁盘存储密度以及升高经营老本(即电费)两个次要方面的设计思考,咱们研发了 US3 归档存储的底层存储引擎(如上图所示),在大幅升高 US3 归档存储老本的同时,保障了在归档存储这种长期冷存储下的数据高可靠性。

后续 US3 归档存储会持续从各个方面晋升产品的应用体验,例如更加便捷主动的数据降冷处理,更加智能化的升高存储老本,让用户充沛享受 UCloud 技术创新带来的价格红利。还会摸索深度归档场景下磁带等其余存储介质的应用,让用户不必与简单的底层硬件进行间接的交互,就能满足海量冷数据存储的需要。

退出移动版