基于中等范围性能水平来动态负荷平衡存储介质装置的系统和方法

文档序号:10618702阅读:346来源:国知局
基于中等范围性能水平来动态负荷平衡存储介质装置的系统和方法
【专利摘要】一种控制所述多个存储介质装置的存储控制器,该存储控制器从表示负荷的队列接收一个或多个命令、识别具有中等范围访问速率的一组加权存储区域以标定足以服务所述负荷的中等范围性能水平;并基于所述中等范围性能水平通过只利用具有中等范围访问速率的所述一组加权存储区域来分配负荷,从而标定足以服务所述负荷的中等范围性能水平。
【专利说明】
基于中等范围性能水平来动态负荷平衡存储介质装置的系统 和方法
技术领域
[0001] 本发明总体设及存储领域。更具体地,本发明设及基于中等范围性能水平来动态 负荷平衡存储介质装置的系统和方法。
【背景技术】
[0002] 本机命令队列(化tive Command Queuing,NCQ)是现有技术中已知的用于优化在 单个驱动器中执行的命令(即,读和/或写)的顺序,其中优化在单个驱动器内被局部化。然 而,具有此类NCQ支持的驱动器的存储系统并未将存储系统在整体上看作现有技术,诸如本 机命令队列(NCQ)或存储介质装置磁头运动时间最小化,考虑在真空中的单个主机-从机 (即,单个存储介质装置)。现有技术中不存在的是将通常应用于宏观层面的负荷平衡方法 (应用于存储系统或计算机系统外面的网络)引入到存储系统自身内的微观层面并使用专 用于存储介质装置的标准跨该系统内的存储介质装置应用的系统和方法。
[0003] 本发明的实施例是相对于对现有系统和方法的改进。

【发明内容】

