Ceph集群SSD故障检测
需求
目前在ceph的生产和测试环境中,我们通过几千块intel的DC S系列固态硬盘为ceph集群提供了后端的OSD对象存储服务的硬件底层,SSD因为其特性区别于传统的机械硬盘,在使用超过一定时间后其性能和健康状况会逐渐发生变化,故障率逐步升高。
硬盘的失效一般分为两种:可预测的(predictable)和不可预测的(unpredictable)。后者偶而会发生,也没有办法去预防它,例如芯片突然失效,机械撞击等。对于可预测的情况,如果能通过磁盘监控技术,通过测量硬盘的几个重要的安全参数和评估他们的情况,然后由监控软件得出两种结果:“硬盘安全”或“不久后会发生故障”。那么在发生故障前,至少有足够的时间让使用者把重要资料转移到其它储存设备上。
SSD的失效可能会影响集群的稳定性,影响集群对外提供业务。所以理想情况下我们想要通过提前对SSD做可预知的健康检测,来实现在SSD失效前提前发现,提前干预,降低SSD失效对整个ceph集群业务的影响性。
关键词
SMART:全称为“Self-Monitoring Analysis and Reporting Technology”,即“自我监测、分析及报告技术”,是一种自动的硬盘状态检测与预警系统和规范。通过在硬盘硬件内的检测指令对硬盘运行情况进行监控、记录并与厂商所设定的预设安全值进行比较,若监控情况将或已超出预设安全值的安全范围,就可以通过主机的监控硬件或软件自动向用户作出警告。
Smartmontool:Smartmontools是一种硬盘检测工具,通过控制和管理硬盘的SMART指令来实现对硬盘的监控,同时Smartmontool还是一个跨平台的工具在unix,linux,windows下均可使用。
IntelSSD Toolbox:intelSSD窗口管理工具,通过部署在Windows操作系统(不可部署在Windows server操作系统)上对intel的SSD产品进行健康检测,固件升级,优化,擦除等操作的intel工具箱(仅intel SSD使用)。
Intel_SSD_Data_Center_Tool:intelSSD命令管理工具通过部署在多平台(linux,windows)对intel数据中心SSD(intel 民用SSD产品线不在支持范围)进行健康检测,固件升级,优化,擦除等操作的intel工具箱。
方案一(smartctlmontools方式检测)
SMART的信息一般由各硬盘厂家自己定义,没有特别统一的标准。
1.在已经部署好smartctlmontools(可以通过yum安装)的宿主机上可以通过smartctl命令查看硬盘的SMART信息:
例 #smartctl –A–f brief /dev/sdb
注:smartctl中硬盘的SMART值由drivedb.h数据库定义其中对于intel S3500 S3510系列SSD产品定义如下图所示:
2.在获取到硬盘的SMART值(VALUE)后我们就可以通过与THRESH值比对来获得硬盘当前的健康情况。其中重点关注以下几个值。
Re-allocatedSector Count(5h)
定义:此属性的原始值显示自离开工厂以来坏块数量(已增长的缺陷计数)。VALUE值初始100,阈值0。接近0时表示硬盘即将失效。
AvailableReserved Space(AA)
报告剩余的保护区数量。
规范化值从100 (64h)开始,这相当于保留空间的100%可用性。此属性的阈值为10%可用性。VALUE值初始100,阈值10,低于10硬盘失效。
End to End Error Detection Count(B8)
Intel第二代的34nm固态硬盘有点到点错误检测计数这一项。固态硬盘里有一个LBA(logical block addressing,逻辑块地址)记录,这一项显示了SSD内部逻辑块地址与真实物理地址间映射的出错次数。 VALUE值初始100,阈值90,低于90硬盘直接故障。
Current PendingSector Count(C5)
数据应为0,当前值应远大于临界值。这个参数的数据表示了“不稳定的”扇区数,即等待被映射的扇区(也称“被挂起的扇区”)数量。如果不稳定的扇区随后被读写成功,该扇区就不再列入等待范围,数据值就会下降。VALUE值初始100,阈值0,接近0时表示硬盘即将失效。
Media_Wearout_Indicator(E9h)
value表示NAND寿命百分比,降低为1后表示NAND已经写穿. VALUE值初始100,阈值0,接近0时表示硬盘即将失效。
UDMA_CRC Error Count
这个参数的数据值累计了通过接口循环冗余校验(Interface CyclicRedundancy Check,ICRC)发现的数据线传输错误的次数。如果数据值不为0且持续增长,表示硬盘控制器→数据线→硬盘接口出现错误,SAS线缆故障、硬盘背板接口接触不良都可能导致此现象。VALUE值初始100,阈值0,接近0时表示硬盘即将失效。
通过定期检测硬盘的SMART的信息可以对硬盘可预测的故障做出提前告警,提前出来,从来减少硬盘失效对ceph集群的影响。
附intel SSD可靠性参数
Intel®SSD DC S3520 Series (1.6TB, 2.5in SATA 6Gb/s, 3D1, MLC)
DWPD: 2.6T
Intel®SSD DC S3520 Series (480GB, 2.5in SATA 6Gb/s, 3D1, MLC)
DWPD: 860G
Intel®SSD DC S3520 Series (480GB, 2.5in SATA 6Gb/s, 3D1, MLC)
DWPD: 251G
注:如何计算硬盘每天写入 (DWPD)
硬盘每天写入 (DWPD) 计算让我们可以利用硬盘的 TBW 规格,根据用于指定 TBW 的 JEDEC 工作负载 [1] ,计算在保固期内(或不同的数年时段内)每天可以写入硬盘用户存储容量的次数。