IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

SSD磨损数据的分析报告

Hello Database 2011-06-22 00:11:28 累计浏览 5,165 次
本机暂存

    我们都知道,SSD存在一个磨损的问题,虽然厂商提供的数据都显示企业级的SSD产品是可靠的,SSD内置的损耗均衡的算法,可以保证磨损是均衡的,不会出现反复擦写某个单元导致SSD损坏的情况。但是我们依然很担心,磨损对可靠性的影响究竟有多大?最近,我们对线上系统的SSD进行了分析,得到了一些关于磨损的数据,分享给大家。

    S.M.A.R.T.(Self-Monitoring, Analysis, and Reporting Technology)是磁盘的诊断工具,其中也包括SSD的磨损数据。但是因为我们的SSD做了RAID,因为RAID卡屏蔽了SSD的信息,所以要直接读取SSD的SMART信息有些困难。通过厂商和社区的努力,现在已经有了解决方案。

    Smartmontools是一套监控,诊断,分析SMART信息的工具包,包括两个工具:smartctl和smartd。

    目前支持的RAID卡包括以下型号:

RAID-Controller Option/

     Directive

Supported in OS
Linux FreeBSD MS-Windows NetBSD/

     OpenBSD

Solaris MacOS/

     Darwin

3ware SATA RAID controller -d 3ware,N Yes 1 Yes 2 Yes 3 ? ? ?
Areca SATA RAID controller -d areca,N Yes 4 No No ? ? ?
HighPoint RocketRAID SATA RAID controller -d hpt,L/M/N Yes 5 Yes 6 No ? ? ?
CCISS (HP/Compaq Smart Array Controller) -d cciss,N Yes 7 Yes No ? ? ?
LSI MegaRAID SAS RAID controller

     Dell PERC 5/i,6/i controller

-d megaraid,N Yes 8 Yes 9 No ? ? ?
Intel ICHxR RAID

     (Intel Rapid/Matrix Storage driver)

csmi[0-9],N

     (device name)

? ? Yes 10 ? ? ?

    我们使用的DELL服务器采用LSI的RAID控制器,包含一个Megacli的工具包,可以到LSI的官方网站上下载并安装。通过这两个工具就可以读取SSD的SMART信息了,具体方法可以参考这篇文章:利用smartctl获取Inte SSD寿命

    SSD磨损数据分析:

    SLC的SSD可以擦除10万次,MLC的SSD可以擦除1万次,Intel X25-E的官方数据:

Mean Time Between Failures (MTBF):2,000,000 Hours
Write Endurance:2 petabyte of random writes (64 GB)

    真实的状况如何呢?我们有一套数据库集群,配置如下:DELL R710,Intel X25-E(64G),硬件RAID5(512M cache),我们读取了SSD的SMART数据,主要有以下三个指标:

    1. Media Wearout Indicator

    定义:表示SSD上NAND的擦写次数的程度,初始值为100,随着擦写次数的增加,开始线性递减,递减速度按照擦写次数从0到最大的比例。一旦这个值降低到1,就不再降了,同时表示SSD上面已经有NAND的擦写次数到达了最大次数。这个时候建议需要备份数据,以及更换SSD。

    解释:直接反映了SSD的磨损程度,100为初始值,0为需要更换,有点类似游戏中的血点。

    结果:磨损1点

    2. Re-allocated Sector Count

    定义:出厂后产生的坏块个数,如果有坏块,从1开始增加,每4个坏块增加1

    解释:坏块的数量间接反映了SSD盘的健康状态。

    结果:基本上都为0

    3. Host Writes Count

    主机系统对SSD的累计写入量,每写入65536个扇区raw value增加1

    解释:SSD的累计写入量,写入量越大,SSD磨损情况越严重。每个扇区大小为512bytes,65536个扇区为32MB

    结果:单块盘40T

    从上述数据分析,SSD写入40T数据,磨损消耗仅为1%,而且基本没有坏块。这是在系统没有做任何优化的情况下,即将所有数据文件都放在SSD上的结果,这证明SSD的损耗均衡算法是很靠谱的。如果磨损是线性的,根据数据可以计算得出,单块SSD(64G)可以写入4PB的数据,与厂商提供的数据相符。而且,40T的数据大部分是系统测试时写入的,真实系统上线后写入的数据量很小,根据计算,我们的SSD如果磨损耗尽,可能还需要几十年的时间。

    我们也使用了一些MLC的SSD,比如Intel X25-M,测试结果表明,SLC耐磨损度要远大于MLC,但是也在安全的范围之内。根据我们的实践经验和数据分析,企业级的SSD还是非常可靠的,并不需要特别担心磨损的问题。

    读取SSD的SMART信息的最大的意义在于,我们能够提前检测SSD的磨损状况,发现SSD磨损即将耗尽时,可以提前更换,预防同一批次的SSD同时大规模损坏,这样就可以保证系统的可靠性。原图已失效

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. 我对技术方向的一些反思 (累计阅读 11,318)
  2. MacBook Air与工作效率 (累计阅读 10,661)
  3. SSD的主要缺陷及Wear Leveling技术详解 (累计阅读 10,166)
  4. 基于SSD的数据库性能优化 (累计阅读 8,843)
  5. Linux常用系统信息查看命令 (累计阅读 8,654)
  6. 查看 CPU, Memory, I/O and NetFlow (累计阅读 8,132)
  7. memory prefetch浅析 (累计阅读 7,456)
  8. 使用nginx记日志 (累计阅读 6,806)
  9. mac系统更换硬盘及初始化开发环境的记录 (累计阅读 6,624)
  10. Ubuntu工作机使用FlashCache技术加速 (累计阅读 6,088)