今天小编分享的科技经验:两大绝招!华为将磁碟寿命提升一个量级:延长30-50%,欢迎阅读。
快科技 6 月 29 日消息,如今的 磁碟 容量越做越大,企业级 磁碟 容量已达 30TB、60TB 的、甚至 120TB。但 磁碟 寿命一直是 " 致命伤 ",越大容量的盘,出现故障后,丢失的数据就越多。
近日, 华为数据存储发文,揭开华为全闪分布式存储让 磁碟 大盘更 " 长寿 " 的秘诀。
首先,为什么 磁碟 会有寿命问题?
磁碟 闪存实际是由半导体元件、NAND Flash 颗粒组成。通过对盘上颗粒不断的擦和写,来完成对数据的增、删、改、查。
这个过程中,颗粒捕获电子的能力会逐渐减弱,当减弱到一定程度后、也就是超过颗粒最大擦写次数,便可能出现 " 电子逃逸 " 现象,也就是硬碟写穿、数据错误、寿命耗尽。
盘上全部颗粒可支持的总擦写次数 和 使用期间用户写入的数据量。只要后者小于前者,那么就能保证寿命无忧!
因此,下面这个公式就能一目了然:
所以,想延长 磁碟 寿命,就要减少 " 写放大 "。
为了降低分母,就要减少罪魁祸首—— " 写放大 "。写放大的意思是,比如,在写入 16KB 的业务数据时,呈现到盘上却变成写入 64KB 物理数据量,被放大了,消耗了数倍的擦写次数,加速颗粒老化。" 写放大 " 的源头来自于以下三点:
后台垃圾回收
磁碟 是无法覆盖写的,要想修改数据必须擦除颗粒、重新写入,Block 就是擦除的最小单元。当少量数据修改时, 磁碟 就会将原 Block 上的全部有效数据读取后,写入新的 Block 位置,再擦除原 Block。
这个过程,就像整理房间一样,要先把老房间的东西全部搬出来,再放到新房间里重新布置。换句话说,少量的数据更新,会引发更大面积颗粒的擦写。
小 I/O 补齐
磁碟 可读写的最小单元是 Page(一般是 512 个 byte)。在用户层面写入数据时,当用户写入的 I/O 大小不足一个 Page 容量,为了能管理它,就需要额外寻找另一份数据,来和原数据拼凑成一整个 Page 的大小,再写入到颗粒中。" 这个不够、别的来凑 ",这用来凑齐的无效数据,就会造成写放大。
元数据变化
在 磁碟 上,元数据是描述数据的索引,一般紧密地存放在一些 Block 区網域。当用户在频繁修改数据时,对应的每份元数据也必须跟着被修改、重定向,造成多次读写、擦写,牵一发而动全身。
华为 OceanStor Pacific 分布式存储采用了一个创新的机制——小 I/O 聚合,将小 I/O 在写盘前聚合在保电内存中,只有达到一定粒度后才会写入 磁碟,消除了小 I/O 补齐导致的写放大。
这对元数据变化也非常友好。聚合后的小 I/O 更容易被集中修改,极大减少元数据被频繁擦写的概率。
同时,华为还采用了业界独创的多流技术,即智能识别数据的冷热程度并优化数据布局,减少不必要的重复擦写和数据搬移。
除了分母,也要增大分子。华为是采用额外的编码纠错技术,在达到颗粒的标称擦写次数后,对数据持续校验或修正,彻底避免数据错误、业务出错,变相地增大了颗粒的总擦写次数。
华为开发了一套更加强大的组合拳—— LDPC(Low Density Parity Check)算法与 SmartFSP 3.0 算法,一方面对 Flash 介质进行监测,寻找更精确的读取电位,另一方面保证高性能的校验纠错性能,提供更加精准的盘内冗余纠错精度。
一个纠得正,一个查得准,二者配合,华为就将 磁碟 数据的误码率从 10-17 降低至 10-18,整整降低一个数量级,延长 30~50% 的 磁碟 寿命。