【已评审】新增资源协作接口触发和收集硬盘指定指标数据

背景

需要支持获取SAS/NVMe SSD盘延时数据用于慢盘告警,需要新增用于触发收集和反馈收集数据的资源协作接口

关联ISSUE

支持直通场景获取华为SAS SSD盘的访问延时统计及传递

支持获取RAID卡管理的华为SAS SSD盘的访问延时统计及传递

支持获取NVMe SSD盘华为自定义的访问延时统计及传递

整体方案

1.首先由故障管理根据自己的算法触发收集硬盘访问延时数据,延时数据由storage进行收集;

2.故障管理识别到数据收集完成之后,通过资源协作接口,向storage请求获取已收集到的硬盘延时数据;

3.故障管理根据算法计算的结果,返回给storage用于判断是否触发慢盘告警。

评审点

新增资源协作接口方法:CollectDiagnoseData, GetDiagnoseData

详细描述

资源path: “/bmc/kepler/Systems/:SystemId/Storage/Drives/:Id”

资源interface: “bmc.kepler.Systems.Storage.Drive.Diagnose” (新增)

变化类型:新增接口,新增方法

应用场景:用于触发收集硬盘访问延时数据以及返回收集到的硬盘延时数据

方法名称 变化类型 请求签名 请求参数说明 响应签名 响应参数说明 访问权限 说明 约束
CollectDiagnoseData 新增方法 as 如表1所示 u TaskId:创建的任务Id BasicSetting 通过指定信息收集硬盘诊断数据
GetDiagnoseData 新增方法 as 如表2所示 a{ss} 如表3所示 BasicSetting 根据指定信息获取不同的硬盘诊断数据

表1:CollectDiagnoseData请求参数信息详细说明:

请求参数 请求参数取值 描述
DiagnoseDataType 字符串数组,当前支持“VendorDefinedIOLatency”:表示厂商自定义硬盘IO延时数据 用于指定收集的具体诊断数据类型

表2:GetDiagnoseData请求参数参数信息详细说明

请求参数 请求参数取值 描述
DiagnoseDataType 字符串数组,当前支持“VendorDefinedIOLatency”:表示厂商自定义硬盘IO延时数据 用于指定获取的具体诊断数据类型

表3:GetDiagnoseData响应参数信息详细说明

响应参数 响应参数取值 描述
DiagnoseData 字典,当前支持如表4 获取到的诊断数据

表4:响应参数取值示例

字典key值 字典value值 描述
VendorDefinedIOLatency 码流字符串 厂商自定义硬盘IO延时数据:如果获取不到则返回空字符,延时数据第1个字节表示版本号(只针对NVMe盘有效,其他盘为0xFF)

评审结论

同意新增资源协作接口 bmc.kepler.Systems.Storage.Drive.Diagnose并新增方法,具体如下:

path: /bmc/kepler/Systems/:SystemId/Storage/Drives/:Id

新增interface: bmc.kepler.Systems.Storage.Drive.Diagnose

新增方法:

方法名称 变化类型 请求签名 请求参数说明 响应签名 响应参数说明 访问权限 说明 约束
CollectDiagnoseData 新增方法 as 详细描述表1所示 u TaskId:创建的任务Id BasicSetting 通过指定信息收集硬盘诊断数据
GetDiagnoseData 新增方法 as 详细描述表2所示 a{ss} 详细描述表3所示 BasicSetting 根据指定信息获取不同的硬盘诊断数据

遗留问题

问题1:CollectDiagnoseData必选参数不能放在数组参数中,要显式放在接口参数签名中,非必选参数放在数组参数中。

结论:已修改成对指定硬盘(interface归属到具体的硬盘对象路径)进行诊断数据收集,需要收集的数据类型/指标类型通过必选参数指定