如果我在 6 个月内每小时重新启动 SSD 驱动器,会对 SSD 驱动器产生负面影响吗?

Pat*_*cus 32 linux ssd power-management samsung-ssd reliability

我们有一个使用 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。

saw*_*ust 25

我建议您重新评估如何控制驱动器的电源,而不是回答您的问题。您是否考虑了直接控制电源功能所增加的硬件成本和寄生功耗?

\n

SoC 通过禁用设备时钟来节省电量,而不是禁用设备电源。该设备不会拒绝供电,而是进入睡眠状态,并通过消耗(要求)更少的电量来做出响应。因此,不要关闭驱动器的电源,而是看看是否可以使驱动器进入睡眠状态。请参阅设备睡眠 (DevSleep) \n使用驱动器的低功耗模式可消除任何外部电源开关硬件,并将节省电力的责任转移给驱动器本身。据推测,这种驱动力可以维持重复的睡眠-觉醒周期。

\n
\n

降低功耗和延长电池寿命的需求是当今\xe2\x80\x99 移动设备的关键部分。为了满足这种新环境中日益严格的电源/电池寿命要求,SATA 接口正在不断发展。DevSleep 是 SATA 规范的新成员,它使基于 SATA 的存储解决方案达到低功耗运行的新水平。

\n
\n
\n

DevSleep 规范并未说明设备在 DevSleep 状态下将达到什么功率级别,但 SSD 的目标功率为 5mW 或更低。

\n
\n

  • 是的,这不是问题的答案,但现代 SSD 具有多个级别的省电功能,其中最低功耗级别可能接近“断电”。 (8认同)

Cpt*_*ale 15

是的,电源周期是 SSD 的磨损因素,并在内部智能监控中以“电源周期计数”进行跟踪。只有制造商才能说多少太多,但企业级驱动器设计为 24/7 全天候供电,温度一致,并使用干净的电源。超出这些界限越远,您的驱动器就越不可靠。

也就是说,较长的安装时间并不是 SSD 磨损的常见症状,除非与读/写错误相匹配。如果 SSD 在安装后工作正常,则很可能是操作系统级别的某些问题导致安装操作花费更长时间 - 尽管原因可能因操作系统、固件、文件系统等而异。

  • @PierU 一个示例并不完全是我用来支持这一声明的示例。FWIW 100 标准化值可以简单地硬编码。 (3认同)
  • @JoepvanSteen 当然,但问题不在于我的驱动器仍然没问题,而是供应商显然不认为 8597 个电源周期计数是一个问题。否则属性不会是 100。 (3认同)
  • @JoepvanSteen 我也有一个 12 年的 HDD,电源周期计数为 25334。标准化属性为 75。 (3认同)
  • @JoepvanSteen 我认为假设 100 是硬编码的情况是合理的,这是因为供应商认为电源周期本质上是无害的。 (2认同)
  • 哪里有证据表明每小时功率循环是一个重要的磨损因素?正如其他人所指出的,低功耗模式通常作为本地电源循环来实现。我怀疑它们被包含在智能监控中是出于诊断目的,而不是因为它们是磨损因素。例如,SMART 监控包括寻道时间性能,这不是磨损因素(可能是磨损的*结果*,就像功率循环可能由磨损*结果*一样)。此外,链接的文章没有提供电源周期计数的目标值。 (2认同)

bob*_*ito 14

不,没有充分理由让您的 SSD 仅仅经过 7,000 次电源循环就磨损。

但是,如果空时挂载需要 12-22 秒,那么满时挂载的时间可能会增加两倍(很难说驱动器需要做什么才能报告自己已准备好,但该活动可以轻松地随着例如,文件计数)。您没有提到如何随着时间的推移填充驱动器,但您可以尝试保存每个驱动器的安装时间与启动计数。我猜您会看到每次启动时安装时间逐渐增加,更多细节应该提供线索来帮助更好地解释这一点。

  • 如果您可以测量设备上的安装时间,则可以保持滚动平均值,并设置软上限,不超过最后 10 次安装的 120% (6认同)
  • “不,您的 SSD 没有充分理由因为仅 7,000 次电源循环就磨损。” - 也许,可能,但至少部分问题的要点不是要获得有关该主张的一些引用吗? (6认同)

