一种io管理方法、系统、设备及计算机可读存储介质

文档序号:1904109 发布日期:2021-11-30 浏览:1次 >En<

阅读说明:本技术 一种io管理方法、系统、设备及计算机可读存储介质 (IO management method, system, equipment and computer readable storage medium ) 是由 李志鹏 于 2021-07-29 设计创作,主要内容包括:本申请公开了一种IO管理方法、系统、设备及计算机可读存储介质,应用于双控存储服务器,确定第一控制器下发IO的第一数量值;确定第二控制器下发IO的第二数量值;获取预设的IO差值;判断第一数量值与第二数量值的差值是否大于等于IO差值;若第一数量值与第二数量值间的差值大于等于IO差值,则基于第一数量值与第二数量值的大小关系进行IO限流。本申请中,将第一控制器、第二控制器下发IO的数量值与IO差值进行比较,并根据相应比较结果对IO进行限流,以保证第一控制器处理IO效率与第二控制器处理IO效率的差值在预设范围内,避免出现缓存倾斜,可以提高用户体验性。(The application discloses an IO management method, system, device and computer readable storage medium, which are applied to a double-control storage server and used for determining a first quantity value of IO issued by a first controller; determining a second numerical value of IO issued by a second controller; acquiring a preset IO difference value; judging whether the difference value of the first numerical value and the second numerical value is larger than or equal to the IO difference value or not; if the difference between the first numerical value and the second numerical value is larger than or equal to the IO difference, IO current limiting is performed based on the magnitude relation between the first numerical value and the second numerical value. In the application, the numerical value of IO issued by the first controller and the second controller is compared with the IO difference value, and the IO is limited according to the corresponding comparison result, so that the difference value of the IO processing efficiency of the first controller and the IO processing efficiency of the second controller is within a preset range, the buffer memory inclination is avoided, and the user experience can be improved.)

一种IO管理方法、系统、设备及计算机可读存储介质

技术领域

本申请涉及存储器技术领域,更具体地说,涉及一种IO管理方法、系统、设备及计算机可读存储介质。

背景技术

当今,信息技术飞速发展,对存储系统的可靠性需求日益迫切,双控存储服务器应运而生,顾名思义,双控存储服务器由两个控制器组成,其中一个控制器故障时,另一个控制器会接管故障控制器的工作,来保障业务的连续性,防止数据丢失。且在双控存储服务器中,通常会采取缓存镜像的方式来对主机端下发的IO进行备份,在一端控制器故障时,另一端控制器可以将对端镜像过来的IO及时的进行落盘,达到数据不丢失的最终目的。

然而,在实际的应用过程中,由于磁盘介质的差异性,两个控制器的IO落盘速度可能存在巨大差异,倾斜的存储速率导致了倾斜的缓存,从而产生缓存倾斜现象。缓存倾斜现象会导致双控的处理速率不一致,从而给用户造成有的卷处理的快,有的卷处理的慢的感觉,极端情况下,可能会导致部分卷不处理IO的情况,影响用户体验。

综上所述,如何提高双控存储服务器的用户体验性是目前本领域技术人员亟待解决的问题。

发明内容

本申请的目的是提供一种IO管理方法,其能在一定程度上解决如何提高双控存储服务器的用户体验性的技术问题。本申请还提供了一种IO管理系统、设备及计算机可读存储介质。

为了实现上述目的,本申请提供如下技术方案:

一种IO管理方法,应用于双控存储服务器,包括:

确定第一控制器下发IO的第一数量值;

确定第二控制器下发IO的第二数量值;

获取预设的IO差值,所述IO差值表征所述第一控制器处理IO效率与所述第二控制器处理IO效率的偏差值;

判断所述第一数量值与所述第二数量值的差值是否大于等于所述IO差值;

若所述第一数量值与所述第二数量值间的差值大于等于所述IO差值,则基于所述第一数量值与所述第二数量值的大小关系进行IO限流,以使所述第一控制器处理IO效率与所述第二控制器处理IO效率的差值在预设范围内。

