用于检测云硬盘输入输出IO邻位干扰的方法和装置与流程

文档序号:21028732发布日期:2020-06-09 20:04阅读:169来源:国知局
用于检测云硬盘输入输出IO邻位干扰的方法和装置与流程

本申请涉及计算机领域,并且更具体地,涉及用于检测云硬盘输入输出io邻位干扰的方法和装置。



背景技术:

云计算是一种新型的信息技术(informationtechnology,it)基础设施使用、交付和运营模式。狭义的云计算,即基础设施即服务(infrastructureasaservice,iaas),以虚拟化技术为基础,将相当规模的it基础设施进行池化和管理,使得用户可以方便的通过网络访问和使用,具有快速部署,自助按需使用,按实际使用计费等特征和优势。根据提供模式,云计算可以分为公有云、私有云和混合云。

在公有云环境中,物理存储系统被集中管理,并虚拟成云硬盘,挂载到虚拟机上进行使用。公有云的物理存储系统被多个虚拟机共享,因此虚拟机上挂载的云硬盘可能因受到其他虚拟机的大流量云硬盘读写的干扰而性能下降,严重影响其承载的应用和业务。

因此,检测虚拟机上挂载的云硬盘是否受到邻位干扰,对于虚拟机的管理很有必要。



技术实现要素:

本申请提供用于检测云硬盘io邻位干扰的方法和装置,能够在业务层实现虚拟机云硬盘的io邻位干扰检测。

第一方面,本申请提供了一种用于检测云硬盘io邻位干扰的方法,该方法包括:第一虚拟机获取io请求的参数,该参数包括io请求的块大小、发送io请求的时间戳和完成io请求的时间戳;该第一虚拟机根据该参数,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰。

在上述技术方案中,第一虚拟机通过获取io请求的块大小、发送io请求的时间戳和完成io请求的时间戳,而io请求的块大小、发送io请求的时间戳和完成io请求的时间戳可以直接或间接地体现云硬盘的读写性能,从而判断第二虚拟机的云硬盘是否发生io邻位干扰。这样,上述技术方案可以通过业务层的虚拟机实现虚拟机云硬盘的io邻位干扰检测。

此外,由于上述技术方案是在业务层的虚拟机上实现的,因此上述技术方案不依赖于云基础设施层。

在一些可能的实现方式中,该第一虚拟机根据该参数,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰,包括:该第一虚拟机确定该发送io请求的时间戳与该完成io请求的时间戳之间的时间差;该第一虚拟机确定该时间差值与该io请求的块大小的比值为单位扇区处理时延;该第一虚拟机根据该单位扇区处理时延相对于单位扇区处理时延参考值的偏离值,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰。

由于io请求的块大小会影响io请求实际的处理时间,而上述技术方案通过io请求的块大小、发送io请求的时间戳、完成io请求的时间戳确定当前io请求的单位扇区处理时延,并根据当前io请求的单位扇区处理时延判断第二虚拟机的云硬盘是否发生io邻位干扰,可以排除每次io请求的块大小对io请求处理时延的影响。

在一些可能的实现方式中,该单位扇区处理时延参考值包括以下内容的至少一个:该第二虚拟机的历史最小单位扇区处理时延、单位扇区处理时延预估值、虚拟机集合中每个虚拟机的历史最小单位扇区处理时延的平均值,其中该单位扇区处理时延预估值是该第一虚拟机根据该io请求的块大小、该发送io请求的时间戳、该完成io请求的时间戳,以及io请求的块大小、发送io请求的时间戳、完成io请求的时间戳与该单位扇区处理时延预估值的映射关系得到的,该虚拟机集合由该第二虚拟机和/或至少一个第三虚拟机组成,该第三虚拟机与该第二虚拟机具有相同的应用。

在上述技术方案中,通过将单位扇区处理时延与该第二虚拟机的历史最小单位扇区处理时延或单位扇区处理时延预估值或至少一个第三虚拟机的历史最小单位扇区处理时延的平均值或其任意结合进行比较,能够提高检测结果的准确性。

在一些可能的实现方式中,该第一虚拟机根据该单位扇区处理时延相对于单位扇区处理时延参考值的偏离值,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰,包括:该第一虚拟机在该单位扇区处理时延相对于单位扇区处理时延参考值的偏离值大于第一阈值时,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。