har*_*ymc 10

当功率从 0% 变为 100% 时,打开电气设备相当于产生电涌。开机是电子设备最危险的操作,这也是为什么开机时经常检测到硬件问题的原因。

所以,是的,存在负面影响,但对于优质 SSD 来说,需要大量的电源周期才能看到效果。

SSD 通过硬件或固件 PLP(断电保护)来防止断电。SSD 中的 PLP 多年来不断改进,因此驱动器越新,就越有可能受到最新 PLP 技术的保护。三星860 Pro似乎是2018年推出的,所以并不是最新的技术。

我不相信任何 SSD 公司都会对最大电源回收次数进行评级,尽管所有制造商都会测试他们的 SSD 以确保一定的弹性。

例如,我发现 ATP SSD经历了使用四角、温度循环和电源循环测试来验证 SSD 对极端操作条件的耐受性 一文中描述的测试方案 ,其中如果磁盘可以承受 4000 个这样的循环,则通过。除以 365 天,这意味着对于每天打开一次的典型消费类计算机来说,其使用寿命将超过 10 年。

您的磁盘经历的电源周期比 ATP 视为所需性能上限的 4000 次要多得多,因此您基本上处于未知领域。

  • 这是最好的答案,但是有一件事没有人谈论过。当通电时,芯片会升温并膨胀。关闭电源后,它们会冷却并收缩。这会导致轨道出现弱点,从而可能发生故障。当我在苏格兰的 DEC 芯片制造厂工作时,有人向我解释过这一点。 (6认同)
  • @Patratacus:请记住,并非所有磁盘都是平等创建的,即使是相同型号的磁盘也是如此。 (3认同)

907*_*997 9

首先,重要的是要认识到此处可能发生“损害”的 3 个不同层:

  1. 硬件:某些物理组件损坏。这对于旋转磁盘来说很有意义,这就是为什么电源周期计数是一个 SMART 指标,但这不是旋转磁盘。我们无法确定电源循环是否对 SSD 硬件有害,但根据我使用电子产品的经验,我认为这种情况极不可能发生。SSD 由固态组件组成,它们(大多数)不关心您对其进行电源循环次数。电阻不关心。对晶体管和电容器的影响可以忽略不计。当突然切断电感器的电源时,电感器会产生电压尖峰,但任何好的设计都会考虑到这一点。
  2. 固件级设备状态:诸如坏扇区重定位之类的东西。SSD 已经变得复杂。固件会在你背后执行各种把戏,而 SSD 固件的错误是出了名的。例如,如果您的 SSD 在断电时恰好处于写入过程中,则可能会以某种方式将扇区标记为坏扇区。许多 SSD 还具有分层存储,其中写入操作会持久保存到操作系统不可见的小缓冲区中。这使得 SSD 能够更快地重新排序写入并将写入报告为“持久存储”。也许该系统中的某些东西因所有电源周期而变得混乱。如果发生这种情况,您也许可以使用“ATA 安全擦除”或“NVMe 安全擦除”来修复它(这会删除驱动器上的所有内容)。也就是说,我认为这不太可能成为问题。
  3. 软件级设备状态:又称为文件系统。在 SSD 上挂载文件系统大约需要 1 秒,而不是 12-22 秒。这表明文件系统可能没有完全卸载。许多文件系统在安装未完全卸载的设备时必须采取某种恢复操作。这通常涉及“遍历”文件系统以确保一切都有效。随着文件系统上的数据增多,速度会变慢。其他文件系统保留它们正在执行的操作的“日志”,因此它们只需检查正在处理的文件系统的部分(如果某些内容被完全卸载)。其他文件系统(基本上)没有适当的保护措施,并且安装速度非常快,即使损坏了也是如此。