优选的,所述判断所述第一数量值与所述第二数量值的差值是否大于等于所述IO差值,包括:

计算所述第一数量值与所述第二数量值的和值;

判断所述和值是否为零;

若所述和值为零,则判定所述第一数量值与所述第二数量值的差值小于所述IO差值;

若所述和值不为零,则计算所述第一数量值与所述和值的第一比值,计算所述第一比值与100的第一乘积值,计算所述第二数量值与所述和值的第二比值,计算所述第二比值与100的第二乘积值,计算50与所述IO差值的第二差值,判断所述第一乘积值是否小于所述第二差值;

若所述第一乘积值小于等于所述第二差值,则判定所述第一数量值与所述第二数量值的差值大于等于所述IO差值,若所述第一乘积值大于所述第二差值,则判断所述第二乘积值是否小于所述第二差值;

若所述第二乘积值小于等于所述第二差值,则判定所述第一数量值与所述第二数量值的差值大于等于所述IO差值;若所述第二乘积值大于所述第二差值,则判定所述第一数量值与所述第二数量值的差值小于所述IO差值。

优选的,所述基于所述第一数量值与所述第二数量值的大小关系进行IO限流,包括:

若所述第一乘积值小于等于所述第二差值,则对所述第二控制器的IO进行限流;

若所述第二乘积值小于等于所述第二差值,则对所述第一控制器的IO进行限流。

优选的,所述对所述第二控制器的IO进行限流,包括:

基于限流策略确定所述第二控制器向所述第一控制器镜像的第一IO最大数值,将所述IO最大数值作为当前第一IO镜像值;

若所述第二控制器向所述第一控制器镜像IO,则将所述当前第一IO镜像值减1;若接收到所述第一控制器返回的镜像值,则将所述当前第一IO镜像值加1;

判断所述当前第一IO镜像值是否为零;

若所述当前第一IO镜像值为零,则禁止所述第二控制器接收IO;

若所述当前第一IO镜像值不为零,则返回若所述第二控制器向所述第一控制器镜像IO,则将当前第一IO镜像值减1的步骤;

其中,若所述第一乘积值大于所述第二差值,所述第一控制器释放所述第二控制器镜像的IO后,向所述第二控制器返回镜像值。

优选的,所述对所述第一控制器的IO进行限流,包括:

基于限流策略确定所述第一控制器向所述第二控制器镜像的第二IO最大数值,将所述第二IO最大数值作为当前第二IO镜像值;

若所述第二控制器向所述第一控制器镜像IO,则将所述当前第二IO镜像值减1;若接收到所述第一控制器返回的镜像值,则将所述当前第二IO镜像值加1;

判断所述当前第二IO镜像值是否为零;

若所述当前第二IO镜像值为零,则禁止所述第二控制器向所述第一控制器镜像IO;

若所述当前第二IO镜像值不为零,则返回若所述第二控制器向所述第一控制器镜像IO,则将当前第二IO镜像值减1的步骤;

其中,若所述第二乘积值大于所述第二差值,所述第一控制器落盘所述第二控制器镜像的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管理设备的另一结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参阅图1,图1为本申请实施例提供的一种IO管理方法的流程图。

本申请实施例提供的一种IO管理方法,应用于双控存储服务器,可以包括以下步骤:

步骤S101:确定第一控制器下发IO的第一数量值。

步骤S102:确定第二控制器下发IO的第二数量值。

实际应用中,因为缓存倾斜现象是由于第一控制器与第二控制器处理IO的快慢不同引起的,而两个控制器间处理IO的数量差值会影响两个控制器处理IO的效率差值,所以本申请需确定第一控制器下发IO的第一数量值,确定第二控制器下发IO的第二数量值。

步骤S103:获取预设的IO差值,IO差值表征第一控制器处理IO效率与第二控制器处理IO效率的偏差值。