在上述技术方案中,将第二虚拟机的云硬盘的单位扇区处理时延相对于单位扇区处理时延参考值的偏离值与预设阈值进行比较,因此可以通过配置预设阈值,灵活调整检测的精度。

在一些可能的实现方式中,该第一虚拟机在该单位扇区处理时延相对于单位扇区处理时延参考值的偏离值大于第一阈值时,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰,包括:在连续多个监控周期内,该单位扇区处理时延相对于单位扇区处理时延参考值的偏离值都大于该第一阈值,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。

在上述技术方案中,第一虚拟机在第二虚拟机的云硬盘的单位扇区处理时延连续多次偏离单位扇区处理时延参考值较远时,判断第二虚拟机的云硬盘发生了io邻位干扰,能够避免偶然因素对检测结果的影响,提高检测结果的准确性。

在一些可能的实现方式中,该第一虚拟机根据该参数,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰,包括:该第一虚拟机确定该发送io请求的时间戳与该完成io请求的时间戳之间的时间差;该第一虚拟机根据该io请求的块大小,以及io请求的块大小与时间差的映射关系,确定时间差预估值;该第一虚拟机根据该时间差相对于该时间差预估值的偏离值,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰。

在上述技术方案中,仅需计算发送io请求的时间戳与完成io请求的时间戳之间的时间差和时间差预估值,能够降低计算的复杂度。

在一些可能的实现方式中,该第一虚拟机根据该时间差相对于该时间差预估值的偏离值,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰,包括:该第一虚拟机在该时间差相对于该时间差预估值的偏离值大于第二阈值时,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。

在上述技术方案中,将第二虚拟机的云硬盘的时间差相对于时间差预估值的偏离值与预设阈值进行比较,因此可以通过配置预设阈值,灵活调整检测的精度。

在一些可能的实现方式中,该第一虚拟机在该时间差相对于该时间差预估值的偏离值大于第二阈值时,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰,包括:在连续多个监控周期内,该时间差相对于该时间差预估值的偏离值都大于该第二阈值时,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。

在上述技术方案中,第一虚拟机在第二虚拟机的云硬盘的时间差连续多次偏离时间差预估值较远时,判断第二虚拟机的云硬盘发生了io邻位干扰,能够避免偶然因素对检测结果的影响,提高检测结果的准确性。

在一些可能的实现方式中,在该单位扇区处理时延小于该历史单位扇区处理时延时,该方法还包括:该第一虚拟机在数据库中更新历史最小单位扇区处理时延。

第二方面,本申请提供了一种用于检测云硬盘输入输出io邻位干扰的装置,该装置包括:获取模块,用于获取io请求的参数,该参数包括io请求的块大小、发送io请求的时间戳和完成io请求的时间戳;处理模块,用于根据该参数,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰。

在上述技术方案中,第一虚拟机通过获取io请求的块大小、发送io请求的时间戳和完成io请求的时间戳,而io请求的块大小、发送io请求的时间戳和完成io请求的时间戳可以直接或间接地体现云硬盘的读写性能,从而判断第二虚拟机的云硬盘是否发生io邻位干扰。这样,上述技术方案可以通过业务层的虚拟机实现虚拟机云硬盘的io邻位干扰检测。

此外,由于上述技术方案是在业务层的虚拟机上实现的,因此上述技术方案不依赖于云基础设施层。

在一些可能的实现方式中,该处理模块具体用于:确定该发送io请求的时间戳与该完成io请求的时间戳之间的时间差;确定该时间差值与该io请求的块大小的比值为单位扇区处理时延;根据该单位扇区处理时延相对于单位扇区处理时延参考值的偏离值,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰。

由于io请求的块大小会影响io请求实际的处理时间,而上述技术方案通过io请求的块大小、发送io请求的时间戳、完成io请求的时间戳确定当前io请求的单位扇区处理时延,并根据当前io请求的单位扇区处理时延判断第二虚拟机的云硬盘是否发生io邻位干扰,可以排除每次io请求的块大小对io请求处理时延的影响。

