前言
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技术创新带来的价格红利。还会摸索深度归档场景下磁带等其余存储介质的应用,让用户不必与简单的底层硬件进行间接的交互,就能满足海量冷数据存储的需要。