实际应用中,在确定第一控制器下发IO的第一数量值,确定第二控制器下发IO的第二数量值之后,为了便于通过IO数量值了解两个控制器的IP处理效率的差值,可以将第一控制器处理IO效率与第二控制器处理IO效率的偏差值转换为IO数量值的差值,也即可以获取预设的IO差值,以便后续根据IO差值进行IO限速。

步骤S104:判断第一数量值与第二数量值的差值是否大于等于IO差值;若第一数量值与第二数量值间的差值大于等于IO差值,则执行步骤S105。

步骤S105:基于第一数量值与第二数量值的大小关系进行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差值;若和值不为零,则计算第一数量值与和值的第一比值,计算第一比值与100的第一乘积值,计算第二数量值与和值的第二比值,计算第二比值与100的第二乘积值,计算50与IO差值的第二差值,判断第一乘积值是否小于第二差值;若第一乘积值小于等于第二差值,则判定第一数量值与第二数量值的差值大于等于IO差值,若第一乘积值大于第二差值,则判断第二乘积值是否小于第二差值;若第二乘积值小于等于第二差值,则判定第一数量值与第二数量值的差值大于等于IO差值;若第二乘积值大于第二差值,则判定第一数量值与第二数量值的差值小于IO差值。

为了便于理解,假设第一控制器下发IO的第一数量记为ownerCount,第二控制器下发IO的第二数量记为noneOwnerCount,两者相加获得总的IO数量记为totalCount,如果totalCount的值为0,则判定第一数量值与第二数量值的差值小于IO差值;如果totalCount的值不为0,则计算(ownerCount/totalCount)*100作为ownerPercent的值,假设IO差值记为totalCount,此时,若ownerPercen的值小于等于(50-tolerateDeviation),则可以判定第一数量值与第二数量值的差值大于等于IO差值,若ownerPercen的值大于(50-tolerateDeviation),则计算(noneOwnerCount/totalCount)*100作为noneOwnerPercent的值,若noneOwnerPercent的值小于等于(50-tolerateDeviation),则可以判定第一数量值与第二数量值的差值大于等于IO差值,若noneOwnerPercent的值大于(50-tolerateDeviation),则判定第一数量值与第二数量值的差值小于IO差值。

本申请提供的一种IO管理方法中,双控存储服务器在基于第一数量值与第二数量值的大小关系进行IO限流的过程中,若第一乘积值小于等于第二差值,则需要对第二控制器的IO进行限流;若第二乘积值小于等于第二差值,则需要对第一控制器的IO进行限流。

实际应用中,双控存储服务器在对第二控制器的IO进行限流的过程中,因为第二控制器作为主控制器的情况下,会向第一控制器镜像IO,该镜像IO的数量会影响两个控制器间的IO管理效率,所以可以对第二控制器镜像给第一控制器的数量进行限制来对第二控制器进行IO限流,也即可以基于限流策略确定第二控制器向第一控制器镜像的第一IO最大数值,将IO最大数值作为当前第一IO镜像值;若第二控制器向第一控制器镜像IO,则将当前第一IO镜像值减1;若接收到第一控制器返回的镜像值,则将当前第一IO镜像值加1;判断当前第一IO镜像值是否为零;若当前第一IO镜像值为零,则禁止第二控制器接收IO;若当前第一IO镜像值不为零,则返回若第二控制器向第一控制器镜像IO,则将当前第一IO镜像值减1的步骤;其中,若第一乘积值大于第二差值,第一控制器释放第二控制器镜像的IO后,向第二控制器返回镜像值。需要说明的是,第二控制器将IO落盘后才会提醒第一控制器释放镜像到的IO。

相应的,双控存储服务器在对第一控制器的IO进行限流的过程中,如果第一控制器是主控制器,且下发IO可以先到达第一控制器的话,可以基于限流策略确定第一控制器向第二控制器镜像的第二IO最大数值,将第二IO最大数值作为当前第二IO镜像值;若第一控制器向第二控制器镜像IO,则将当前第二IO镜像值减1;若接收到第二控制器返回的镜像值,则将当前第二IO镜像值加1;判断当前第二IO镜像值是否为零;若当前第二IO镜像值为零,则禁止第二控制器接收IO;若当前第二IO镜像值不为零,则返回若第一控制器向第二控制器镜像IO,则将当前第二IO镜像值减1的步骤;其中,若第二乘积值大于第二差值,第二控制器释放第一控制器镜像的IO后,向第一控制器返回镜像值。