在一些可能的实现方式中,该单位扇区处理时延参考值包括以下内容的至少一个:该第二虚拟机的历史最小单位扇区处理时延、单位扇区处理时延预估值、虚拟机集合中每个虚拟机的历史最小单位扇区处理时延的平均值,其中该单位扇区处理时延预估值是该第一虚拟机根据该io请求的块大小、该发送io请求的时间戳、该完成io请求的时间戳,以及io请求的块大小、发送io请求的时间戳、完成io请求的时间戳与该单位扇区处理时延预估值的映射关系得到的,该虚拟机集合由该第二虚拟机和/或至少一个第三虚拟机组成,该第三虚拟机与该第二虚拟机具有相同的应用。

在上述技术方案中,通过将单位扇区处理时延与该第二虚拟机的历史最小单位扇区处理时延或单位扇区处理时延预估值或至少一个第三虚拟机的历史最小单位扇区处理时延的平均值或其任意结合进行比较,能够提高检测结果的准确性。

在一些可能的实现方式中,该处理模块具体用于:在该单位扇区处理时延相对于单位扇区处理时延参考值的偏离值大于第一阈值时,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。

在上述技术方案中,将第二虚拟机的云硬盘的单位扇区处理时延相对于单位扇区处理时延参考值的偏离值与预设阈值进行比较,因此可以通过配置预设阈值,灵活调整检测的精度。

在一些可能的实现方式中,该处理模块具体用于:在连续多个监控周期内,该单位扇区处理时延相对于单位扇区处理时延参考值的偏离值都大于该第一阈值,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。

在上述技术方案中,第一虚拟机在第二虚拟机的云硬盘的单位扇区处理时延连续多次偏离单位扇区处理时延参考值较远时,判断第二虚拟机的云硬盘发生了io邻位干扰,能够避免偶然因素对检测结果的影响,提高检测结果的准确性。

在一些可能的实现方式中,该处理模块具体用于:确定该发送io请求的时间戳与该完成io请求的时间戳之间的时间差;根据该io请求的块大小,以及io请求的块大小与时间差的映射关系,确定时间差预估值;根据该时间差相对于该时间差预估值的偏离值,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰。

在上述技术方案中,仅需计算发送io请求的时间戳与完成io请求的时间戳之间的时间差和时间差预估值,能够降低计算的复杂度。

在一些可能的实现方式中,该处理模块具体用于:在该时间差相对于该时间差预估值的偏离值大于二阈值时,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。

在上述技术方案中,将第二虚拟机的云硬盘的时间差相对于时间差预估值的偏离值与预设阈值进行比较,因此可以通过配置预设阈值,灵活调整检测的精度。

在一些可能的实现方式中,该处理模块具体用于:在连续多个监控周期内,该时间差相对于该时间差预估值的偏离值都大于该第二阈值时,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。

在上述技术方案中,第一虚拟机在第二虚拟机的云硬盘的时间差连续多次偏离时间差预估值较远时,判断第二虚拟机的云硬盘发生了io邻位干扰,能够避免偶然因素对检测结果的影响,提高检测结果的准确性。

在一些可能的实现方式中,该装置还包括:存储模块,用于在该单位扇区处理时延小于该历史单位扇区处理时延时,在数据库中更新历史最小单位扇区处理时延。

第三方面,本申请提供了用于检测云硬盘输入输出io邻位干扰的装置,该装置上部署有虚拟机,所述虚拟机可以实现上述第一方面所涉及的方法中各个步骤所对应的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元或模块。

在一些可能的实现方式中,该装置包括处理器,该处理器被配置为支持该装置执行上述第一方面所涉及的方法中相应的功能。该装置还可以包括存储器,该存储器用于与处理器耦合,其保存该装置必要的程序指令和数据。可选地,该装置还包括通信接口,该通信接口用于支持该装置与其它网元之间的通信。

第四方面,本申请提供了一种计算机可读存储介质,包括指令,当所述指令在被处理模块或处理器执行时,使得用于检测云硬盘输入输出io邻位干扰的装置执行第一方面或第一方面任意一种实现方式所述的方法。

第五方面,本申请提供了一种芯片,其中存储有指令,当所述指令在用于检测云硬盘输入输出io邻位干扰的装置上运行时,使得该芯片执行第一方面或第一方面任意一种实现方式所述的方法。

