我们有一个使用 SSD(4TB Samsung 860 Pro)的系统,我们通过 Linux 系统打开电源 10 分钟以写入数据,然后每小时关闭一次,每天 24/7,持续大约六个月。我们手动打开驱动器的电源并等待操作系统查看已安装的驱动器。这通常需要 12 秒到 22 秒才能完成。如果驱动器在等待挂载 30 秒后仍未显示,我们将认为挂载失败。我们第一次这样做时,一切都工作正常。我们使用相同的驱动器进行了第二轮,但在我们运行的 5 个系统之间大约 1 个月到 3 个月后,驱动器在 30 秒内停止安装。
基本上,在第一轮中,驱动器将打开和关闭至少 4,320 次。由于驱动器在第二轮测试中无法一致安装,总电源周期似乎在 5,000 到 7,000 次之间。如果您等待超过 30 秒,所有驱动器仍在工作,但它们被认为不再可靠地安装在我们的系统中。
我似乎找不到任何有关电源循环的 SSD 驱动器规格以及这样做是否有限制。我们购买 4TB 860 Pro 驱动器时非常昂贵(> 1,000 美元),据说非常可靠,具有非常高的编程/擦除 (P/E) 周期。但是,没有有关电源循环的规格。
频繁的电源循环对于 SSD 驱动器来说是一件坏事吗?我知道大多数人可能不会这样做,并且驱动器每天可能不会重新启动超过一次。我们基本上在 6 个月内完成了 12 年的日常动力循环。
编辑 1(来自评论的附加信息):我们使用电池运行,因此电量使用非常有限。
编辑 2(来自评论的附加信息):SSD 驱动器使用修改后的 USB 3 转 SATA 电缆连接到 RPi 2B v.1.2。我们有一个外部电源控制器来打开和关闭电缆的电源。基本上,Pi 打开 SSD 的电源,然后监视 SSD 是否连接到特定的 USB 端口,然后尝试安装驱动器。这是通过 bash 脚本完成的,它会运行一个延迟 1 秒的安装循环,直到可以访问 SSD。我们给它最多 30 个循环计数(安装失败后每次延迟 1 秒)。
编辑3(来自评论的附加信息):卸载过程是卸载驱动器,然后关闭电源。我们在卸载和断电之前验证数据已完全写入。数据大小是压缩文件,通常约为 1.2GB 到 1.6GB。通常一小时内只是一个文件,从 SD 卡上的原始数据压缩文件并将其传输到 SSD 大约需要 10 分钟左右。因此 SSD 在关闭前会开启 10-12 分钟。
编辑 4 检查更多驱动器后,我发现一个驱动器已经进行了超过 13,000 次电源循环,并且仍然按照我们想要的方式安装。我正在等待恢复故障驱动器,看看它们的计数是多少。我们知道我们在之前的运行中至少使用过它们 2 次,因此我预计每次运行都会超过 10k 次电源周期。
编辑 5 SSD 上的文件类型为 Ext4。
我建议您重新评估如何控制驱动器的电源,而不是回答您的问题。您是否考虑了直接控制电源功能所增加的硬件成本和寄生功耗?
SoC 通过禁用设备时钟来节省电量,而不是禁用设备电源。该设备不会拒绝供电,而是进入睡眠状态,并通过消耗(要求)更少的电量来做出响应。因此,不要关闭驱动器的电源,而是看看是否可以使驱动器进入睡眠状态。请参阅设备睡眠 (DevSleep) 使用驱动器的低功耗模式消除了任何外部电源开关硬件,并将节能的责任转移给驱动器本身。据推测,这种驱动力可以维持重复的睡眠-觉醒周期。
是的,电源周期是 SSD 的磨损因素,并在内部智能监控中以“电源周期计数”进行跟踪。只有制造商才能说多少太多,但企业级驱动器设计为 24/7 全天候供电,温度一致,并使用干净的电源。超出这些界限越远,您的驱动器就越不可靠。
也就是说,较长的安装时间并不是 SSD 磨损的常见症状,除非与读/写错误相匹配。如果 SSD 在安装后工作正常,则很可能是操作系统级别的某些问题导致安装操作花费更长时间 - 尽管原因可能因操作系统、固件、文件系统等而异。
不,没有充分理由让您的 SSD 仅仅经过 7,000 次电源循环就磨损。
但是,如果空时挂载需要 12-22 秒,那么满时挂载的时间可能会增加两倍(很难说驱动器需要做什么才能报告自己已准备好,但该活动可以轻松地随着例如,文件计数)。您没有提到如何随着时间的推移填充驱动器,但您可以尝试保存每个驱动器的安装时间与启动计数。我猜您会看到每次启动时安装时间逐渐增加,更多细节应该提供线索来帮助更好地解释这一点。
当功率从 0% 变为 100% 时,打开电气设备相当于产生电涌。开机是电子设备最危险的操作,这也是为什么开机时经常检测到硬件问题的原因。
所以,是的,存在负面影响,但对于优质 SSD 来说,需要大量的电源周期才能看到效果。
SSD 通过硬件或固件 PLP(断电保护)来防止断电。SSD 中的 PLP 多年来不断改进,因此驱动器越新,就越有可能受到最新 PLP 技术的保护。三星860 Pro似乎是2018年推出的,所以并不是最新的技术。
我不相信任何 SSD 公司都会对最大电源回收次数进行评级,尽管所有制造商都会测试他们的 SSD 以确保一定的弹性。
例如,我发现 ATP SSD经历了使用四角、温度循环和电源循环测试来验证 SSD 对极端操作条件的耐受性 一文中描述的测试方案 ,其中如果磁盘可以承受 4000 个这样的循环,则通过。除以 365 天,这意味着对于每天打开一次的典型消费类计算机来说,其使用寿命将超过 10 年。
您的磁盘经历的电源周期比 ATP 视为所需性能上限的 4000 次要多得多,因此您基本上处于未知领域。
首先,重要的是要认识到此处可能发生“损害”的 3 个不同层:
我认为你的问题存在于#3。有几种方法可以测试这一点:
关于可接受的电源周期数:我找不到这方面的数据。
但我怀疑这是否重要。我倾向于相信任何突然的电源中断都可能在某种程度上损害设备。
SSD 几乎不会无所事事
完成写入并不意味着 SSD 已完成写入,正如其他人已经建议的那样,SSD 往往会在“空闲时间”执行各种后台任务(垃圾收集、磨损均衡、清理)。因此,拔掉插头可能会使 FTL 处于不一致的状态。
拔掉插头确实会造成一定程度的伤害
到目前为止,您似乎还没有回答如何禁用 SSD 电源或如何“关闭它”的问题。如果您“拔掉插头”或“打开开关”,您确实可能会在某种程度上损坏 SSD。这些说法是可以得到研究支持的。
除了 FTL 级别的损坏之外,文件系统也不能免受电源中断的影响。我想每个 PC 用户都从个人经验中知道这一点。
驱动器在 x 秒内未安装并不意味着它出现故障
正如操作系统试图从不干净的关闭中恢复或至少检查“脏”文件系统一样,我们可以假设 SSD 的固件也会做类似的事情。这些检查需要时间。例如,一些制造商建议给 SSD 5 分钟左右的时间来执行这些操作。
在数据恢复行业中,众所周知,“变砖”的 SSD 可以通过在连接电源、断开数据线的情况下静置一段时间来自行恢复。我知道一些极端的案例,SSD 在通电 24 小时后又恢复了活力。但也有一些情况是固件发生故障,导致控制器甚至无法访问 NAND。在某些时候,控制器必须从 NAND 本身读取固件,如果固件损坏太多,它通常会恢复正常,但容量会减少。
没有有关实际故障模式的信息
根据定义,您的设备在 x 分钟内未安装并不意味着 SSD 已发生最终故障。您的设备在 x 分钟内未“安装”也很少告诉我们有关故障模式的信息:是文件系统问题、固件问题还是硬件问题?
回到 SD 卡?
有趣的是,您之前使用的 SD 卡比更复杂(在很多方面)的 SSD 能够更好地处理突然断电的情况。如果您需要一个只需翻转开关即可的系统,您的选择可能是切换回 SD 卡或切换到更昂贵的 SSD,并以“超级电容器”阵列的形式提供物理断电保护。
无声数据损坏可能是您应该担心的
最后,每次突然断电的情况都很糟糕,并且可能会在没有任何实际硬件组件故障的情况下损坏 SSD,但即使没有发生故障,它也可能会损坏您的数据,如果不引起注意,这可能是一个更严重的问题。
编辑因为编辑问题。
“我们依靠电池运行,因此电力使用非常有限。”
我认为这是否是问题的根源值得调查。因此,请测试相同的设置,但现在使用墙壁电源。编辑:这是经过调查的,而不是问题
“卸载过程是先卸载驱动器,然后关闭电源。在卸载和关闭电源之前,我们验证了数据已完全写入。”
我不相信这是正确的方法,因为卸载不会告诉 SSD 停止其后台处理,因此它可能仍在写入,并且这种突然断电可能会损坏 FTL。但我既不是 Pi 也不是 Linux 人。如需灵感,请参阅此答案。
“我发现一个已经进行了超过 13,000 次电源循环,并且仍然按照我们想要的方式安装”
这不是有用的信息,一个可能在 n 个电源周期后失败,另一个可能在 m 个电源周期后失败,下一个在第一次后失败。下一个可能会因完全不同的原因而失败。然后我们还有品牌、型号、固件版本等等需要考虑。
编辑对评论的反应: “听起来这可能是不安全关机的答案:echo 1 | sudo dd of=/sys/block/sdX/device/delete”
根据我在不同情况下使用 SSD 的经验,我倾向于相信这就是您应该探索的:SSD 的优雅断电。
除了发送直接 ATA 命令之外,可能还存在一些可以为您执行此操作的工具。这就是我的“励志链接”的目的。优雅卸载还不够,它需要是一个命令,告诉驱动器断电,停止其内部管理活动。
一个额外的障碍可能是 USB > SATA 转换:发送正确的命令本身并不意味着 USB 桥会将命令传递到 SATA 驱动器。再次根据经验,在我看来,USB > SATA 适配器传递命令的最佳机会是它由 Asmedia 控制器(ASM1153、ASM1051)供电。
这完全是预料之中的事。现代 SSD 具有磨损均衡功能,这意味着它们会物理地移动逻辑块。当操作系统不写入时,这通常作为固件中的低优先级后台任务完成。由于这种磨损均衡,SSD 需要存储逻辑物理块映射。它也存储在闪存中。
写入单元时,闪存还需要 250 毫秒的稳定电源。这被固件隐藏了,在一系列写入中,这意味着您只需在最后一次物理写入后通电 250 毫秒 - 但这确实包括块映射。
由于您在没有警告的情况下关闭设备,因此存在损坏块映射的风险。根据固件的不同,SSD 可能能够恢复部分或全部映射。但每次在 SSD 进行磨损均衡时关闭它,您都会面临磁盘完全故障的风险。
恢复出厂设置可能允许固件丢弃整个块映射并生成新的块映射。如果是这种情况,您所损失的只是因断电而损坏的闪存块的一些容量。
长话短说
阅读有关电子产品中的热循环故障的内容,并查看这张焊料热疲劳的酷图。
您只对 SSD 进行电源循环,对吧?不是整个系统?
手动??你是否以负值来衡量自己的价值?
与该问题相关的一些经验:
电源循环的特定模式可能会也可能不会不好,具体取决于电源总线的设计。通常还不错。
如果由于电源循环本身而出现故障,它不会逐渐或优雅地出现故障。它失败了,期间。
SSD 在开机和闲置时会执行大量内务工作。这包括但不限于擦除数据不再有效的块(即覆盖或修剪)以及将最近写入的数据从缓冲SLC移动到永久存储MLC块。可能还有其他后台任务。如果做不到这一点,SSD 的性能确实会下降。
(可能与您的安装时间有关)我们观察到,长时间使用后,不同知名品牌的 SSD 的读写性能都会降低 3-5 个数量级。我们无法确定导致性能损失的特定使用模式,但这肯定不是大的顺序写入。在读取方面,磁盘在特定的 LBA 范围内会出现“慢点”,并且从中抢救数据会变得很痛苦。另一方面,到目前为止还没有数据丢失。第三方面,磁盘在“安全擦除增强”之后至少暂时恢复性能,然后在“安全擦除增强”命令广告的时间内保持单独状态(通电)。