具体应用场景中,存在第一控制器为主控制器,但下发IO需经过第二控制器才能传输到第一控制器的情况,此时,双控存储服务器在对第一控制器的IO进行限流的过程中,可以基于限流策略确定第一控制器向第二控制器镜像的第二IO最大数值,将第二IO最大数值作为当前第二IO镜像值;若第二控制器向第一控制器镜像IO,则将当前第二IO镜像值减1;若接收到第一控制器返回的镜像值,则将当前第二IO镜像值加1;判断当前第二IO镜像值是否为零;若当前第二IO镜像值为零,则禁止第二控制器向第一控制器镜像IO;若当前第二IO镜像值不为零,则返回若第二控制器向第一控制器镜像IO,则将当前第二IO镜像值减1的步骤;其中,若第二乘积值大于第二差值,第一控制器落盘第二控制器镜像的IO后,向第二控制器返回镜像值。

需要说明的是,第一IO最大数值与第二IO最大数值可以相同也可以不同,本申请在此不做具体限定。

为了便于理解,假设第一控制器为A,第二控制器为B,A和B分别有两个池:OWNER池和NONE_OWNER池,分别缓存本端下发的IO和对端镜像过来的IO;A和B均有状态变量state,state只有三种状态:NONE、OWNER、NONE_OWNER,分别表示不限流、OWNER池限流,NONE_OWNER池限流;假设credit表示相应镜像IO的最大数值;则在ownerPercen的值小于等于(50-tolerateDeviation)的情况下,启动OWNER池的限流,将本端控制器的state置为OWNER,在noneOwnerPercent的值小于等于(50-tolerateDeviation)的情况下,启动NONE_OWNER池的限流,将本端控制器的state置为NONE_OWNER;则限流过程可以如下:

假设下发的IO归属于A控,也即A为主控制器,则首先将下发的IO放入A控OWNER池,然后再镜像到B控的NONE_OWNER池,镜像的过程中会消耗credit,每向对端镜像一个IO,本端credit的值减一,在A控的IO落盘后,会通知B控NONE_OWNER池释放镜像过去的IO,B控释放IO后,会判断B控对应的池的state:如果state为NONE_OWNER,则不向A控返还credit,同时通知A控已经释放成功,如果state为NONE或者OWNER,则向A控返回所有的credit,同时通知A控已经释放成功,A控的credit降到0时,将等待B控返还credit之后再处理IO,否则等待;

相应的,如果下发的IO归属于B控,也即B为主控制,但此时IO仍先到达A的话,则可以先将下发的IO放入A控NONE_OWNER池,然后再镜像到B控的OWNER池,镜像的过程中会消耗credit,每向对端镜像一个IO,本端credit的值减一,在B控的IO落盘后,会释放OWNER池镜像过去的IO,B控释放IO后,会判断B控对应的池的state:如果state为OWNER,则不向A控返还credit,同时通知A控已经释放成功,如果state为NONE或者NONE_OWNER,则向A控返回所有的credit,同时通知A控已经释放成功,A控的credit降到0时,将等待B控返还credit之后再处理IO,否则等待;此时,也可以是首先将下发的IO放入B控OWNER池,然后再镜像到A控的NONE_OWNER池,镜像的过程中会消耗credit,每向对端镜像一个IO,本端credit的值减一,在B控的IO落盘后,A会释放NONE_OWNER池镜像过来的IO,A控释放IO后,会判断A控对应的池的state:如果state为NONE_OWNER,则不向B控返还credit,同时通知B控已经释放成功,如果state为NONE或者OWNER,则向B控返回所有的credit,同时通知B控已经释放成功,B控的credit降到0时,将等待A控返还credit之后再处理IO,否则等待。