第六方面,本申请提供了一种计算机程序产品,当其在用于检测云硬盘输入输出io邻位干扰的装置上运行时,使得用于检测云硬盘输入输出io邻位干扰的装置执行第一方面或第一方面任意一种实现方式所述的方法。

附图说明

图1是云硬盘的io邻位干扰的示意图。

图2是本申请实施例的用于检测云硬盘io邻位干扰的方法的示意性流程图。

图3是本申请实施例的用于检测云硬盘io邻位干扰的装置的示意性结构图。

图4是本申请另一实施例的用于检测云硬盘io邻位干扰的装置的示意性结构图。

图5是本申请实施例的检测系统的示意性结构图。

具体实施方式

为了便于理解本申请的技术方案,首先对本申请涉及的概念做简要介绍。

虚拟化技术:是在一个物理硬件机器上同时运行多个独立的操作系统,独立运行的操作系统资源来自于同一底层平台资源,底层的虚拟机监督器负责系统资源的分配、虚拟机的调度、虚拟机间及虚拟机与外界的通信。虚拟化技术使用软件的方法来重新定义和划分it资源,可以实现it资源的动态分配、灵活调度、跨域共享、提高信息技术(informationtechnology,it)资源利用率。

云计算:是一种新型的it基础设施使用、交付和运营模式。狭义的云计算,即基础设施即服务(infrastructureasaservice,iaas),以虚拟化技术为基础,将相当规模的it基础设施进行池化和管理,使得用户可以方便的通过网络访问和使用,具有快速部署,自助按需使用,按实际使用计费等特征和优势。根据提供模式,云计算可以分为公有云、私有云和混合云。

云硬盘:在云计算环境中,物理存储系统被集中管理,并虚拟化成云硬盘,挂载到虚拟机上进行使用。在读写性能的评测方面,云硬盘与普通物理硬盘一样,都通过io吞吐量(即每秒字节数)和每秒输入输出(inputoutputpersecond,iops)来衡量。

虚拟机(virtualmachine,vm):指通过虚拟机软件在物理设备上模拟出的虚拟设备。对于在虚拟机中运行的应用程序而言,这些虚拟机就像真正的物理设备那样进行工作,虚拟机上可以安装客户机操作系统(operatingsystem,os)和应用程序,虚拟机还可访问网络资源。

云硬盘的输入输出(inputoutput,io)邻位干扰:当虚机访问云硬盘上的数据时,实际上是需要通过网络最终访问到远端的共享物理存储硬盘的。在这条路径上,可能存在如图1所示的资源冲突,最终导致云硬盘的读写性能下降。

1、物理机的网卡:因为一台物理机上可能同时部署了多台虚拟机,每台虚拟机又可能挂载了多个云硬盘,那么这些云硬盘的访问都需要经过物理机的网卡,当访问云硬盘的访问流量超出了物理机网卡的吞吐量性能时,就会影响云硬盘的访问性能。

2、数据中心网络:数据中心网络设备需要支撑数据中心内所有虚拟机对云硬盘的读写访问,当流量突发(例如,大面积进行虚机迁移)时,可能导致数据中心网络的拥塞,最终影响云硬盘的访问性能。

3、物理硬盘:一块物理硬盘可能会被虚拟化成多个云硬盘,挂载到多个虚拟机,因此,当虚拟机集中对同一个物理硬盘上的云硬盘进行读写访问时,也有可能导致访问性能下降。

对于虚拟机而言,其挂载的云硬盘性能,由于受到其他虚拟机的大流量云硬盘读写,导致如上三种可能的性能影响,本申请中统称为云硬盘的io邻位干扰。

云硬盘因发生io邻位干扰导致的访问性能下降,会严重影响其承载的应用和业务。因此,检测虚拟机上挂载的云硬盘是否受到邻位干扰,对于虚拟机的管理很有必要。

本申请实施例提供一种用于检测云硬盘io邻位干扰的方法,当在虚拟机上运行存储密集型应用时,通过本申请实施例的方法能够在业务层实现虚拟机云硬盘的io邻位干扰检测,进而采取应对和规避措施,避免其对应用和业务的影响。

图2是本申请实施例的用于检测云硬盘io邻位干扰的方法的示意性流程图。图2中的方法可以应用于公有云、私有有云或混合云环境中,并由业务层虚拟机执行。如图2所示,本申请实施例的用于检测云硬盘io邻位干扰的方法可以包括以下内容的至少部分内容。