我认为你的问题存在于#3。有几种方法可以测试这一点:

  • 如果您重新格式化驱动器,速度会再次加快吗?如果是这样,你就遇到了第三个问题。
  • 如果您将分区从“坏”驱动器逐字节复制到新驱动器(安装它并允许操作系统清理任何内容),它仍然很慢吗?如果是这样,你就遇到了第三个问题。
  • 如果您在安装驱动器时监视磁盘 I/O,您是否会看到大量活动?如果是这样,您可能遇到了#3 问题。

  • 我实际上希望OP的问题是你的第二个问题。SSD 固件需要一段时间才能从持久存储中恢复其元数据,并填充在意外断电或断开连接后出现的任何空白,尤其是在写入扇区时关闭的情况下。无论如何,OP 需要发出适当的卸载,其余部分取决于用于操作 SSD 的驱动程序,是否检测到 SSD 需要特定的(SATA?)命令来停止启动其存储,因为它即将关闭,或者刚刚发布了一份以防万一。 (2认同)

Joe*_*een 6

关于可接受的电源周期数:我找不到这方面的数据。

但我怀疑这是否重要。我倾向于相信任何突然的电源中断都可能在某种程度上损害设备。

SSD 几乎不会无所事事

完成写入并不意味着 SSD 已完成写入,正如其他人已经建议的那样,SSD 往往会在“空闲时间”执行各种后台任务(垃圾收集、磨损均衡、清理)。因此,拔掉插头可能会使 FTL 处于不一致的状态。

拔掉插头确实会造成一定程度的伤害

到目前为止,您似乎还没有回答如何禁用 SSD 电源或如何“关闭它”的问题。如果您“拔掉插头”或“打开开关”,您确实可能会在某种程度上损坏 SSD。这些说法是可以得到研究支持的。

本文通过测量闪存操作期间断电时发生的错误类型来检查数据完整性的一个方面。我们的研究结果表明,断电可能会导致多种非直觉行为。

除了 FTL 级别的损坏之外,文件系统也不能免受电源中断的影响。我想每个 PC 用户都从个人经验中知道这一点。

驱动器在 x 秒内未安装并不意味着它出现故障

正如操作系统试图从不干净的关闭中恢复或至少检查“脏”文件系统一样,我们可以假设 SSD 的固件也会做类似的事情。这些检查需要时间。例如,一些制造商建议给 SSD 5 分钟左右的时间来执行这些操作。

无论驱动器是否可见,都让它处于这种状态至少五分钟,以便 SSD 重建其映射表,然后重新启动系统并查看驱动器是否已恢复。

在数据恢复行业中,众所周知,“变砖”的 SSD 可以通过在连接电源、断开数据线的情况下静置一段时间来自行恢复。我知道一些极端的案例,SSD 在通电 24 小时后又恢复了活力。但也有一些情况是固件发生故障,导致控制器甚至无法访问 NAND。在某些时候,控制器必须从 NAND 本身读取固件,如果固件损坏太多,它通常会恢复正常,但容量会减少。

没有有关实际故障模式的信息

根据定义,您的设备在 x 分钟内未安装并不意味着 SSD 已发生最终故障。您的设备在 x 分钟内未“安装”也很少告诉我们有关故障模式的信息:是文件系统问题、固件问题还是硬件问题?

回到 SD 卡?

有趣的是,您之前使用的 SD 卡比更复杂(在很多方面)的 SSD 能够更好地处理突然断电的情况。如果您需要一个只需翻转开关即可的系统,您的选择可能是切换回 SD 卡或切换到更昂贵的 SSD,并以“超级电容器”阵列的形式提供物理断电保护。

无声数据损坏可能是您应该担心的

最后,每次突然断电的情况都很糟糕,并且可能会在没有任何实际硬件组件故障的情况下损坏 SSD,但即使没有发生故障,它也可能会损坏您的数据,如果不引起注意,这可能是一个更严重的问题。

位损坏袭击了 3 台设备;3 有被删减的写入;8 有可序列化错误;一台设备丢失了 1/3 的数据;和 1 个 SSD 变砖。低端硬盘有一些不可序列化的写入,而高端硬盘没有电源故障(测试:15个硬盘)


编辑因为编辑问题。

“我们依靠电池运行,因此电力使用非常有限。”

我认为这是否是问题的根源值得调查。因此,请测试相同的设置,但现在使用墙壁电源。编辑:这是经过调查的,而不是问题

“卸载过程是先卸载驱动器,然后关闭电源。在卸载和关闭电源之前,我们验证了数据已完全写入。”

我不相信这是正确的方法,因为卸载不会告诉 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)供电。