SSD数据保护的原理

SSD,即固态硬盘,随着协议与存储器技术的发展,被广泛应用于诸多领域。 对比传统的机械硬盘基于物理结构、接口协议、读写原理不同,在数据读写的异常保护上,也有了新的方案。


数据保护对比


1. 文件系统介绍

即操作系统用以管理数据的模块单元,用以组织数据在存储介质上的存储方式以及检索方式的,常规的文件系统包括:FAT、FAT32、NTFS、ExtFAT、HFS/HFS、Ext2、Ext3、Ext4等,文件系统在管理文件数据有一个最小的数据元,即一次操作的最小单元数据,通常情况大小是512 Bytes,也叫扇区(sector)。


2. 机械硬盘介绍


微信图片_20240308113742.png

图 1 磁盘数据结构


传统的机械硬盘,盘区被划分成一个一个圆环,每一个圆环就是一个磁道,圆环上的一段就是扇区,一个扇区模默认大小是512字节,也就是一个Sector,读写过程靠机械摆臂移动磁头到指定的磁道位置。

    由于其最小单元与文件系统的最小单元一致,因此在读写过程中出现掉电等异常,通常的保护措施是保证摆臂的位置还原,并减少因为摆臂动力丢失而划伤磁道,并保证下一次上电寻道操作的正常进行。

3. SSD介绍

    与传统机械硬盘不同,SSD的结构非常的简单,由控制器及存储器组成,没有了复杂的机械结构,但在数据读写的保护上,需要有一套截然不同的方案,来保证异常场景下的数据恢复,而这种方案的产生主要是由于存储器件的特性使然。

    SSD的存储器件主要是一种浮栅结构的非易失存储器NAND,具有容量读写速度快的特点,但是与传统机械硬盘不同的是,这种存储器的最小操作单元是Page,在数据不满一个PAGE的情况下,通常不会立刻写入到NAND内,这个page的大小在4K到16K不等,而这个最小单元也只与存储器本身特性有关,与文件系统的最小单元几乎完全独立,因此就需要一种叫FTL数据映射技术。


微信图片_20240308113858.png

图 2 FTL 映射表


FTL管理着逻辑地址到NAND的物理地址的映射关系,而这种映射关系常驻在另一种存储器DRAM内,它的读写速度更快,但却是一种易失存储器,即掉电丢失,因此,在发生异常掉电后,FTL的这种映射关系也会随之丢失,导致SSD出现数据一致性的问题,即是常说的数据丢失。


如何解决因为异常掉电出现的数据丢失?


1.电容保护

微信图片_20240308113901.png

图 3 电容保护

    这种方式能保证SSD在掉电后依旧能工作一小段时间,这个时间通常是毫秒级的,在这个时间段内,控制器软件会对关键数据进行进行快速保存,保证数据的一致性。

    但是在短短几毫秒的时间里保存所有的关键数据是否可能实现?

    答案是不行,一方面由于关键数据的数据量巨大,另方面在于电容能不能保证在每一次掉电都有绝对固定的时间来保证关键数据的保存?答案是否定的,原因在于电容作为消耗品,随使用时间的增加,能够提供的电量也是有波动的,因此为了保证在下一次上电数据的正确性,需要有其他技术方案来保证。


2. 数据扩展信息(META元数据)


微信图片_20240308113905.png

在电容完全无法解决的问题上,就需要对数据进行元扩展,并以软件的手段对数据进行恢复。

通常方案,对数据元扩展在一个数据单元下进行,这个单元基于不同方案可能有4k,16k,32k等,而这个单元的大小也是操作系统可知的,并且这个单元也只在SSD的FTL层可见,在SSD收到操作系统数据后(LBA为单位,一个Sector),会对数据进行整合,变成成一个数据单元(LPN),4k(或更大),在这些数据单元在拼装成NAND的一个PAGE大小后,便会被写入到NAND内,但是,随之写入的不仅仅是有效数据本身,还有这些数据的META信息。

因此,一旦写入到NAND内,每笔数据即附带了各自的META信息,它也为我们在异常掉电后的数据恢复提供了基础;

这些META信息包含哪些数据?

通常情况这些扩展信息必然包含数据元的逻辑地址,及元数据的时间戳,其他信息基于方案的不同,会有差异。

是否有了META信息,数据恢复就能完美进行?

答案也是否定的,通常的以4K为单位的SSD在数据恢复过程中仅依靠META信息进行显然是不行的,由于SSD容量巨大,要恢复完全,它的时间是系统上电无法忍受的,因此就需要另外一种加速方案;

3. 物理逻辑映射层(PTL)

不同于FTL的LTP(逻辑映射表),PTL记录了每个元数据的物理到逻辑的映射关系,它们存放在NAND的每个数据块的固定位置,上电恢复过程中只需逐个读取这张映射表,即可达到快速恢复FTL映射表的目的,通常与直接读取元数据相比有了几百甚至千倍的速度提升。

4. 时间戳(TAG)

数据的恢复还要依赖的一个扩展信息便是时间戳,它记录每笔元数据的写入顺序,依照这个时间戳的顺序,数据重建过程才能有序进行,如果没有时间戳,重建便会变得无序,数据以及映射表的重建也无从谈起。


微信图片_20240308113908.png


到此,SSD的数据恢复基本具备了重建要素,在对元数据及PTL的读取重建后就得到了一张掉电前的最接近真实写入数据的映射表。


业务挑战
解决方案

×
项目咨询

我理解并同意按照尧云科技隐私保护和法律声明使用和传递我的个人信息,愿意接收尧云科技发送的关于产品、解决方案、服务或其他相关信息。我知道随时可以取消订阅。
×
扫一扫,了解更多
×
申请成为合作伙伴