在210中,第一虚拟机获取io请求的参数,该参数包括io请求的块大小、发送io请求的时间戳和完成io请求的时间戳。

在220中,该第一虚拟机根据该参数,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰。

第一虚拟机可以是在业务层部署的专门用于检测云硬盘io邻位干扰的控制虚拟机,也可以是具有检测云硬盘io邻位干扰功能的业务虚拟机,本申请实施例对此不做限定。

第二虚拟机可以是任意挂载有云硬盘,并能采集上报io请求参数的虚拟机,本申请实施例对其具体类型不做限定。

应理解,在一些情况下,第一虚拟机和第二虚拟机可以是同一虚拟机。

在上述技术方案中,第一虚拟机通过获取io请求的块大小、发送io请求的时间戳和完成io请求的时间戳,而io请求的块大小、发送io请求的时间戳和完成io请求的时间戳可以直接或间接地体现云硬盘的读写性能,从而判断第二虚拟机的云硬盘是否发生io邻位干扰。这样,上述技术方案可以通过业务层的虚拟机实现虚拟机云硬盘的io邻位干扰检测。

此外,由于上述技术方案是在业务层的虚拟机上实现的,因此上述技术方案不依赖于云基础设施层。

可选地,上述技术方案也可以由物理设备执行。

可选地,第一虚拟机获取的io参数还可以是其他与云硬盘性能相关的参数。

在一些实施例中,第二虚拟机采集io请求的参数,并上报给第一虚拟机,此时第一虚拟机和第二虚拟机为不同的虚拟机。可选地,第二虚拟机针对所有io请求采集参数,并上报采集到的参数。可选地,第二虚拟机抽样采集io请求的参数,并上报采集到的参数,其中抽样间隔可以配置,也即是说对第二虚拟机是否发生io邻位干扰进行周期性监测。

在另一些实施例中,第一虚拟机采集自身的io请求的参数,并对自身是否发生io邻位干扰进行判断,此时第一虚拟机和第二虚拟机为同一虚拟机。可选地,第一虚拟机针对所有io请求采集参数。可选地,第一虚拟机抽样采集io请求的参数,其抽样间隔可以配置。

具体地,作为一个示例,第二虚拟机或第一虚拟机可以使用linux的blktrace工具采集io请求的参数。作为另一个示例,第二虚拟机或第一虚拟机可以使用flexibleiotester工具采集io请求的参数。

第一虚拟机获取的io参数可以包括io请求的块大小、发送io请求的时间戳和完成io请求的时间戳。其中,io请求的块大小可以表征该io请求的字节数,单位可以是扇区数;发送io请求的时间戳为io请求发送给第二虚拟机云硬盘驱动的时间戳;完成io请求的时间戳为完成数据io请求的时间戳。

第一虚拟机根据io请求的参数,确定参数所属的第二虚拟机的云硬盘是否发生io邻位干扰。

在一些实施例中,第一虚拟机根据io请求的块大小、发送io请求的时间戳和完成io请求的时间戳计算得到当前的io请求的单位扇区处理时延,再通过计算得到的单位扇区处理时延相对于单位扇区处理时延参考值的偏离值,判断参数所属的第二虚拟机的云硬盘是否发生io邻位干扰。

具体地,第一虚拟机确定发送io请求的时间戳与完成io请求的时间戳之间的时间差,也即云硬盘完成io请求的时延。例如,可以使用如下公式计算得到发送io请求的时间戳与完成io请求的时间戳之间的时间差。

d2c_t=complete_ts-driver_ts

其中,d2c_t为每次io请求从发送到驱动直至完成的时延,也即云硬盘完成io请求的时延,complete_ts为完成io请求的时间戳,driver_ts为发送io请求的时间戳。

进一步地,第一虚拟机确定时间差值与io请求的块大小的比值为单位扇区处理时延。例如,可以使用如下公式计算得到当前io请求的单位扇区处理时延。

delay_p_sector=d2c_t/io_size

其中,delay_p_sector为单位扇区处理时延,d2c_t为云硬盘完成io请求的时延,io_size为io请求的块大小。