本申请提供的一种IO管理方法中,双控存储服务器在确定第一控制器下发IO的第一数量值的过程中,可以确定缓存的IO数量;判断IO数量是否大于预设数值;若IO数量大于预设数值,则执行确定第一控制器下发的IO的第一数量值的步骤。也即可以在双控存储服务器的资源紧张的情况下,才执行本申请提供的IO管理方法,此外,实际应用中,还可以定时执行本申请提供的IO管理方法等,本申请在此不做具体限定。

本申请提供的一种IO管理方法中,双控存储服务器在确定第二控制器下发IO的第二数量值的过程中,因为第二控制器镜像的IO数量也即第二控制器下发IO的数量,所以可以确定第一控制器接收的第二控制器镜像的IO的第二数量值。

请参阅图2,图2为本申请实施例提供的一种IO管理系统的结构示意图。

本申请实施例提供的一种IO管理系统,应用于双控存储服务器,可以包括:

第一确定模块101,用于确定第一控制器下发IO的第一数量值;

第二确定模块102,用于确定第二控制器下发IO的第二数量值;

第一获取模块103,用于获取预设的IO差值,IO差值表征第一控制器处理IO效率与第二控制器处理IO效率的偏差值;

第一判断模块104,用于判断第一数量值与第二数量值的差值是否大于等于IO差值;若第一数量值与第二数量值间的差值大于等于IO差值,则基于第一数量值与第二数量值的大小关系进行IO限流,以使第一控制器处理IO效率与第二控制器处理IO效率的差值在预设范围内。

本申请实施例提供的一种IO管理系统,应用于双控存储服务器,第一判断模块可以包括:

第一计算单元,用于计算第一数量值与第二数量值的和值;

第一判断单元,用于判断和值是否为零;若和值为零,则判定第一数量值与第二数量值的差值小于IO差值;若和值不为零,则计算第一数量值与和值的第一比值,计算第一比值与100的第一乘积值,计算第二数量值与和值的第二比值,计算第二比值与100的第二乘积值,计算50与IO差值的第二差值,判断第一乘积值是否小于第二差值;若第一乘积值小于等于第二差值,则判定第一数量值与第二数量值的差值大于等于IO差值,若第一乘积值大于第二差值,则判断第二乘积值是否小于第二差值;若第二乘积值小于等于第二差值,则判定第一数量值与第二数量值的差值大于等于IO差值;若第二乘积值大于第二差值,则判定第一数量值与第二数量值的差值小于IO差值。

本申请实施例提供的一种IO管理系统,应用于双控存储服务器,第一判断模块可以包括:

第一限流单元,用于若第一乘积值小于等于第二差值,则对第二控制器的IO进行限流;

第二限流单元,用于若第二乘积值小于等于第二差值,则对第一控制器的IO进行限流。

本申请实施例提供的一种IO管理系统,应用于双控存储服务器,第一限流单元可以具体用于:基于限流策略确定第二控制器向第一控制器镜像的第一IO最大数值,将IO最大数值作为当前第一IO镜像值;若第二控制器向第一控制器镜像IO,则将当前第一IO镜像值减1;若接收到第一控制器返回的镜像值,则将当前第一IO镜像值加1;判断当前第一IO镜像值是否为零;若当前第一IO镜像值为零,则禁止第二控制器接收IO;若当前第一IO镜像值不为零,则返回若第二控制器向第一控制器镜像IO,则将当前第一IO镜像值减1的步骤;其中,若第一乘积值大于第二差值,第一控制器释放第二控制器镜像的IO后,向第二控制器返回镜像值。

