我已经创建了一个带有 4 个 SSD 的 mdadm RAID 10。其中 2 个 SSD 是消费级型号,没有断电数据保护功能。
在创建 RAID 时,我在每个 RAID 1 对中放置了 1 个具有电源保护的 SSD。因此,每个 RAID 1 对都有一个消费级 SSD 和一个企业级 SSD。
如果服务器发生电源故障,断电保护将如何影响文件系统或 RAID 一致性?我可以想象,RAID 不再同步,因为具有电源保护的 SSD A 具有比 SSD B 更多的(较新的)内容。
在这种情况下,断电保护会造成更多损坏或问题吗?
答案1
是的,您可能会遇到数据丢失的情况。真正的断电保护意味着 SSD 上有电容器。这就是企业级产品应该具备的功能,或者是一种同样可行的替代机制。
任何 SSD 都应该具有某种针对 FTL(闪存转换层)损坏的保护,否则整个 SSD 将受损,导致数据完全丢失。
标准 SSD 使用一种称为“日志记录”的技术来防止其 FTL 损坏。这意味着,在突然断电时,SSD 实际上会恢复到较早的状态,这与刷新缓存命令相冲突。在客户端计算(台式机、笔记本电脑)中,定义了两种类型的数据:“静止数据”(已物理保存到存储介质的数据)和“飞行中数据”(待处理写入 - 从主机发送到驱动器但尚未提交到存储介质的写入,或正在进行但尚未完成或在缓存中的任何写入)。如果发生断电,“飞行中数据”将消失。
在企业级 SSD 中,电容电路使 SSD 能够自我保护,完成待处理/正在进行的写入。容量也足以确保 FTL 寻址表正确保存到 NAND。
所以,回到你的情况,在意外断电的情况下,企业级 SSD 将设法写入所有内容并且不会丢失任何数据,而另一个可能会丢失数据。这将导致 RAID 不一致。
你应该做的是将标准磁盘阵列配对为一个阵列,将企业级磁盘阵列配对为另一个阵列。将关键数据保存在受保护的磁盘阵列上,而将所需数据(和页面文件)保存在标准磁盘阵列上。