可选地,第一虚拟机可以根据预设时间段内获取的多个io请求的块大小的平均值和预设时间段内计算得到的多个d2c_t的平均值,计算得到单位扇区处理时延。

delay_p_sector=d2c_t’/io_size’

其中,delay_p_sector为单位扇区处理时延,d2c_t’为云硬盘完成io请求的时延的平均值,io_size’为io请求的块大小的平均值。

可选地,第一虚拟机可以根据预设时间段内获取的多个io请求的块大小的平均值和预设时间段内计算得到的多个d2c_t的平均值,取集中区域(集中区域可配置,例如90%占比),计算得到单位扇区处理时延。这样可以避免工具或者其他极端情况下引入的数据的影响。

在一些实施例中,单位扇区处理时延参考值可以是第一虚拟机记录的第二虚拟机的历史最小单位扇区处理时延。第一虚拟机周期性监测第二虚拟机的单位扇区处理时延,并记录历史最小单位扇区处理时延。例如,可以按如下公式记录最小单位扇区处理时延。

min_delay_p_sector=min(delay_p_sector1…n)

其中,min_delay_p_sector为历史单位扇区处理时延,delay_p_sector1…n表示n个单位扇区处理时延。

在另一些实施例中,单位扇区处理时延参考值可以是单位扇区处理时延预估值。单位扇区处理时延预估值可以是第一虚拟机根据所述io请求的块大小、所述发送io请求的时间戳、所述完成io请求的时间戳,以及io请求的块大小、发送io请求的时间戳、完成io请求的时间戳与所述单位扇区处理时延预估值的映射关系得到的。

可选地,该映射关系可以是通过机器学习算法拟合得到的。具体地,可以综合使用分布式应用虚拟机上采集的数据对如下关系进行训练,确定算法参数w0、w1、w2、w3。算法训练好之后,部署到第一虚拟机上,对于每次获取的io_size、complete_ts、driver_ts,使用拟合好的关系得到单位扇区处理时延预估值,再进一步根据计算得到的单位扇区处理时延相对于单位扇区处理时延预估值的偏离值,判断第二虚拟机的云硬盘是否发生io邻位干扰。

delay_p_sector=w3*io_size+w2*complete_ts+w1*driver_ts+w0

其中,w0、w1、w2、w3为算法参数。

上述机器学习算法的训练可以在开发环境(例如,私有云或公有云模拟环境,该环境下没有io邻位干扰发生)中,也可以在公有云生产环境中(假设公有云环境中的io邻位干扰是小概率事件),本申请实施例不作具体限定。

应理解,本申请是实施例还可以考虑更多的参数种类,例如云硬盘的个数、存储网络接口的流量等。

还应理解,机器学习算法仅为示例性的,该映射关系还可以是通过与机器学习算法功能相同的其他算法拟合得到的,例如,深度算法、神经网络算法等,本申请实施例不做具体限定。

在另一些实施例中,单位扇区处理时延参考值可以是虚拟机集合中每个虚拟机的历史最小单位扇区处理时延的平均值,该虚拟机集合由该第二虚拟机和/或至少一个第三虚拟机组成,该第三虚拟机与该第二虚拟机具有相同的应用。也就是说,第一虚拟机会分别记录每一个待检测虚拟机的历史最小单位扇区处理时延,在对多个待检测虚拟机中的第二虚拟机进行io邻位干扰检测时,可以考虑与第二虚拟机具有相同应用的待检测虚拟机的历史最小单位扇处理时延的平均值相比较,也可以考虑第二虚拟机与至少一个第三虚拟机的历史最小单位扇区处理时延的平均值比较。

在另一些实施例中,单位扇区处理时延参考值是第二虚拟机的历史最小单位扇区处理时延、单位扇区处理时延预估值、虚拟机集合中每个虚拟机的历史最小单位扇区处理时延的平均值的任意组合(例如,两两组合,三者结合等),该虚拟机集合由该第二虚拟机和/或至少一个第三虚拟机组成,该第三虚拟机与该第二虚拟机具有相同的应用。