本申请实施例提供的一种IO管理系统,应用于双控存储服务器,第二限流单元可以具体用于:基于限流策略确定第一控制器向第二控制器镜像的第二IO最大数值,将第二IO最大数值作为当前第二IO镜像值;若第二控制器向第一控制器镜像IO,则将当前第二IO镜像值减1;若接收到第一控制器返回的镜像值,则将当前第二IO镜像值加1;判断当前第二IO镜像值是否为零;若当前第二IO镜像值为零,则禁止第二控制器向第一控制器镜像IO;若当前第二IO镜像值不为零,则返回若第二控制器向第一控制器镜像IO,则将当前第二IO镜像值减1的步骤;其中,若第二乘积值大于第二差值,第一控制器落盘第二控制器镜像的IO后,向第二控制器返回镜像值。

本申请实施例提供的一种IO管理系统,应用于双控存储服务器,第一确定模块可以包括:

第一确定单元,用于确定缓存的IO数量;

第二判断单元,用于判断IO数量是否大于预设数值;若IO数量大于预设数值,则执行确定第一控制器下发的IO的第一数量值的步骤。

本申请实施例提供的一种IO管理系统,应用于双控存储服务器,第二确定模块可以包括:

第二确定单元,用于确定第一控制器接收的第二控制器镜像的IO的第二数量值。

本申请还提供了一种IO管理设备及计算机可读存储介质,其均具有本申请实施例提供的一种IO管理方法具有的对应效果。请参阅图3,图3为本申请实施例提供的一种IO管理设备的结构示意图。

本申请实施例提供的一种IO管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:

确定第一控制器下发IO的第一数量值;

确定第二控制器下发IO的第二数量值;

获取预设的IO差值,IO差值表征第一控制器处理IO效率与第二控制器处理IO效率的偏差值;

判断第一数量值与第二数量值的差值是否大于等于IO差值;

若第一数量值与第二数量值间的差值大于等于IO差值,则基于第一数量值与第二数量值的大小关系进行IO限流,以使第一控制器处理IO效率与第二控制器处理IO效率的差值在预设范围内。

本申请实施例提供的一种IO管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:计算第一数量值与第二数量值的和值;判断和值是否为零;若和值为零,则判定第一数量值与第二数量值的差值小于IO差值;若和值不为零,则计算第一数量值与和值的第一比值,计算第一比值与100的第一乘积值,计算第二数量值与和值的第二比值,计算第二比值与100的第二乘积值,计算50与IO差值的第二差值,判断第一乘积值是否小于第二差值;若第一乘积值小于等于第二差值,则判定第一数量值与第二数量值的差值大于等于IO差值,若第一乘积值大于第二差值,则判断第二乘积值是否小于第二差值;若第二乘积值小于等于第二差值,则判定第一数量值与第二数量值的差值大于等于IO差值;若第二乘积值大于第二差值,则判定第一数量值与第二数量值的差值小于IO差值。

本申请实施例提供的一种IO管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:若第一乘积值小于等于第二差值,则对第二控制器的IO进行限流;若第二乘积值小于等于第二差值,则对第一控制器的IO进行限流。

本申请实施例提供的一种IO管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:基于限流策略确定第二控制器向第一控制器镜像的第一IO最大数值,将IO最大数值作为当前第一IO镜像值;若第二控制器向第一控制器镜像IO,则将当前第一IO镜像值减1;若接收到第一控制器返回的镜像值,则将当前第一IO镜像值加1;判断当前第一IO镜像值是否为零;若当前第一IO镜像值为零,则禁止第二控制器接收IO;若当前第一IO镜像值不为零,则返回若第二控制器向第一控制器镜像IO,则将当前第一IO镜像值减1的步骤;其中,若第一乘积值大于第二差值,第一控制器释放第二控制器镜像的IO后,向第二控制器返回镜像值。

本申请实施例提供的一种IO管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:基于限流策略确定第一控制器向第二控制器镜像的第二IO最大数值,将第二IO最大数值作为当前第二IO镜像值;若第二控制器向第一控制器镜像IO,则将当前第二IO镜像值减1;若接收到第一控制器返回的镜像值,则将当前第二IO镜像值加1;判断当前第二IO镜像值是否为零;若当前第二IO镜像值为零,则禁止第二控制器向第一控制器镜像IO;若当前第二IO镜像值不为零,则返回若第二控制器向第一控制器镜像IO,则将当前第二IO镜像值减1的步骤;其中,若第二乘积值大于第二差值,第一控制器落盘第二控制器镜像的IO后,向第二控制器返回镜像值。