[0004] 在一个实施例中,本发明提供一种存储系统,其包括:多个存储介质装置,每个存 储介质装置包括一个或多个可寻址存储区域,每个区域至少基于快速访问速率、中等范围 访问速率或慢速访问速率分别被分配不同的权重;控制多个存储介质装置的存储控制器, 该存储控制器:从表示负荷的队列接收一个或多个命令;识别具有中等范围访问速率的一 组加权存储区域W标定足W服务该负荷的中等范围性能水平;并基于该中等范围性能水平 通过只利用具有中等范围访问速率的一组加权存储区域来分配负荷,由此标定足W服务该 负荷的中等范围性能水平。
[0005] 在另一实施例中,本发明提供一种存储系统,其包括:多个存储介质装置,每个存 储介质装置包括一个或多个可寻址存储区域,每个区域至少基于快速访问速率或慢速访问 速率分别被分配不同的权重;控制多个存储介质装置的存储控制器,该存储控制器:从表示 负荷的队列接收一个或多个命令;导出为快速访问速率和慢速访问速率的函数的中等范围 访问速率,其中中等范围访问速率通过使快速访问速率和慢速访问速率交替来实现;并基 于足W服务负荷的中等范围性能水平来分配该负荷。
[0006] 在另一实施例中,本发明提供一种在存储系统中实施的方法,该存储系统包括:多 个存储介质装置,每个存储介质装置包括一个或多个可寻址存储区域,每个区域至少基于 快速访问速率、中等范围访问速率或慢速访问速率分别被分配不同的权重;控制多个存储 介质装置的存储控制器,该方法包括:从表示负荷的队列接收一个或多个命令;识别具有中 等范围访问速率的一组加权存储区域W标定足W服务该负荷的中等范围性能水平;并基于 该中等范围性能水平通过只利用具有中等范围访问速率的该一组加权存储区域来分配负 荷,由此标定足W服务该负荷的中等范围性能水平。
[0007] 在另一实施例中,本发明提供一种在存储系统中实施的方法,该存储系统包括:多 个存储介质装置,每个存储介质装置包括一个或多个可寻址存储区域,每个区域至少基于 快速访问速率或慢速访问速率分别被分配不同的权重;控制多个存储介质装置的存储控制 器,该方法包括:从表示负荷的队列接收一个或多个命令;导出为快速访问速率和慢速访问 速率的函数的中等范围访问速率,其中中等范围访问速率通过使快速访问速率和慢速访问 速率交替来实现;并基于足W服务负荷的中等范围性能水平来分配该负荷。
[0008] 在另一实施例中,本发明提供一种非暂态、计算机可访问的存储器介质,该存储器 介质存储用于执行在存储系统中实施的方法的程序指令,该存储系统包括:多个存储介质 装置,每个存储介质装置包括一个或多个可寻址存储区域,每个区域至少基于快速访问速 率、中等范围访问速率或慢速访问速率分别被分配不同的权重;控制多个存储介质装置的 存储控制器,其中该程序指令可由处理器执行W :从表示负荷的队列接收一个或多个命令; 识别具有中等范围访问速率的一组加权存储区域W标定足W服务该负荷的中等范围性能 水平;并基于该中等范围性能水平通过只利用具有中等范围访问速率的该一组加权存储区 域来分配负荷,由此标定足W服务该负荷的中等范围性能水平。
[0009] 在另一实施例中,本发明提供一种非暂态、计算机可访问的存储器介质,该存储器 介质存储用于执行在存储系统中实施的方法的程序指令,该存储系统包括:多个存储介质 装置,每个存储介质装置包括一个或多个可寻址存储区域,每个区域至少基于快速访问速 率或慢速访问速率分别被分配不同的权重;控制多个存储介质装置的存储控制器,其中该 程序指令可由处理器执行W :从表示负荷的队列接收一个或多个命令;导出为快速访问速 率和慢速访问速率的函数的中等范围访问速率,其中中等范围访问速率通过使快速访问速 率和慢速访问速率交替来实现;并基于足W服务负荷的中等范围性能水平来分配该负荷。
[0010] 本发明提供一种存储系统,其包括:多个存储介质装置;控制该多个存储介质装置 的至少一个存储控制器;与该存储控制器通信W跨存储介质装置平衡存储负荷的负荷平衡 器;在负荷平衡器和存储控制器之间共享的可选存储器;并且该负荷平衡器接收用于在多 个存储介质装置中的至少一个存储介质装置中执行的一组命令、可选地将该一组命令存储 在共享存储器中、向每个命令指定正偏置或负偏置;并作为所指定的正偏置或负偏置的函 数来在该存储介质装置之间分配负荷。
[0011] 本发明提供一种存储系统,包括:至少包括第一存储介质装置和第二存储介质装 置的多个存储介质装置;控制第一和第二存储介质装置的至少一个存储控制器;存储要在 第一或第二存储介质装置中执行的一组命令的队列;其中该存储控制器:计算与第一存储 介质装置相关联的作为该一组命令、与在第一存储介质装置中执行该一组命令相关联的第 一偏置W及与在第一存储介质装置中执行该一组命令相关联的至少一个时间因数的函数 的第一表观负荷(apparent load);计算与第二存储介质装置相关联的作为该一组命令、与 在第二存储介质装置中执行该一组命令相关联的第二偏置W及与在第二存储介质装置中 执行该一组命令相关联的至少一个时间因数的函数的第二表观负荷;在第一偏置和第二偏 置被设置为中性的无偏置值时,第一表观负荷小于第二表观负荷,指示在第一存储介质装 置中潜在地执行所述一组命令;负偏置第一偏置直到第一表观负荷大于第二表观负荷;并 在第二存储介质装置中执行该一组命令。
[0012] 本发明提供一种在存储系统中实施的方法,该存储系统包括:至少包括第一存储 介质装置和第二存储介质装置的多个存储介质装置;控制第一和第二存储介质装置的至少 一个存储控制器;存储要在第一或第二存储介质装置中执行的一组命令的队列,该方法包 括:计算与第一存储介质装置相关联的作为该一组命令、与在第一存储介质装置中执行该 一组命令相关联的第一偏置W及与在第一存储介质装置中执行该一组命令相关联的至少 一个时间因数的函数的第一表观负荷;计算与第二存储介质装置相关联的作为该一组命 令、与在第二存储介质装置中执行该一组命令相关联的第二偏置W及与在第二存储介质装 置中执行该一组命令相关联的至少一个时间因数的函数的第二表观负荷;在第一偏置和第 二偏置被设置为中性的无偏置值时,第一表观负荷小于第二表观负荷,指示在第一存储介 质装置中潜在地执行所述一组命令;负偏置第一偏置直到第一表观负荷大于第二表观负 荷;并在第二存储介质装置中执行该一组命令。
[0013] 本发明提供一种非暂态、计算机可访问的存储器介质,该存储器介质存储用于执 行在存储系统中实施的方法的程序指令,该存储系统包括:至少包括第一存储介质装置和 第二存储介质装置的多个存储介质装置;控制第一和第二存储介质装置的至少一个存储控 制器;存储要在第一或第二存储介质装置中执行的一组命令的队列,其中该程序指令可由 处理元件执行W :计算与第一存储介质装置相关联的作为该一组命令、与在第一存储介质 装置中执行该一组命令相关联的第一偏置W及与在第一存储介质装置中执行该一组命令 相关联的至少一个时间因数的函数的第一表观负荷;计算与第二存储介质装置相关联的作 为该一组命令、与在第二存储介质装置中执行该一组命令相关联的第二偏置W及与在第二 存储介质装置中执行该一组命令相关联的至少一个时间因数的函数的第二表观负荷;在第 一偏置和第二偏置被设置为中性的无偏置值时,第一表观负荷小于第二表观负荷,指示在 第一存储介质装置中潜在地执行所述一组命令;负偏置第一偏置直到第一表观负荷大于第 二表观负荷;并在第二存储介质装置中执行该一组命令。
[0014] 本发明提供一种存储系统,包括:至少包括第一存储介质装置和第二存储介质装 置的多个存储介质装置;控制第一和第二存储介质装置的至少一个存储控制器;存储要在 第一或第二存储介质装置中执行的一组命令的队列;其中该存储控制器:计算与第一存储 介质装置相关联的作为该一组命令、与在第一存储介质装置中执行该一组命令相关联的第 一偏置W及与在第一存储介质装置中执行该一组命令相关联的至少一个时间因数的函数 的第一表观负荷;计算与第二存储介质装置相关联的作为该一组命令、与在第二存储介质 装置中执行该一组命令相关联的第二偏置W及与在第二存储介质装置中执行该一组命令 相关联的至少一个时间因数的函数的第二表观负荷;在第一偏置和第二偏置被设置为中性 的无偏置值时,第一表观负荷小于第二表观负荷,指示在第一存储介质装置中潜在地执行 所述一组命令;正向偏置第二偏置直到第一表观负荷大于第二表观负荷;并在第二存储介 质装置中执行该一组命令。
[0015] 本发明提供一种在存储系统中实施的方法,该存储系统包括:至少包括第一存储 介质装置和第二存储介质装置的多个存储介质装置;控制第一和第二存储介质装置的至少 一个存储控制器;存储要在第一或第二存储介质装置中执行的一组命令的队列,该方法包 括:计算与第一存储介质装置相关联的作为该一组命令、与在第一存储介质装置中执行该 一组命令相关联的第一偏置W及与在第一存储介质装置中执行该一组命令相关联的至少 一个时间因数的函数的第一表观负荷;计算与第二存储介质装置相关联的作为该一组命 令、与在第二存储介质装置中执行该一组命令相关联的第二偏置W及与在第二存储介质装 置中执行该一组命令相关联的至少一个时间因数的函数的第二表观负荷;在第一偏置和第 二偏置被设置为中性的无偏置值时,第一表观负荷小于第二表观负荷,指示在第一存储介 质装置中潜在地执行所述一组命令;正向偏置第二偏置直到第一表观负荷大于第二表观负 荷;并在第二存储介质装置中执行该一组命令。
[0016] 本发明提供一种非暂态、计算机可访问的存储器介质,该存储器介质存储用于执 行在存储系统中实施的方法的程序指令,该存储系统包括:至少包括第一存储介质装置和 第二存储介质装置的多个存储介质装置;控制第一和第二存储介质装置的至少一个存储控 制器;存储一组要在第一或第二存储介质装置中执行的命令的队列;其中该程序指令可由 处理元件执行W :计算与第一存储介质装置相关联的作为该一组命令、与在第一存储介质 装置中执行该一组命令相关联的第一偏置W及与在第一存储介质装置中执行该一组命令 相关联的至少一个时间因数的函数的第一表观负荷;计算与第二存储介质装置相关联的作 为该一组命令、与在第二存储介质装置中执行该一组命令相关联的第二偏置W及与在第二 存储介质装置中执行该一组命令相关联的至少一个时间因数的函数的第二表观负荷;在第 一偏置和第二偏置被设置为中性的无偏置值时,第一表观负荷小于第二表观负荷,指示在 第一存储介质装置中潜在地执行所述一组命令;正向偏置第二偏置直到第一表观负荷大于 第二表观负荷;并在第二存储介质装置中执行该一组命令。
[0017] 本发明提供一种存储系统,包括:至少包括第一存储介质装置和第二存储介质装 置的多个存储介质装置;控制第一和第二存储介质装置的至少一个存储控制器;存储要在 第一或第二存储介质装置中执行的一组命令的队列;其中该存储控制器:计算与第一存储 介质装置相关联的作为该一组命令、与在第一存储介质装置中执行该一组命令相关联的第 一偏置W及与在第一存储介质装置中执行该一组命令相关联的至少一个时间因数的函数 的第一表观负荷;计算与第二存储介质装置相关联的作为该一组命令、与在第二存储介质 装置中执行该一组命令相关联的第二偏置W及与在第二存储介质装置中执行该一组命令 相关联的至少一个时间因数的函数的第二表观负荷;在第一偏置和第二偏置被设置为中性 的无偏置值时,第一表观负荷大于第二表观负荷,指示在第二存储介质装置中潜在地执行 所述一组命令;负偏置第二偏置直到第二表观负荷大于第一表观负荷;并在第一存储介质 装置中执行该一组命令。
[0018] 本发明提供一种在存储系统中实施的方法,该存储系统包括:至少包括第一存储 介质装置和第二存储介质装置的多个存储介质装置;控制第一和第二存储介质装置的至少 一个存储控制器;存储要在第一或第二存储介质装置中执行的一组命令的队列,该方法包 括:计算与第一存储介质装置相关联的作为该一组命令、与在第一存储介质装置中执行该 一组命令相关联的第一偏置W及与在第一存储介质装置中执行该一组命令相关联的至少 一个时间因数的函数的第一表观负荷;计算与第二存储介质装置相关联的作为该一组命 令、与在第二存储介质装置中执行该一组命令相关联的第二偏置W及与在第二存储介质装 置中执行该一组命令相关联的至少一个时间因数的函数的第二表观负荷;在第一偏置和第 二偏置被设置为中性的无偏置值时,第一表观负荷大于第二表观负荷,指示在第二存储介 质装置中潜在地执行所述一组命令;负偏置第二偏置直到第二表观负荷大于第一表观负 荷;并在第一存储介质装置中执行该一组命令。
[0019] 本发明提供一种非暂态、计算机可访问的存储器介质,该存储器介质存储用于执 行在存储系统中实施的方法的程序指令,该存储系统包括:至少包括第一存储介质装置和 第二存储介质装置的多个存储介质装置;控制第一和第二存储介质装置的至少一个存储控 制器;存储要在第一或第二存储介质装置中执行的一组命令的队列,其中该程序指令可由 处理元件执行W :计算与第一存储介质装置相关联的作为该一组命令、与在第一存储介质 装置中执行该一组命令相关联的第一偏置W及与在第一存储介质装置中执行该一组命令 相关联的至少一个时间因数的函数的第一表观负荷;计算与第二存储介质装置相关联的作 为该一组命令、与在第二存储介质装置中执行该一组命令相关联的第二偏置W及与在第二 存储介质装置中执行该一组命令相关联的至少一个时间因数的函数的第二表观负荷;在第 一偏置和第二偏置被设置为中性的无偏置值时,第一表观负荷大于第二表观负荷,指示在 第二存储介质装置中潜在地执行所述一组命令;负偏置第二偏置直到第二表观负荷大于第 一表观负荷;并在第一存储介质装置中执行该一组命令。
[0020] 本发明提供一种存储系统,包括:至少包括第一存储介质装置和第二存储介质装 置的多个存储介质装置;控制第一和第二存储介质装置的至少一个存储控制器;存储要在 第一或第二存储介质装置中执行的一组命令的队列;其中该存储控制器:计算与第一存储 介质装置相关联的作为该一组命令、与在第一存储介质装置中执行该一组命令相关联的第 一偏置W及与在第一存储介质装置中执行该一组命令相关联的至少一个时间因数的函数 的第一表观负荷;计算与第二存储介质装置相关联的作为该一组命令、与在第二存储介质 装置中执行该一组命令相关联的第二偏置W及与在第二存储介质装置中执行该一组命令 相关联的至少一个时间因数的函数的第二表观负荷;在第一偏置和第二偏置被设置为中性 的无偏置值时,第一表观负荷大于第二表观负荷,指示在第二存储介质装置中潜在地执行 所述一组命令;正偏置第一偏置直到第二表观负荷大于第一表观负荷;并在第一存储介质 装置中执行该一组命令。
[0021] 本发明提供一种在存储系统中实施的方法,该存储系统包括:至少包括第一存储 介质装置和第二存储介质装置的多个存储介质装置;控制第一和第二存储介质装置的至少 一个存储控制器;存储要在第一或第二存储介质装置中执行的一组命令的队列,该方法包 括:计算与第一存储介质装置相关联的作为该一组命令、与在第一存储介质装置中执行该 一组命令相关联的第一偏置W及与在第一存储介质装置中执行该一组命令相关联的至少 一个时间因数的函数的第一表观负荷;计算与第二存储介质装置相关联的作为该一组命 令、与在第二存储介质装置中执行该一组命令相关联的第二偏置W及与在第二存储介质装 置中执行该一组命令相关联的至少一个时间因数的函数的第二表观负荷;在第一偏置和第 二偏置被设置为中性的无偏置值时,第一表观负荷大于第二表观负荷,指示在第二存储介 质装置中潜在地执行所述一组命令;正偏置第一偏置直到第二表观负荷大于第一表观负 荷;并在第一存储介质装置中执行该一组命令。
[0022] 本发明提供一种非暂态、计算机可访问的存储器介质,该存储器介质存储用于执 行在存储系统中实施的方法的程序指令,该存储系统包括:至少包括第一存储介质装置和 第二存储介质装置的多个存储介质装置;控制第一和第二存储介质装置的至少一个存储控 制器;存储要在第一或第二存储介质装置中执行的一组命令的队列,其中该程序指令可由 处理元件执行W :计算与第一存储介质装置相关联的作为该一组命令、与在第一存储介质 装置中执行该一组命令相关联的第一偏置W及与在第一存储介质装置中执行该一组命令 相关联的至少一个时间因数的函数的第一表观负荷;计算与第二存储介质装置相关联的作 为该一组命令、与在第二存储介质装置中执行该一组命令相关联的第二偏置W及与在第二 存储介质装置中执行该一组命令相关联的至少一个时间因数的函数的第二表观负荷;在第 一偏置和第二偏置被设置为中性的无偏置值时,第一表观负荷大于第二表观负荷,指示在 第二存储介质装置中潜在地执行所述一组命令;正偏置第一偏置直到第二表观负荷大于第 一表观负荷;并在第一存储介质装置中执行该一组命令。
[0023] 应指出,虽然本说明书参照至少一个存储控制器,但是本发明的教义等同地应用 于多个存储控制器,包含多个分布式存储控制器。同样,虽然为了简化起见,该系统被描述 为在底板(chassis)内,但是应指出,整个系统不需要共同位于一个底板内或物理位置内, 因为一个或多个独立元件可W作为不同的底板/位置的一部分来定位。另外,该系统也可W 具有父存储控制器和子存储控制器,其中父存储控制器做出决策W跨子存储控制器进行平 衡,该子存储控制器可W接着做出决策W跨其子存储控制器进行平衡等(最终到达连接到 在链路中的最后的(多个)存储控制器的存储介质装置)。
[0024] 虽然本说明书参照正和负偏置符号W人为降低或人为增加负荷,但是应指出,相 反的符号也在本发明的范围内(例如,正偏置指代人为增加负荷,W及负偏置指代人为降低 负荷)。
【附图说明】
[0025] 根据一个或多个不同的实施例,本公开参考附图来详细描述。仅出于说明的目的 来提供附图,并且该附图只描绘本公开的示例。运些附图被提供W便于读者理解本公开,并 且不应视为对本公开的广度、范围或适用性的限制。应指出,为清楚和易于说明起见,运些 附图未必按比例绘制。
[0026] 图1绘出控制具有变化的访问速率的区域的存储介质装置的存储控制器。
[0027] 图2A-图2B和图3示出基于中等范围性能水平分配负荷的本发明的方法的示例。 [002引图4A、图5A、图6A和图7A示出用于正偏置或负偏置表观负荷的本发明的系统的各 种实施例。
[0029] 图4B、图5B、图6B和图7B示出与用于正偏置或负偏置表观负荷的本发明的各种实 施例相关联的方法。
【具体实施方式】
[0030] 虽然本发明在优选实施例中示出和描述,但是本发明可W在许多不同的配置中形 成。在附图中描述了本发明的优选实施例,并且其将在本文中被详细描述,其中要理解本发 明应被视为本发明的原理及其构造的相关功能性说明的范例,并不旨在将本发明限制于所 示出的实施例。本领域中的技术人员应将设想在本发明的范围内的许多其它变型。
[0031] 应指出,在描述中,引用"一个实施例"或"实施例"意指所引用的特征被包含在本 发明的至少一个实施例中。另外,在本描述中单独引用"一个实施例"时,并不一定意指相同 的实施例;然而,正如对于本领域的普通技术人员来说显而易见的是,此类实施例既不是互 相排斥的也不是不同的,除非另有说明。因此,本发明可W包含本文所述实施例的任何种类 的组合和/或整合。
[0032] 本发明从整体上看待存储系统。然而,现有技术,诸如本机命令队列(NCQ)或存储 介质装置磁头运动时间最小化考虑在真空中的单个主机-从机(即,单个存储介质装置)。本 发明将通常应用于宏观层面的负荷平衡方法(至存储系统或计算机系统外面的网络)引入 到存储系统自身内的微观层面并使用专用于存储介质装置的标准跨系统内的存储介质装 置应用。
[0033] 在一个实施例中,本发明的系统和方法保持访问其介质的快速区域的存储介质装 置和访问其介质的慢速区域的存储介质装置的平衡W产生比随机访问存储介质装置的吞 吐率更高的持续吞吐率,从而标定存储介质装置的平均吞吐率(例如,在快速访问位置和慢 速访问位置之间)。
[0034] 在另一个实施例中,考虑被称为DR(存储介质装置和其内的区域)并应用于旋转存 储介质装置的测量单元。在该示例中,DR通过基于物理特性为存储系统内的所有存储介质 装置及其子区域指定权重来计算。运些区域可W为一系列连续的扇区。该权重的其它分量 基于所记录的历史性能趋势和实时的实际性能。接着,基于所计算的DR,人们可W基于运些 DR权重跨存储系统来分配负荷。一种分配方案将标定最小性能水平,在该分配方案中,可W 在更高值DR之前使用更低值(更低性能)DRW保持高值DR保留W便在需要时使用,从而满足 最小性能水平。另一方案将使性能最大化并在任何时候跨最高可用DR分配负荷。示例区域 加权方案将通过参考区域开始,并且给该参考区域指定1.0的权重,通常最低执行区域被选 择为参考区域(reference)。每个其它区域的权重被指定为其性能与参考区域的性能的比 率。如果某区域的性能比参考区域高50%,则该区域的权重将被指定为1.5。如果某区域的 性能比参考区域的性能低10%,则该区域的权重将被指定为0.9。
[0035] DR同样应用于非旋转存储介质装置,仅仅是基于技术来定义不同的权重和区域。 在一些此类装置中,DR可W包含基于访问类型(例如,访问类型可W基于读或写,诸如固态 存储介质装置的情况,在固态存储介质装置中,快速访问速率和慢速访问速率可W对应于 读速率或写速率并且固态存储介质装置可W具有重叠的读和写区域)的区域W考虑每一区 域的不同性能水平。此外,一些此类装置也可W被认为是不同技术的混合体,诸如固态的和 旋转的,然而,每种技术的性能不同,并且在一些情况下,在每种技术内进一步不同。
[0036] 不同的存储介质装置具有不同的特征和限制。例如,旋转硬盘驱动器必须跨旋转 盘机械地移动臂和磁头来定位数据块(寻道时间),并且所支持的数据速率随着数据在旋转 盘上的位置而变化,使得更接近该盘的外径的数据更快地流入和流出该旋转盘。在此情形 下,最小化磁头的运动W及在盘的外周定位数据往往是可取的。
[0037] 本发明基于许多因素向命令指定权重,该许多因素包含但不限于下面的存储介质 装置的限制。接着,从该角度而不是简单地从未解决的命令kommand OUts化nding)的数量 来看待命令队列丰满度(fullness)/负荷,W确定存储介质装置的"表观负荷(apparent load)"。本发明也公开了用来人为地影响表观负荷的正偏置和负偏置的使用。该偏置可W 基于什么被预期或将要被预定用于存储介质装置(诸如负荷保留(load reservation)和负 荷预测(load prediction))、什么已承诺/待处理或什么是期望的。保留和承诺之间的差别 为保留可W基于新信息来改变或重新分配。预测可W基于历史趋势或基于特定流量类型的 知识。非限制性的预测示例包含:
[0038] ?视频流,其通常保持给定的平均速率;
[0039] ?已知或测量的源或目的地的带宽限制,诸如目的地X不能接受例如比1加PS更 快的数据;W及
[0040] ?基于流量类型进行的调节,诸如其突发性质。
[0041] 当从整体上看待存储系统时,人们可W通过负偏置使某些存储介质装置获得更少 的负荷(故意使某些存储介质装置"看上去"担负更重的负荷),因此迫使其它存储介质装置 承担额外的负荷。人们也可W通过添加正偏置来增加存储介质装置的负荷(故意使某些存 储介质装置"看上去"担负不那么重的负荷)。降低存储介质装置上的负荷W便降低功耗或 工作溫度可能是可取的。另选地,如果给定的存储介质装置热分布是所期望的(诸如期望更 高的工作溫度W便在极端寒冷的天气中或在基于空间的设备中工作),则增加负荷并因此 增加溫度可能也是期望的。偏置对于跨具有变化的容量的存储介质装置分配数据量W确保 任何给定的存储介质装置不会过早填满从而不可用于随后的写入并因此减少可W跨存储 介质装置分配给定写负荷的存储介质装置的数量是有用的。通过保持一些带宽或负荷能力 保留W在需要时使用W增加瞬时数据速率W便维持可持续的数据速率均值(更像调节器) 来维持某一可持续的数据速率对于存储系统来说也是有用的。如果没有偏置,则更快的存 储介质装置将通过缺省自然获得更多的负荷,因为它们看上去担负不那么重的负荷(即,它 们能够更快地处理更多的数据),但运并不总是期望的并且运可W通过偏置来修正。偏置允 许数据流的"流量整形",运可W有意识地对存储介质装置上的负荷W及可见于附接网络上 的负荷整形W匹配期望的分布。该偏置也可W基于数据类型(即,数据流量的类型)或遵循 给定的服务质量(QoS)方案来改变。
[0042] 在一个实施例中,表观负荷可W仅仅用于监测目的,意味着该表观负荷可W用作 系统性能的指示器而不被用于W任何方式更改负荷。
[0043] 在另一实施例中,表观负荷可W包含从自始至终(all the way)发出命令的点到 收到响应的点的"整个路径"。现有技术只考虑存储介质装置自身,假设到达/来自至存储 器/多个存储器的传输和运动的时间可忽略不计。然而,在处理给定的持续数据速率时,传 输层(诸如在通过存储控制器和存储介质装置具有物理间隔的网络或分布式系统时)W及 到达/来自存储介质装置和存储器/多个存储器的数据的运动可能是重要的。如果数据不能 足够快地流向存储介质装置或从该存储介质装置被传送走,则存储介质装置的性能将受影 响,运种状况通常不在存储介质装置的直接控制下,其将导致数据回推或数据匿乏。在路径 中的一个或多个高速缓冲器的影响随后将被包含在表观负荷内。
[0044] 为清楚起见,下面为非限制性表观负荷(ApparentLoad)计算:
[0045] 于队列中的N个命令
[0046]
[0047] Imin =仔储化巧巧直的仕阳平/|、怖兮从发出到完成的可能的最小时间。
[004引Tcmd =要发出的指定命令从发出到完成的时间。运取决于实际的命令。例如,在一 些存储介质装置中,写入可能需要与读出不同的时间段来完成。同样,如果路径包含一个或 多个高速缓冲器,则完成该命令的时间可能在不同的时间改变。
[0049] 如eue化pacity(队列容量)=队列可W保持的命令的最大数量。
[0050] Bias(偏置)=应用于每个命令的期望的人为影响。数字范围为0.0^10.0;例如, 中性偏置将为1.0,正偏置将是低于1.0的值(W人为地降低表观负荷),而负偏置将是大于 1.0的值(W人为地增加表观负荷)。
[0051 ] RequiredSeekTime(所需寻道时间)=基于先前的命令的查找或历史性能或计算 的该命令的估计或实际的存储介质装置寻道时间。
[0052] Tmin和Tsmd两者为系统值。运些值可W基于存储介质装置的类别而改变(诸如旋转、 固态或混合)。运些值可W基于实时的测量系统特性和/或历史值被处理为静态或动态的。 此类测量可W包含溫度监测(当完成时间随着溫度变化时)或当前缓存内容。此外,用在该 系统中的每个特定存储介质装置可W是"合格的"并且Tmin和的值被确定并且被用于访 问该特定存储介质装置。另选地,类似存储介质装置的采样可W是"合格的"并被求均值W 产生用于该类存储介质装置的值。
[0053] 应指出,用在本文中的时间因素指的是所需的寻道时间、Tmin、Tcmd、它们的组合或 基于它们的各种组合的函数。
[0054] 表观负荷的一些非限制性示例用法包含但不限于:
[0055] ?重新排序队列中的命令;
[0056] ?影响存储介质装置的功耗和热分布;
[0057] ?从队列中去除命令;
[0058] ?将命令从一个存储介质装置的队列重新指派到另一存储介质装置;
[0059] ?最小化或最大化存储介质装置寻道时间;
[0060] ?控制存储介质装置的填充速率;和/或
[0061] ?被动监测系统性能。
[0062] 在一个实施例中,所描述的存储介质装置不是独立的物理装置,因为它可W是嵌 入在另一装置内的用于存储的存储器。
[0063] 本发明提供一种存储系统,其包括:多个存储介质装置;控制该多个存储介质装置 的至少一个存储控制器;与该存储控制器通信W跨存储介质装置来平衡存储负荷的负荷平 衡器;在负荷平衡器和存储控制器之间共享的可选存储器;并且该负荷平衡器接收用于在 多个存储介质装置中的至少一个存储介质装置中执行的多个命令、将该多个命令可选地存 储在共享存储器中、为每个命令指定正偏置或负偏置;并作为所指定的正偏置或负偏置的 函数在存储介质装置之间分配负荷。
[0064] 图1提供系统级图示W理解本发明的原理。在该非限制性示例中,本发明的系统包 括存储控制器102,其控制由104和106表示的多个存储介质装置。存储介质装置104包括具 有变化的访问速率的区域。例如,如果存储介质装置104为旋转盘驱动器,则存储介质装置 104的最外侧区域为快速访问区域,因为该区域指代提供最快的读/写访问速率的区域。沿 着相同的线,存储介质装置104的最内侧区域为慢速访问区域,因为该区域指代提供最慢的 读/写访问速率的区域。在快速访问速率区域和慢速访问速率区域之间也可W存在区域,我 们称该区域为中等范围访问速率区域。
[0065] 应指出,图1示出两个存储介质装置仅为了简化起见,并且本发明涵盖存在不止两 个存储介质装置的实例,大多数网络附接存储(NAS)装置或为存储区域网络(SAN)的一部分 的存储装置就是运种情况。
[0066] 在图1所示的示例中,存储介质装置104被示为具有=个访问速率区域,即快速访 问区域108、中等范围访问区域110和慢速访问区域112。还应指出,虽然在图1中公开了S层 访问区域(即,快速访问区域108、中等范围访问区域110和慢速访问区域112),但是相同的 教义可W扩展到在图1所示的快速访问速率区域108和慢速访问速率区112之间存在多个访 问速率区域的多层区域。在图1中,存储介质装置104的快速访问区域108进一步被细分为被 示为A&"、等的多个快速访问区域。类似地,存储介质装置104的中等范围访问区域 110进一步被细分被示为A听、等的多个区域,并且存储介质装置104的慢速访问区 域112进一步被细分被示为A辟、A巧等的多个区域。
[0067] 同样,如图1所示,存储介质装置106的快速访问区域108进一步被细分为被示为 A听、等的多个快速访问区域。类似地,存储介质装置106的中等范围访问区域110 进一步被细分为被示为&2巧\ 馬y等的多个区域,并且存储介质装置106的慢速访问区 域112进一步被细分为被示为化馬、&2馬等的多个区域。
[0068] 在一个实施例中,本发明提供一种存储系统,其包括:多个存储介质装置,每个存 储介质装置包括一个或多个可寻址存储区域,每个区域至少基于快速访问速率、中等范围 访问速率或慢速访问速率分别被指定不同的权重;控制多个存储介质装置的存储控制器, 该存储控制器:从表示负荷的队列接收一个或多个命令;识别具有中等范围访问速率的一 组加权存储区域W标定(target)足W服务该负荷的中等范围性能水平;并基于该中等范围 性能水平通过只利用具有中等范围访问速率的该一组加权存储区域来分配负荷,从而标定 足W服务该负荷的中等范围性能水平。在另一实施例中,本发明提供一种存储系统,其包 括:多个存储介质装置,每个存储介质装置包括一个或多个可寻址存储区域,每个区域至少 基于快速访问速率或慢速访问速率分别被指定不同的权重;控制多个存储介质装置的存储 控制器,该存储控制器:从表示负荷的队列接收一个或多个命令;导出为快速访问速率和慢 速访问速率的函数的中等范围访问速率,其中,中等范围访问速率通过使快速访问速率和 慢速访问速率交替来实现;并基于足W服务负荷的中等范围性能水平来分配该负荷。
[0069] 存储介质装置的非限制性示例为下面各项中的任一者或其组合:固态驱动器、旋 转硬盘驱动器、混合盘驱动器或PCI-Express插槽盘驱动器。
[0070] 此外,存储介质装置可W是存储区域网络(SAN)的一部分或可W是网络附接存储 (NAS)装置的一部分。
[0071] 在如图2A所示的另一实施例中,本发明提供一种在存储系统中实施的方法,该存 储系统包括:多个存储介质装置,每个存储介质装置包括一个或多个可寻址存储区域,每个 区域至少基于快速访问速率或慢速访问速率被指定权重,其中具有快速访问速率的区域不 同于具有慢速访问速率的区域而被加权(例如,具有快速访问速率的区域具有比具有慢速 访问速率的区域更高的权重,或具有慢速访问速率的区域具有比具有快速访问速率的区域 更高的权重),控制多个存储介质装置的存储控制器,该方法包括:从表示负荷的队列接收 一个或多个命令-步骤201;识别该负荷所需的最小性能水平-步骤203;跨多个存储介质装 置识别出具有慢速访问速率的第一组加权存储区域和多个存储介质装置中具有快速访问 速率的第二组加权存储区域-步骤205;识别在具有慢速访问速率的第一组加权存储区域内 的满足所识别的最小性能水平的存储区域子集-步骤207; W及基于所识别的最小性能水平 通过只利用具有慢速访问速率的第一组加权存储区域内的存储区域子集而将具有快速访 问速率的第二存储区域保持为处于保留来分配负荷-步骤209。
[0072] 在如图2B所示的另一实施例中,本发明提供一种在存储系统中实施的方法,该存 储系统包括包含下列项的存储系统:多个存储介质装置,每个存储介质装置包括一个或多 个可寻址存储区域,每个区域至少基于快速访问速率、中等范围访问速率或慢速访问速率 分别被指定不同的权重,控制多个存储介质装置的存储控制器,该方法包括:从表示负荷的 队列接收一个或多个命令-步骤202;识别具有中等范围访问速率的一组加权存储区域W标 定足W服务该负荷的中等范围性能水平-步骤204;并基于该中等范围性能水平通过只利用 具有中等范围访问速率的该一组加权存储区域来分配负荷从而标定足W服务该负荷的中 等范围性能水平-步骤206。
[0073] 图2A和2B的实施例并不意味着是限制性的,因为实施例可W被扩展到:计算作为 具有慢速访问速率的第一组加权存储区域和具有快速访问速率的第二组加权存储区域的 函数的最佳持续性能水平;并且基于计算的最佳持续性能水平来分配负荷。一个被确定的 示例持续性能水平将是检查所存在的加权存储区域组并求平均值,该平均值被用于通过按 照随时间的推移维持该平均值所必需地交替加权存储区域来分配负荷。另一被确定的示例 持续性能水平将是检查所存在的加权存储区域组并求平均值,并接着对该平均值应用折扣 (discount) W允许操作余量,该折扣的平均值被用于通过按照随时间的推移维持该折扣平 均值所必需地交替加权存储区域来分配负荷。该实施例可W进一步被扩展到识别跨多个存 储介质装置的可寻址存储区域内的具有快速访问速率的一个或多个加权快速访问存储区 域,并通过只利用跨多个存储介质装置的可寻址存储区域内的具有快速访问速率的一个或 多个加权快速访问存储区域来分配负荷。
[0074] 在如图3所示的另一实施例中,本发明提供一种在存储系统中实现的方法,该存储 系统包括:多个存储介质装置,每个存储介质装置包括一个或多个可寻址存储区域,每个区 域至少基于快速访问速率或慢速访问速率分别被指定不同的权重;控制多个存储介质装置 的存储控制器,该方法包括:从表示负荷的队列接收一个或多个命令-步骤302;导出为快速 访问速率和慢速访问速率的函数的中等范围访问速率-步骤304,其中,中等范围访问速率 通过使快速访问速率和慢速访问速率交替来实现;W及基于足W服务负荷的中等范围性能 水平来分配该负荷-步骤306。
[0075] 在如图4A所示的一个实施例中,本发明提供一种存储系统,该存储系统包括:至少 包括第一存储介质装置402和第二存储介质装置404的多个存储介质装置;分别控制第一存 储介质装置402和第二存储介质装置404的至少一个存储控制器406;存储要在第一或第二 存储介质装置中执行的一组命令409的队列408;其中存储控制器406:计算与第一存储介质 装置402相关联的作为该一组命令409、与在第一存储介质装置中执行该一组命令相关联的 第一偏置W及与在第一存储介质装置402中执行该一组命令409相关联的至少一个时间因 数(例如,寻道时间)的函数的第一表观负荷410;计算与第二存储介质装置404相关联的作 为该一组命令409、与在第二存储介质装置中执行该一组命令相关联的第二偏置W及与在 第二存储介质装置404中执行该一组命令409相关联的至少一个时间因数(例如,寻道时间) 的函数的第二表观负荷412;在第一偏置和第二偏置被设定为中性的无偏置值时,第一表观 负荷410小于第二表观负荷412,指示在第一存储介质装置中潜在地执行所述一组命令;负 向偏置414第一偏置直到第一表观负荷410大于第二表观负荷412;并且在第二存储介质装 置404中执行该一组命令409。
[0076] 在如图4B所示的一个实施例中,本发明提供一种在存储系统中实施的方法,该存 储系统包括:至少包括第一存储介质装置和第二存储介质装置的多个存储介质装置;控制 第一和第二存储介质装置的至少一个存储控制器;存储要在第一或第二存储介质装置中执 行的一组命令的队列,该方法包括:计算与第一存储介质装置相关联的作为该一组命令、与 在第一存储介质装置中执行该一组命令相关联的第一偏置W及与在第一存储介质装置中 执行该一组命令相关联的至少一个时间因数的函数的第一表观负荷-步骤416;计算与第二 存储介质装置相关联的作为该一组命令、与在第二存储介质装置中执行该一组命令相关联 的第二偏置W及与在第二存储介质装置中执行该一组命令相关联的至少一个时间因数的 函数的第二表观负荷-步骤418;在第一偏置和第二偏置被设置为中性的无偏置值时,第一 表观负荷小于第二表观负荷-步骤420,指示在第一存储介质装置中潜在地执行所述一组命 令;负偏置第一偏置直到第一表观负荷大于第二表观负荷-步骤422; W及在第二存储介质 装置中执行该一组命令-步骤424。
[0077] 在另一个实施例中,本发明还提供一种非暂态、计算机可访问的存储器介质,该存 储器介质存储用于执行在存储系统中实施的方法的程序指令,该存储系统包括:至少包括 第一存储介质装置和第二存储介质装置的多个存储介质装置;控制第一和第二存储介质装 置的至少一个存储控制器;存储要在第一或第二存储介质装置中执行的一组命令的队列, 其中该程序指令可由处理元件执行W :计算与第一存储介质装置相关联的作为该一组命 令、与在第一存储介质装置中执行该一组命令相关联的第一偏置W及与在第一存储介质装 置中执行该一组命令相关联的至少一个时间因数的函数的第一表观负荷;计算与第二存储 介质装置相关联的作为该一组命令、与在第二存储介质装置中执行该一组命令相关联的第 二偏置W及与在第二存储介质装置中执行该一组命令相关联的至少一个时间因数的函数 的第二表观负荷;在第一偏置和第二偏置被设置为中性的无偏置值时,第一表观负荷小于 第二表观负荷,指示在第一存储介质装置中潜在地执行所述一组命令;负偏置第一偏置直 到第一表观负荷大于第二表观负荷;并在第二存储介质装置中执行该一组命令。
[0078] 在如图5A所示的另一实施例中,本发明提供一种存储系统,该存储系统包括:至少 包括第一存储介质装置502和第二存储介质装置504的多个存储介质装置;分别控制第一存 储介质装置502和第二存储介质装置504的至少一个存储控制器206;存储要在第一或第二 存储介质装置中执行的一组命令509的队列508;其中存储控制器506:计算与第一存储介质 装置相关联的作为该一组命令509、与在第一存储介质装置502中执行该一组命令509相关 联的第一偏置W及与在第一存储介质装置502中执行该一组命令509相关联的至少一个时 间因数(例如,寻道时间)的函数的第一表观负荷510;计算与第二存储介质装置504相关联 的作为该一组命令509、与在第二存储介质装置504中执行该一组命令509相关联的第二偏 置W及与在第二存储介质装置504中执行该一组命令509相关联的至少一个时间因数(例 如,寻道时间)的函数的第二表观负荷512;在第一偏置和第二偏置被设定为中性的无偏置 值时,第一表观负荷510小于第二表观负荷512,指示在第一存储介质装置中潜在地执行所 述一组命令;正偏置514第二偏置直到第一表观负荷510大于第二表观负荷512;并且在第二 存储介质装置504中执行该一组命令509。
[0079] 在如图5B所示的另一实施例中,本发明提供一种在存储系统中实施的方法,该存 储系统包括:至少包括第一存储介质装置和第二存储介质装置的多个存储介质装置;控制 第一和第二存储介质装置的至少一个存储控制器;存储要在第一或第二存储介质装置中执 行的一组命令的队列,该方法包括:计算与第一存储介质装置相关联的作为该一组命令、与 在第一存储介质装置中执行该一组命令相关联的第一偏置W及与在第一存储介质装置中 执行该一组命令相关联的至少一个时间因数的函数的第一表观负荷W-步骤516;计算与第 二存储介质装置相关联的作为该一组命令、与在第二存储介质装置中执行该一组命令相关 联的第二偏置W及与在第二存储介质装置中执行该一组命令相关联的至少一个时间因数 的函数的第二表观负荷-步骤518;在第一偏置和第二偏置被设置为中性的无偏置值时,第 一表观负荷小于第二表观负荷-步骤520,指示在第一存储介质装置中潜在地执行所述一组 命令;正偏置第二偏置直到第一表观负荷大于第二表观负荷-步骤522; W及在第二存储介 质装置中执行该一组命令-步骤524。
[0080] 在另一个实施例中,本发明还提供一种非暂态、计算机可访问的存储器介质,该存 储器介质存储用于执行在存储系统中实施的方法的程序指令,该存储系统包括:至少包括 第一存储介质装置和第二存储介质装置的多个存储介质装置;控制第一和第二存储介质装 置的至少一个存储控制器;存储要在第一或第二存储介质装置中执行的一组命令的队列, 其中,该程序指令可由处理元件执行W :计算与第一存储介质装置相关联的作为该一组命 令、与在第一存储介质装置中执行该一组命令相关联的第一偏置W及与在第一存储介质装 置中执行该一组命令相关联的至少一个时间因数的函数的第一表观负荷;计算与第二存储 介质装置相关联的作为该一组命令、与在第二存储介质装置中执行该一组命令相关联的第 二偏置W及与在第二存储介质装置中执行该一组命令相关联的至少一个时间因数的函数 的第二表观负荷;在第一偏置和第二偏置被设置为中性的无偏置值时,第一表观负荷小于 第二表观负荷,指示在第一存储介质装置中潜在地执行所述一组命令;正偏置第二偏置直 到第一表观负荷大于第二表观负荷;并在第二存储介质装置中执行该一组命令。
[0081] 在如图6A所示的另一实施例中,本发明提供一种存储系统,该存储系统包括:至少 包括第一存储介质装置602和第二存储介质装置604的多个存储介质装置;分别控制第一存 储介质装置602和第二存储介质装置604的至少一个存储控制器306;存储要在第一或第二 存储介质装置中执行的一组命令609的队列608;其中,存储控制器606:计算与第一存储介 质装置602相关联的作为该一组命令609、与在第一存储介质装置602中执行该一组命令309 相关联的第一偏置W及与在第一存储介质装置602中执行该一组命令609相关联的至少一 个时间因数(例如,寻道时间)的函数的第一表观负荷610;计算与第二存储介质装置604相 关联的作为该一组命令609、与在第二存储介质装置604中执行该一组命令609相关联的第 二偏置W及与在第二存储介质装置604中执行该一组命令609相关联的至少一个时间因数 (例如,寻道时间)的函数的第二表观负荷612;在第一偏置和第二偏置被设定为中性的无偏 置值时,第一表观负荷610大于第二表观负荷612,指示在第二存储介质装置中潜在地执行 所述一组命令;负偏置614第二偏置直到第二表观负荷612大于第二表观负荷610;并且在第 一存储介质装置602中执行该一组命令609。
[0082] 在如图6B所示的另一个实施例中,本发明提供一种在存储系统中实施的方法,该 存储系统包括:至少包括第一存储介质装置和第二存储介质装置的多个存储介质装置;控 制第一和第二存储介质装置的至少一个存储控制器;存储要在第一或第二存储介质装置中 执行的一组命令的队列,该方法包括:计算与第一存储介质装置相关联的作为该一组命令、 与在第一存储介质装置中执行该一组命令相关联的第一偏置W及与在第一存储介质装置 中执行该一组命令相关联的至少一个时间因数的函数的第一表观负荷-步骤616;计算与第 二存储介质装置相关联的作为该一组命令、与在第二存储介质装置中执行该一组命令相关 联的第二偏置W及与在第二存储介质装置中执行该一组命令相关联的至少一个时间因数 的函数的第二表观负荷-步骤618;在第一偏置和第二偏置被设置为中性的无偏置值时,第 一表观负荷大于第二表观负荷-步骤620,指示在第二存储介质装置中潜在地执行所述一组 命令;负偏置第二偏置直到第二表观负荷大于第一表观负荷-步骤622; W及在第一存储介 质装置中执行该一组命令-步骤624。
[0083] 在另一个实施例中,本发明还提供一种非暂态、计算机可访问的存储器介质,该存 储器介质存储用于执行在存储系统中实施的方法的程序指令,该存储系统包括:至少包括 第一存储介质装置和第二存储介质装置的多个存储介质装置;控制第一和第二存储介质装 置的至少一个存储控制器;存储要在第一或第二存储介质装置中执行的一组命令的队列, 其中该程序指令可由处理元件执行W :计算与第一存储介质装置相关联的作为该一组命 令、与在第一存储介质装置中执行该一组命令相关联的第一偏置W及与在第一存储介质装 置中执行该一组命令相关联的至少一个时间因数的函数的第一表观负荷;计算与第二存储 介质装置相关联的作为该一组命令、与在第二存储介质装置中执行该一组命令相关联的第 二偏置W及与在第二存储介质装置中执行该一组命令相关联的至少一个时间因数的函数 的第二表观负荷;在第一偏置和第二偏置被设置为中性的无偏置值时,第一表观负荷大于 第二表观负荷,指示在第二存储介质装置中潜在地执行所述一组命令;负偏置第二偏置直 到第二表观负荷大于第一表观负荷;并在第一存储介质装置中执行该一组命令。
[0084] 在如图7A所示的另一实施例中,本发明提供一种存储系统,该存储系统包括:至少 包括第一存储介质装置702和第二存储介质装置704的多个存储介质装置;分别控制第一存 储介质装置702和第二存储介质装置704的至少一个存储控制器706;存储要在第一或第二 存储介质装置中执行的一组命令709的队列708;其中存储控制器706:计算与第一存储介质 装置702相关联的作为该一组命令709、与在第一存储介质装置702中执行该一组命令709相 关联的第一偏置W及与在第一存储介质装置702中执行该一组命令709相关联的至少一个 时间因数(例如,寻道时间)的函数的第一表观负荷710;计算与第二存储介质装置704相关 联的作为该一组命令709、与在第二存储介质装置中执行该一组命令709相关联的第二偏置 W及与在第二存储介质装置704中执行该一组命令709相关联的至少一个时间因数(例如, 寻道时间)的函数的第二表观负荷712;在第一偏置和第二偏置被设定为中性的无偏置值 时,第一表观负荷710大于第二表观负荷712,指示在第二存储介质装置中潜在地执行所述 一组命令;正偏置714第一偏置直到第二表观负荷712大于第一表观负荷710;并且在第一存 储介质装置704中执行该一组命令709。
[0085] 在如图7B所示的另一个实施例中,本发明还提供一种在存储系统中实施的方法, 该存储系统包括:至少包括第一存储介质装置和第二存储介质装置的多个存储介质装置; 控制第一和第二存储介质装置的至少一个存储控制器;存储要在第一或第二存储介质装置 中执行的一组命令的队列,该方法包括:计算与第一存储介质装置相关联的作为该一组命 令、与在第一存储介质装置中执行该一组命令相关联的第一偏置W及与在第一存储介质装 置中执行该一组命令相关联的至少一个时间因数的函数的第一表观负荷-步骤716;计算与 第二存储介质装置相关联的作为该一组命令、与在第二存储介质装置中执行该一组命令相 关联的第二偏置W及与在第二存储介质装置中执行该一组命令相关联的至少一个时间因 数的函数的第二表观负荷-步骤718;在第一偏置和第二偏置被设置为中性的无偏置值时, 第一表观负荷大于第二表观负荷-步骤720,指示在第二存储介质装置中潜在地执行所述一 组命令;正偏置第一偏置直到第二表观负荷大于第一表观负荷-步骤722; W及在第一存储 介质装置中执行该一组命令-步骤724。
[0086] 该实施例可W整合负荷平衡基于溫度、溫度范围、填充百分比、写速率、读速率和 数据类型结合偏置来实现的特定使用案例。在一些实施例中,对应介质装置的溫度、溫度范 围、填充百分比、写速率、读速率和数据类型可W通过已知的措施来监测、测量或跟踪。
[0087] 在另一实施例中,本发明提供一种作为非暂态、计算机可访问的存储器介质的方 法,该存储器介质存储用于执行在存储系统中实施的方法的程序指令,该存储系统包括含 有下列项的存储系统:多个存储介质装置,每个存储介质装置包括一个或多个可寻址存储 区域,每个区域至少基于快速访问速率、中等范围访问速率或慢速访问速率分别被分配不 同的权重;控制多个存储介质装置的存储控制器,其中该程序指令可由处理器执行W :从表 示负荷的队列接收一个或多个命令;识别具有中等范围访问速率的一组加权存储区域W标 定足W服务该负荷的中等范围性能水平;并基于该中等范围性能水平通过只利用具有中等 范围访问速率的该一组加权存储区域来分配负荷,由此标定足W服务该负荷的中等范围性 能水平。
[0088] 在另一实施例中,本发明提供一种非暂态、计算机可访问的存储器介质,该存储器 介质存储用于执行在存储系统中实施的方法的程序指令,该存储系统包括:多个存储介质 装置,每个存储介质装置包括一个或多个可寻址存储区域,每个区域至少基于快速访问速 率或慢速访问速率分别被分配不同的权重;控制多个存储介质装置的存储控制器,其中该 程序指令可由处理器执行W :从表示负荷的队列接收一个或多个命令;导出为快速访问速 率和慢速访问速率的函数的中等范围访问速率,其中,中等范围访问速率通过使快速访问 速率和慢速访问速率交替来实现;并基于足W服务负荷的中等范围性能水平来分配该负 荷。
[0089] 应指出,虽然本说明书参照至少一个存储控制器,但是本发明的教义等同地应用 于多个存储控制器,包括多个分布式存储控制器。而且,虽然为了简化起见,该系统被描述 为在底板内,但是应指出,整个系统不需要共同位于一个底板或物理位置内,因为一个或多 个独立元件可作为不同底板/位置的一部分来定位。另外,该系统也可W具有父存储控制器 和子存储控制器,其中,父存储控制器做出决策W跨子存储控制器进行平衡,子存储控制器 可W接着做出决策W跨其子存储控制器进行平衡,等等(最终到达连接到在链路中的最后 的(多个)存储控制器的存储介质装置)。作为非限制性示例,存储控制器可W跨具有多个存 储介质装置的底板来平衡负荷,其中,主存储控制器可W被连接到多个此类存储控制器W 跨多个此类底板执行负荷平衡,每个底板具有多个存储介质装置。
[0090] 上述特征和应用可W被实施为软件过程,该软件过程被指定为记录在计算机可读 存储介质(也被称为计算机可读介质)上的一组指令。在运些指令由一个或多个处理元件 (例如,一个或多个处理器、处理器内核或其它处理元件)执行时,运些指令致使(多个)处理 元件执行在该指令中指示的动作。在本公开的范围内的实施例也可W包含有形和/或非暂 态计算机可读存储介质,其用于携带或具有储存在其上的计算机可执行指令或数据结构。 此类非暂态计算机可读存储介质可W为通过通用或专用计算机(包含任何专用处理器的功 能设计)可W存取的任何可用介质。通过示例,但并非限制,此类非暂态计算机可读介质可 W包含闪存存储器、341、1?01、66?1?01八0-1?01或其它光盘存储装置、磁盘存储装置或其它磁 存储装置,或可W用于携带或存储W计算机可执行指令、数据结构或处理器忍片设计的形 式的期望的程序代码装置的任何其它介质。该计算机可读介质不包含W无线方式或通过有 线连接传送的载波和电子信号。
[0091] 计算机可执行指令包含例如,致使通用计算机、专用计算机或专用处理装置完成 特定功能或功能组的指令和数据。计算机可执行指令也包含由独立或网络环境中的计算机 执行的程序模块。一般来讲,程序模块包含例程、程序、组件、数据结构、对象和专用处理器 的设计中固有的完成具体任务或实现具体抽象数据类型的函数等。计算机可执行指令、关 联数据结构和程序模块表示用于执行本文公开的方法的步骤的程序代码装置的示例。此类 可执行指令或关联数据结构的特定顺序表示用于实现在此类步骤中描述的功能的对应行 为的示例。
[0092] 计算机程序(也被称为程序、软件、软件应用、脚本或代码)可W W任何形式的编程 语言编写,该编程语言包含编译或解释语言、说明性或过程语言,并且该计算机程序可W W 任何形式来部署,包含独立程序或作为适用于计算环境中的模块、组件、子例程、对象或其 它单元。计算机程序可W对应于文件系统中的文件但不必一定对应。程序可W被存储在保 持其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、 存储在专用于讨论中的程序的单个文件中或存储在多个协调文件(例如,存储一个或多个 模块、子程序或部分代码的文件)中。计算机程序可W被部署为在一个计算机或多个计算机 上执行,该多个计算机位于一个地点或分布在多个地点并通过通信网络互连。
[0093] 上述运些功能可W在数字电子电路、计算机软件、固件或硬件中实施。该技术可W 使用一个或多个计算机程序产品来实施。该过程和逻辑流程可W由一个或多个可编程处理 器W及由一个或多个可编程逻辑电路执行。通用和专用计算装置和存储装置可W通过通信 网络互连。
[0094] -些实施方式包含电子部件,例如微处理器、在机器可读或计算机可读介质(另选 地被称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指 令的存储和存储器。此计算机可读介质的一些示例包含RAM、R0M、只读光盘(CD-ROM)、刻录 光盘(CD-R)、可擦写光盘(CD-RW)、只读数字多功能盘(例如,DVD-ROM、双层DVD-ROM)、各种 可刻录/可擦写DVD (例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存存储器(例如,SD卡、迷你SD卡、 微型SD卡等)、磁或固态硬盘驱动器、只读和可刻录蓝光光盘Blu-Ray?、超密度光盘、任何 其它光学或磁性介质W及软盘。计算机可读介质可W存储可W由至少一个处理单元执行并 包含用于执行各种操作的指令集的计算机程序。计算机程序或程序代码的示例包含通过编 译器产生的机器代码W及包含使用编译器通过计算机、电子部件或微处理器执行的更高级 别的代码的文件。
[OOM]虽然上面的讨论主要参照执行软件的微处理器或多核处理器,但是一些实施方式 由一个或多个集成电路,例如专用集成电路(ASIC)或现场可编程口阵列(FPGA)执行。在一 些实施方式中,此类集成电路执行存储在该电路上/自身内的指令。在一些实施方案中,诸 如FPGA,软件可W用于描述硬件电路,其示例为FPGA编程文件。此类FPGA编程文件也可W包 含计算机程序、机器代码、微代码、固件和其它软件。FPGA编程文件可被存储在FPGA、ASIC、 计算机可读存储介质、机器可读介质或机器可读存储介质内。
[0096] 如在本说明书和本申请的任何权利要求中所使用的,术语"计算机"、"服务器"、 "处理器"和"存储器"全部指代电子或其它技术装置。运些术语排除人或人群。出于本说明 书的目的,术语显示器或显示意指在电子装置上显示。如在本说明书和本申请的任何权利 要求中所使用,术语"计算机可读介质"和"计算机可读介质"完全局限于W计算机可读的形 式存储信息的有形实物。运些术语排除任何无线信号、通过有线下载的信号和任何其它短 暂信号。
[0097] 本领域中的技术人员应明白,本公开的其它实施例可W在具有许多类型计算机系 统配置的网络计算环境中实施,该计算机系统配置包含个人计算机、手持式装置、多处理器 系统、基于ASIC的系统、基于FPGA的系统、基于微处理器的或可编程的消费电子、联网PC、小 型计算机、大型计算机等。各实施例也可W在分布式计算环境中实施,其中,各任务通过本 地和远程处理装置来执行,该本地和远程装置通过通信网络(或通过硬连接链路、无线链路 或通过该硬连线或无线链路的组合)联接在一起。在分布式计算环境中,程序模块可W被定 位在本地和远端的存储器存储装置中。
[0098] 应理解,在所论述的过程中的步骤的任何具体顺序或分级结构为示例方法的说 明。应理解,基于设计优选要求,在该过程中的步骤的具体顺序或分级结构可W被重新安排 或执行所示出的所有步骤。该步骤的一些步骤可W同时执行。例如,在某些情况下,多任务 和并行处理可能是有利的。此外,上面示出的分开的各种系统组件不应理解为需要此类分 开,而应理解为,所述的程序组件和系统通常可W被一起集成到单个软件产品或封装到多 个软件产品中。
[0099] 对运些方面的各种修改将是显而易见的,并且本文定义的一般原理可W应用于其 它方面。因此,附属权利要求并不旨在局限于本文所示的各方面,而是被赋予和书面权利要 求一致的全部范围,其中,在W单数引用元件时,并不旨在意指"一个并且只有一个"而是应 为"一个或多个",除非特别说明。除非另外特别说明,否则术语"一些"是指一个或多个。男 性代词(例如,他的)包括女性和中性(例如,她的和它的),并且反之亦然。如果有的话,标题 和副标题仅仅出于方便来使用,并不限制本技术主题。
[0100] 短语,例如"方面"并不暗示该方面为本技术主题必不可少的,或该方面应用于本 技术主题的所有配置。设及方面的公开可W应用于所有配置或一个或多个配置。短语,例如 短语方面可W指一个或多个方面,并且反之亦然。短语,例如"配置"并不暗示此配置为本技 术主题必不可少的,或此配置应用于本技术主题的所有配置。设及配置的公开可W应用于 所有配置或一个或多个配置。短语,例如短语配置,可W指一个或多个配置,并且反之亦然。
[0101] 上述的各种实施例仅借助于说明来提供,并且不应限制本公开的范围。本领域的 技术人员应很容易认识到,可哟对本文所述的原理进行各种更改和改变,而无需遵循在本 文中示出和描述的示例实施例和应用并且不脱离本公开的精神和范围。
[0102] 虽然本说明书包含许多具体实施方案细节,但是运些实施方案细节不应构成任何 发明的范围或要求保护的范围的限制,而是构成可W指定给特定发明的特定实施例的特征 的描述。在本说明书中在独立实施例的背景下描述的某些特征也可W结合单个实施例来实 现。相反,在单个实施例的背景下描述的各种特征也可W在W单独方式提供的多个实施例 中或在任何合适的子组合中实现。此外,虽然上述的特征可W被描述为在某些组合中起作 用甚至初始要求如此,但是在一些情况下,来自要求保护的组合的一个或多个特征可从该 组合实施,并且要求保护的组合可W设及子组合或子组合的变型。
[0103] 类似地,虽然各操作在附图中W特定的顺序描述,但是不应理解为需要此类操作 W所示的特定顺序或连续顺序执行,或全部示出的操作被执行W实现所期望的结果。在某 些情况下,多任务和并行处理可能是有利的。此外,上述的在各实施例中分开的各种系统组 件不应理解为在所有实施例中需要此类分开,而应理解为,所述的程序组件和系统通常可 W被一起集成到单个软件产品或封装到多个软件产品中。
[0104] 如上所述,已描述了本主题的具体实施例,但是其它实施例在附属权利要求的范 围内。例如,在附属权利要求中引用的行为可WW不同的顺序执行并且仍然实现所需的结 果。例如,在附图中绘出的过程并不一定需要所示的特定顺序或连续顺序来实现所需的结 果。在某些实施方案中,多任务和并行处理可能是有利的。
[0105] 结论
[0106] 在上面的实施例已示出用于基于中等范围性能水平有效实施用于存储介质装置 的动态负荷平衡的系统、方法和制品的系统和方法。虽然已经示出和描述各种优选实施例, 但是应理解,并不旨在将本发明限制在此公开,而是旨在涵盖落入如在附属权利要求中定 义的本发明的精神和范围内的所有修改。例如,本发明不应由软件/程序、计算环境或特定 的计算硬件限制。
【主权项】
1. 一种存储系统,其包括: 多个存储介质装置,每个存储介质装置包括一个或多个可寻址存储区域,每个区域至 少基于快速访问速率、中等范围访问速率或慢速访问速率分别被分配不同的权重; 控制所述多个存储介质装置的存储控制器,所述存储控制器: 从表示负荷的队列接收一个或多个命令; 识别出具有所述中等范围访问速率的一组加权存储区域以标定足以服务所述负荷的 中等范围性能水平;并且 基于所述中等范围性能水平通过只利用具有所述中等范围访问速率的所述一组加权 存储区域来分配所述负荷,由此标定足以服务所述负荷的所述中等范围性能水平。2. 根据权利要求1所述的存储系统,其中所述存储介质装置为下面各项中的任一者或 其组合:固态驱动器、旋转硬盘驱动器、混合盘驱动器或PCI-Express插槽盘驱动器。3. 根据权利要求1所述的存储系统,其中所述存储介质装置为存储区域网络即SAN的一 部分。4. 根据权利要求1所述的存储系统,其中所述存储介质装置为网络附接存储装置即NAS 装置的一部分。5. 根据权利要求1所述的存储系统,其中至少一个命令对应于读请求。6. 根据权利要求1所述的存储系统,其中至少一个命令对应于写请求。7. -种在包含存储系统的存储系统中实施的方法,所述存储系统包括:多个存储介质 装置,每个存储介质装置包括一个或多个可寻址存储区域,每个区域至少基于快速访问速 率、中等范围访问速率或慢速访问速率分别被分配不同的权重;控制所述多个存储介质装 置的存储控制器,所述方法包括: 从表示负荷的队列接收一个或多个命令; 识别出具有所述中等范围访问速率的一组加权存储区域以标定准足以服务所述负荷 的中等范围性能水平;并且 基于所述中等范围性能水平通过只利用具有所述中等范围访问速率的所述一组加权 存储区域来分配所述负荷,由此标定足以服务所述负荷的所述中等范围性能水平。8. 根据权利要求7所述的方法,其中所述存储介质装置为下面各项中的任一者或其组 合:固态驱动器、旋转硬盘驱动器、混合盘驱动器或PCI-Express插槽盘驱动器。9. 根据权利要求7所述的方法,其中所述存储介质装置为存储区域网络即SAN的一部 分。10. 根据权利要求7所述的方法,其中所述存储介质装置为网络附接存储装置即NAS装 置的一部分。11. 根据权利要求7所述的方法,其中至少一个命令对应于读请求。12. 根据权利要求7所述的方法,其中至少一个命令对应于写请求。13. -种存储系统,其包括: 多个存储介质装置,每个存储介质装置包括一个或多个可寻址存储区域,每个区域至 少基于快速访问速率或慢速访问速率分别被分配不同的权重; 控制所述多个存储介质装置的存储控制器,所述存储控制器: 从表示负荷的队列接收一个或多个命令; 导出为所述快速访问速率和所述慢速访问速率的函数的中等范围访问速率,其中所述 中等范围访问速率通过使所述快速访问速率和所述慢速访问速率交替来实现;并且 基于足以服务所述负荷的所述中等范围性能水平来分配所述负荷。14. 根据权利要求13所述的存储系统,其中所述存储介质装置为下面各项中的任一者 或其组合:固态驱动器、旋转硬盘驱动器、混合盘驱动器或PCI-Express插槽盘驱动器。15. 根据权利要求13所述的存储系统,其中所述存储介质装置为存储区域网络即SAN的 一部分。16. 根据权利要求13所述的存储系统,其中所述存储介质装置为网络附接存储装置即 NAS装置的一部分。17. 根据权利要求13所述的存储系统,其中至少一个命令对应于读请求。18. 根据权利要求13所述的存储系统,其中至少一个命令对应于写请求。
【文档编号】H04L12/24GK105981351SQ201480074951
【公开日】2016年9月28日
【申请日】2014年12月8日
【发明人】J·D·比森, J·B·耶茨
【申请人】并发投资有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1