也就是说,第一虚拟机可以根据第二虚拟机的历史最小单位扇区处理时延、单位扇区处理时延预估值、虚拟机集合中每个虚拟机的历史最小单位扇区处理时延的平均值中的任意一个,判断第二虚拟机的云硬盘是否发生io邻位干扰,也可以根据第二虚拟机的历史最小单位扇区处理时延、单位扇区处理时延预估值、虚拟机集合中每个虚拟机的历史最小单位扇区处理时延的平均值的任意组合,判断第二虚拟机的云硬盘是否发生io邻位干扰。

在一些实施例中,第一虚拟机在单位扇区处理时延相对于单位扇区处理时延参考值的偏离值大于第一阈值(例如,50%,第一阈值可配置)时,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。因此可以通过配置预设阈值,灵活调整检测的精度。

例如,当单位扇区处理时延比历史最小单位扇区处理时延的涨幅超过40%,第一虚拟机确定第二虚拟机的云硬盘发生io邻位干扰。

在一些实施例中,第一虚拟机周期性监测第二虚拟机的单位扇区处理时延,并在连续多个监控周期内(例如,3个,连续监控周期的个数可以配置),该单位扇区处理时延相对于单位扇区处理时延参考值的偏离值都大于第一阈值,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。这样能够避免偶然因素对检测结果的影响,提高检测结果的准确性。

在一些实施例中,第一虚拟机根据发送io请求的时间戳与完成io请求的时间戳之间的时间差(也即云硬盘完成io请求的时延),并通过io请求的块大小与时间差的映射关系确定时间差预估值,进而通过计算得到的时间差相对于时间差预估值的偏离值,判断第二虚拟机的云硬盘是否发生io邻位干扰。其中,时间差(也即云硬盘完成io请求的时延)的计算方法可参见上文的相关描述,在此不再赘述。

可选地,io请求的块大小与时间差的映射关系可以是通过机器学习算法拟合得到的。具体地,可以综合使用分布式应用虚拟机上采集的数据对如下关系进行训练,确定算法参数w0、w1。算法训练好之后,部署到第一虚拟机上,对于每次获取的io_size,使用拟合好的关系得到时间差预估值,再进一步根据计算得到的时间差相对于时间差预估值的偏离值,判断第二虚拟机的云硬盘是否发生io邻位干扰。

d2c_t=w1*io_size+w0

其中,w0、w1为算法参数。

上述机器学习算法的训练可以在开发环境(例如,私有云或公有云模拟环境,该环境下没有io邻位干扰发生)中,也可以在公有云生产环境中(假设公有云环境中的io邻位干扰是小概率事件),本申请实施例不作具体限定。

应理解,本申请是实施例还可以考虑更多的参数种类,例如云硬盘的个数、存储网络接口的流量等。

还应理解,机器学习算法仅为示例性的,该映射关系还可以是通过与机器学习算法功能相同的其他算法拟合得到的,例如,深度算法、神经网络算法等,本申请实施例不做具体限定。

在一些实施例中,第一虚拟机在时间差相对于时间差预估值的偏离值大于第二阈值(例如,50%,第二阈值可配置)时,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。因此可以通过配置预设阈值,灵活调整检测的精度。

例如,当时间差比时间差预估值的涨幅超过30%,第一虚拟机确定第二虚拟机的云硬盘发生io邻位干扰。

在一些实施例中,第一虚拟机周期性监测第二虚拟机的时间差,并在连续多个监控周期内(例如,3个,连续监控周期的个数可以配置),该时间差相对于时间差预估值的偏离值都大于二阈值,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。这样能够避免偶然因素对检测结果的影响,提高检测结果的准确性。

上文详细描述了本申请提供的用于检测云硬盘io邻位干扰的方法的示例。可以理解的是,用于检测云硬盘io邻位干扰的装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请可以根据上述方法示例对用于检测云硬盘io邻位干扰的装置进行功能单元的划分,例如,可以将各个功能划分为各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

图3是本申请实施例的用于检测云硬盘io邻位干扰的装置的示意性结构图。如图3所示,装置300部署有虚拟机340,虚拟机340包括获取模块310、处理模块320。

获取模块310,用于获取io请求的参数,该参数包括io请求的块大小、发送io请求的时间戳和完成io请求的时间戳。

处理模块320,用于根据该参数,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰。

可选地,处理模块320,具体用于确定该发送io请求的时间戳与该完成io请求的时间戳之间的时间差;确定该时间差值与该io请求的块大小的比值为单位扇区处理时延;根据该单位扇区处理时延相对于单位扇区处理时延参考值的偏离值,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰。