本申请实施例提供的一种IO管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:确定缓存的IO数量;判断IO数量是否大于预设数值;若IO数量大于预设数值,则执行确定第一控制器下发的IO的第一数量值的步骤。

本申请实施例提供的一种IO管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:确定第一控制器接收的第二控制器镜像的IO的第二数量值。

请参阅图4,本申请实施例提供的另一种IO管理设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现IO管理设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。

本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:

确定第一控制器下发IO的第一数量值;

确定第二控制器下发IO的第二数量值;

获取预设的IO差值,IO差值表征第一控制器处理IO效率与第二控制器处理IO效率的偏差值;

判断第一数量值与第二数量值的差值是否大于等于IO差值;

若第一数量值与第二数量值间的差值大于等于IO差值,则基于第一数量值与第二数量值的大小关系进行IO限流,以使第一控制器处理IO效率与第二控制器处理IO效率的差值在预设范围内。

本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:计算第一数量值与第二数量值的和值;判断和值是否为零;若和值为零,则判定第一数量值与第二数量值的差值小于IO差值;若和值不为零,则计算第一数量值与和值的第一比值,计算第一比值与100的第一乘积值,计算第二数量值与和值的第二比值,计算第二比值与100的第二乘积值,计算50与IO差值的第二差值,判断第一乘积值是否小于第二差值;若第一乘积值小于等于第二差值,则判定第一数量值与第二数量值的差值大于等于IO差值,若第一乘积值大于第二差值,则判断第二乘积值是否小于第二差值;若第二乘积值小于等于第二差值,则判定第一数量值与第二数量值的差值大于等于IO差值;若第二乘积值大于第二差值,则判定第一数量值与第二数量值的差值小于IO差值。

本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:若第一乘积值小于等于第二差值,则对第二控制器的IO进行限流;若第二乘积值小于等于第二差值,则对第一控制器的IO进行限流。

本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:基于限流策略确定第二控制器向第一控制器镜像的第一IO最大数值,将IO最大数值作为当前第一IO镜像值;若第二控制器向第一控制器镜像IO,则将当前第一IO镜像值减1;若接收到第一控制器返回的镜像值,则将当前第一IO镜像值加1;判断当前第一IO镜像值是否为零;若当前第一IO镜像值为零,则禁止第二控制器接收IO;若当前第一IO镜像值不为零,则返回若第二控制器向第一控制器镜像IO,则将当前第一IO镜像值减1的步骤;其中,若第一乘积值大于第二差值,第一控制器释放第二控制器镜像的IO后,向第二控制器返回镜像值。

本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:基于限流策略确定第一控制器向第二控制器镜像的第二IO最大数值,将第二IO最大数值作为当前第二IO镜像值;若第二控制器向第一控制器镜像IO,则将当前第二IO镜像值减1;若接收到第一控制器返回的镜像值,则将当前第二IO镜像值加1;判断当前第二IO镜像值是否为零;若当前第二IO镜像值为零,则禁止第二控制器向第一控制器镜像IO;若当前第二IO镜像值不为零,则返回若第二控制器向第一控制器镜像IO,则将当前第二IO镜像值减1的步骤;其中,若第二乘积值大于第二差值,第一控制器落盘第二控制器镜像的IO后,向第二控制器返回镜像值。

本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:确定缓存的IO数量;判断IO数量是否大于预设数值;若IO数量大于预设数值,则执行确定第一控制器下发的IO的第一数量值的步骤。

本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:确定第一控制器接收的第二控制器镜像的IO的第二数量值。

本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。

本申请实施例提供的一种IO管理系统、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的一种IO管理方法对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种独立冗余磁盘阵列的重构方法、装置、设备及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类