某运营商TECS资源池,在当前告警中显示“虚机写磁盘时延高告警”,如下图所示。告警统计总体平均10分钟左右自动恢复。
结合现场环境和资源情况,分析问题产生的可能原因如下:
1. 虚拟机系统异常,操作系统只读不可写。
2. 计算节点访问后端存储异常。
3. 虚拟机读写性能不足,或者平台QoS配置限定。
4. 虚拟机配置问题,或者虚机被攻击,导致大量写操作。
具体问题分析过程如下:
1. 登录异常虚拟机操作系统,检查虚拟机内部业务是否正常读写,以及操作系统状态。
2. 虚机写磁盘延时告警上报后,底层平台和业务网元双向检查。
平台检查虚机运行正常,无其它异常告警。
业务网元检查虚机正常,网元无异常告警。
确认虚机写磁盘时延高告警仅触发告警,无业务影响,如下图所示。
3. 在TECS上通过告警找到对应虚机的节点,确定该节点只有一个虚机是NFV-P-***。再检查虚机读写速率和虚机所在节点读写速率。
4. 执行iostat -x 3命令,检查服务器节点。持续续观察1小时,节点检查正常,如下图所示。
5. 在CloveStorage分布式存储上使用告警信息中虚机名称检查,确认虚机对应卷。
a. 在TECS平台检查虚机对应的云盘,获取云盘对应卷的ID,从告警确定虚机名,如下图所示。
b. 测试TECS平台使用sftp方式访问第三方存储正常,能够正常访问,也能正常发送问题。
c. 在CloveStorage分布式存储上检查每个对应卷和集群的性能,如下图所示。
IOPS:I/O per second,即每秒钟可以处理的I/O个数,用来衡量存储系统的I/O处理能力,如下图所示。
读写速率:每秒钟可以处理的数据量,常以MB/s或GB/s为单位,用于衡量存储系统的吞吐量。
I/O:输入(input)、输出(output)。
IO时延:发起一次I/O请求到I/O处理完成的时间间隔。
容量:可用的存储空间大小。
6. 根据上图可以看出IOPS值在告警时间段超出200。
7. 在TECS平台检查存储QoS设置值,为200,如下图所示。
8. 检查对应卷的IOPS值,超过 200;而卷的QoS设置IOPS最大上限为200,经确认出现时延冲高的卷QoS均超过了设定的最大值,因此存在QoS设置不合理影响卷性能的问题。
9. 同时和业务网元确认,存在卷的QoS设置小于实际运行的预期值。
10. QoS(Quality of Service)即服务质量。在有限的资源下,QoS为各种业务分配固定的资源预留,为业务提供端到端的服务质量保证。
卷的QoS设置IOPS和带宽上限,当卷的实际性能超过QoS设置的最大值时,会由于QoS的限制出现IO队列排队拥塞的情况,反映到上层,即对应的云盘IO时延增高并上报告警。
11. 通过以上检查,发现存储侧在异常时间段没有异常告警,确认底层存储集群运行正常。
1. 虚拟化平台和业务网元联合检查确认是因为业务网元侧针对QoS设置IOPS值小于卷实际运行的IOPS值,导致卷时延冲高,最终产生告警。
2. 修改存储QoS值后,未再上报该告警。