可选地,该单位扇区处理时延参考值包括以下内容的至少一个:该第二虚拟机的历史最小单位扇区处理时延、单位扇区处理时延预估值、虚拟机集合中每个虚拟机的历史最小单位扇区处理时延的平均值,其中该单位扇区处理时延预估值是该第一虚拟机根据该io请求的块大小、该发送io请求的时间戳、该完成io请求的时间戳,以及io请求的块大小、发送io请求的时间戳、完成io请求的时间戳与该单位扇区处理时延预估值的映射关系得到的,该虚拟机集合由该第二虚拟机和/或至少一个第三虚拟机组成,该第三虚拟机与该第二虚拟机具有相同的应用。

可选地,处理模块320,具体用于在该单位扇区处理时延相对于单位扇区处理时延参考值的偏离值大于第一阈值时,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。

可选地,处理模块320,具体用于在连续多个监控周期内,该单位扇区处理时延相对于单位扇区处理时延参考值的偏离值都大于该第一阈值,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。

可选地,处理模块320,具体用于确定该发送io请求的时间戳与该完成io请求的时间戳之间的时间差;根据该io请求的块大小,以及io请求的块大小与时间差的映射关系,确定时间差预估值;根据该时间差相对于该时间差预估值的偏离值,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰。

可选地,处理模块320,具体用于在该时间差相对于该时间差预估值的偏离值大于第二阈值时,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。

可选地,处理模块320,具体用于在连续多个监控周期内,该时间差相对于该时间差预估值的偏离值都大于该第二阈值时,确定该参数所属的第二虚拟机的云硬盘发生io邻位干扰。

可选地,虚拟机340还包括存储模块330。

存储模块330,用于在该单位扇区处理时延小于该历史单位扇区处理时延时,在数据库中更新历史最小单位扇区处理时延。

获取模块310、处理模块320和存储模块330的具体功能和有益效果可以参见图2所示的方法,在此就不再赘述。

获取模块310可以是收发器、通信接口或处理器。存储模块330可以是存储器。处理模块320可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其它可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。

当获取模块为收发器,处理模块为处理器,存储模块为存储器时,本申请所涉及的用于检测云硬盘io邻位干扰的装置可以为图4所示的装置。

如图4所示,装置400可以包括收发器410、处理器420、存储器430。

图4中仅示出了一个存储器和处理器。在实际的控制设备产品中,可以存在一个或多个处理器和一个或多个存储器。存储器也可以称为存储介质或者存储设备等。存储器可以是独立于处理器设置,也可以是与处理器集成在一起,本申请实施例对此不做限制。

收发器410、处理器420、存储器430之间通过内部连接通路互相通信,传递控制和/或数据信号。

具体地,收发器410用于获取io请求的参数,该参数包括io请求的块大小、发送io请求的时间戳和完成io请求的时间戳。处理器420用于根据该参数,确定该参数所属的第二虚拟机的云硬盘是否发生io邻位干扰。

装置400的具体工作过程和有益效果可以参见图2所示实施例中的描述。

图5是本申请实施例的检测系统的示意性结构图。以第一虚拟机和第二虚拟机为不同虚拟机的情况为例,图5仅为示例性的。如图5所示,虚拟机540可以对应于上文的第一虚拟机(获取模块并未示出);虚拟机521、虚拟机522和虚拟机531可以对应于上文的第二虚拟机,当虚拟机521、虚拟机522和虚拟机531中部署相同应用时,虚拟机521、虚拟机522和虚拟机531也可以对应于上文的第三虚拟机。

具体地,虚拟机521、虚拟机522和虚拟机531分别通过采集模块523、采集模块524和采集模块532采集io请求的参数后,上报给虚拟机540,上报间隔可配置。虚拟机540接收虚拟机521、虚拟机522和虚拟机531上报的io请求的参数,更新数据库,判断和识别io邻位干扰,并进行告警和后续相应处理(例如,日志和告警;申请新的虚拟机,部署业务后,进行替换发生io邻位干扰的虚拟机等)。

检测系统500的具体工作过程和有益效果可以参见图2所示实施例中的描述。

在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digitalversatiledisc,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1