没有掉电保护会发生什么问题?如果发生异常掉电时,SSD没有电容来做掉电保护。可能发生的问题如下:
1. SSD重新连接后不识别。因为映射表来不及保存到NAND中,重新上电后,有的时候30分钟静置大法可以恢复过来,更有很大可能救不回来,只能重新开卡。
2. GBB增加。突然掉电时,如果正在读写数据,有些单元可能会发生电压偏移,如果超过ECC等校验能力,就会标为坏块。
3. 丢失缓存数据。缓存一般是电容元件,掉电不保持数据。数据在缓存中还没来及写入到NAND中,掉电时就会丢失。
SSD上电流程:
1.初始化PCIe
2.加载NVMe驱动
3.配置NVMe的Admin Queue
4.NVMe Controller Reset
5.Host发送admin命令identify/set-feature等获取盘信息
6.根据盘信息创建字符设备,字符设备初始化。这里我们 就能在/dev下看到字符设备nvme*
7.创建块设备。创建IO CQ和IO SQ,发送idenfy namespace枚举所有的namespace,并初始化。这时我们就能在/dev下看到块设备nvme0n1,nvme0n2等等。就能通过IO命令对块设备进行数据读写了。
SSD正常下电流程:
带DRAM的SSD:企业级和高端的消费级SSD都是有DRAM的,主要作用是暂存映射表,通常是SSD容量的千分之一。为什么是千分之一?请参考另一篇地址映射的文章,4Bytes的地址映射到4k的物理数据,这里不具体展开讲了。
1.把用户数据写入NAND。