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值(V