用于跨多个存储设备重新平衡条带式信息的系统和方法与流程

文档序号:23185332发布日期:2020-12-04 14:14阅读:96来源:国知局
用于跨多个存储设备重新平衡条带式信息的系统和方法与流程



背景技术:

数据存储设备的阵列可以条带方式存储数据。条带化是一种对数据进行分段并将不同的数据段存储在数据存储设备阵列中的不同物理存储设备上的技术。条带化通过使得能够同时访问存储在不同的物理存储设备上的数据来提高i/o性能。然而,扩展和/或减少数据存储设备阵列中物理存储设备的数量可能需要执行“重新布局”过程。重新布局过程将条带式数据从初始物理存储设备组串行地移动到临时存储设备,然后将条带式数据从临时存储设备重新写入经修订的物理存储设备组。重新布局过程通过所需的临时存储设备串行地移动大量数据。例如,使用常规重新布局技术将新的条带添加到1200gb条带式本地卷可能需要2.5个小时才能完成,而将同一条带添加到远程卷可能需要24个小时才能完成。因此,本公开确定并解决了对用于跨多个存储设备重新平衡条带式信息的系统和方法的需求。



技术实现要素:

如将在下文更详细地描述的,本公开描述了用于通过例如执行优化的逻辑条带化来跨多个存储设备重新平衡条带式信息的各种系统和方法。

在一个实施方案中,一种用于跨多个存储设备重新平衡条带式信息的计算机实现的方法可包括:(1)在“y”个物理设备上分配“y”个连续存储空间;(2)在计算设备处,将“y”个连续存储空间划分为“n”个子卷;(3)将“n”个子卷分配给“x”个逻辑条带;(4)将前“y”个逻辑条带中的每个逻辑条带分配给“y”个物理条带中的每个物理条带中的相应的物理条带;(5)将剩余逻辑条带除以“y”以形成相应的子逻辑条带;以及(6)跨“y”个物理条带分配相应的子卷。

在实施方案中,划分可包括将“n”计算为{2,3,…x}的最小公倍数。在一个示例中,该方法可包括用逻辑条带标识符标记至少一个逻辑条带(例如,“l0”,对于逻辑条带零)。在一些示例中,该方法可包括用子逻辑条带标识符标记至少一个子逻辑条带(例如,“ll1”,对于子逻辑条带一)。

在一个实施方案中,该方法可包括检查至少一个子卷是否过度使用,以及当子卷被识别为过度使用时,将过度使用的子卷移动到不同的物理条带。

在实施方案中,该方法可包括:(1)添加“p”个物理条带,其中“p”为整数;(2)将y+1至y+p个逻辑条带和其中的子卷转移到附加的“p”个物理条带;以及(3)跨y+p个物理条带重新分发y+p+1和任何更高逻辑条带中的子卷。在一个示例中,该方法可包括检查至少一个子卷是否过度使用,并且当检测到过度使用的子卷时,将过度使用的子卷转移到附加的“p”个物理条带。在一些示例中,该方法可包括(例如,随后)(1)跨前“y”个物理条带重新分发来自“y+1”个逻辑条带的子卷;(2)跨前“y”个物理条带重新分发y+2和任何更高逻辑条带中的子卷;以及(3)从多个存储设备移除“y+1”个物理条带。在一个实施方案中,该方法可包括检查至少一个子卷是否过度使用,并且当检测到过度使用的子卷时,将过度使用的子卷转移到存储最少数量的子卷的物理条带。

在实施方案中,该方法可包括:(1)跨前“y-1”个物理条带重新分发来自“y”个逻辑条带的子卷;(2)跨前“y-1”个物理条带重新分发y+1和任何更高逻辑条带中的子卷;以及(3)从多个存储设备移除“y”个物理条带。在一个示例中,该方法可包括检查至少一个子卷是否过度使用,并且当检测到过度使用的子卷时,将过度使用的子卷转移到存储最少数量的子卷的物理条带。在示例中,该方法可包括(例如,随后)(1)添加“p”个物理条带,其中“p”为整数;(2)将y+1至y+p个逻辑条带和其中的子卷转移到附加的“p”个物理条带;以及(3)跨y+p个物理条带重新分发y+p+1和任何更高逻辑条带中的子卷。在一个实施方案中,该方法可包括检查至少一个子卷是否过度使用,并且当检测到过度使用的子卷时,将过度使用的子卷转移到附加的物理条带。

在一个示例中,一种用于跨多个存储设备重新平衡条带式信息的系统可包括存储在存储器中的若干模块,包括:(1)存储在存储器中的第一分配模块,该第一分配模块在“y”个物理设备上分配“y”个连续存储空间;(2)存储在存储器中的划分模块,该划分模块将“y”个连续存储空间划分为“n”个子卷;(3)存储在存储器中的第二分配模块,该第二分配模块将“n”个子卷分配给“x”个逻辑条带;(4)存储在存储器中的第三分配模块,该第三分配模块将前“y”个逻辑条带中的每个逻辑条带分配给“y”个物理条带中的每个物理条带中的相应的物理条带;(5)存储在存储器中的分发模块,该分发模块将剩余逻辑条带除以“y”以形成相应的子逻辑条带;以及(6)存储在存储器中的“第n”分配模块,该“第n”分配模块跨“y”个物理条带分配相应的子卷。该系统还可包括至少一个物理处理器,该至少一个物理处理器执行第一分配模块、划分模块、第二分配模块、第三分配模块、第二划分模块和“第n”分配模块。

在一些示例中,上述方法可被编码为非暂态计算机可读介质上的计算机可读指令。例如,一种计算机可读介质可包括一个或多个计算机可执行指令,该一个或多个计算机可执行指令当由计算设备的至少一个处理器执行时,可致使计算设备:(1)在“y”个物理设备上分配“y”个连续存储空间;(2)在计算设备处,将“y”个连续存储空间划分为“n”个子卷;(3)将“n”个子卷分配给“x”个逻辑条带;(4)将前“y”个逻辑条带中的每个逻辑条带分配给“y”个物理条带中的每个物理条带中的相应的物理条带;(5)将剩余逻辑条带除以“y”以形成相应的子逻辑条带;以及(6)跨“y”个物理条带分配相应的子卷。

来自任意上述实施方案的特征可根据本文所述的一般原理彼此结合使用。在结合附图和权利要求阅读以下详细描述后,将更全面地理解这些以及其他实施方案、特征和优点。

附图说明

附图示出多个示例性实施方案,并且是说明书的一部分。这些附图与以下描述一起展示并说明本公开的各种原理。

图1为用于跨多个存储设备重新平衡条带式信息的示例性系统的框图。

图2为用于跨多个存储设备重新平衡条带式信息的附加示例性系统的框图。

图3为用于跨多个存储设备重新平衡条带式信息的示例性方法的流程图。

图4为跨多个存储设备对子卷的示例性分配的图示。

图5为用于跨多个存储设备分配子卷的示例性方法的流程图。

图6为在添加了一个存储设备时跨多个存储设备对子卷的示例性重新分配的图示。

图7为在添加了两个存储设备时跨多个存储设备对子卷的示例性重新分配的图示。

图8为在移除了一个存储设备时跨多个存储设备对子卷的示例性重新分配的图示。

图9为在移除了两个存储设备时跨多个存储设备对子卷的示例性重新分配的图示。

图10为将常规技术的操作性能与所提供技术的操作性能的示例进行比较的图表。

在整个附图中,相同的参考字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施方案易存在各种修改形式和另选形式,但是附图中以举例的方式示出了具体实施方案,这些实施方案将在本文中详细描述。然而,本文所述的示例性实施方案并非旨在限于所公开的特定形式。相反,本公开涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。

具体实施方式

本公开整体涉及用于跨多个存储设备重新平衡条带式信息的系统和方法。所提供的系统和方法可通过执行优化的逻辑条带化来跨多个存储设备重新平衡条带式信息,其中逻辑条带可包括可在改变多个存储设备的数量之前跨物理条带以平衡量转移的子卷。在实施方案中,所公开的技术可与基于云的存储设备结合利用。

通过这样做,在一些示例中,本文描述的系统和方法可通过跨多个存储设备自动(重新)平衡条带式信息来改善计算设备的功能,从而实现具有成本效益的存储管理。另外,在一些示例中,本文描述的系统和方法可通过减少待转移的数据量来节省功率。所提供的方法也可能不需要使用临时存储空间,可能不需要将数据移动到临时空间,可能不需要串行转移多个存储设备中的基本上所有数据,并且可能不需要像常规技术那样移动那么多数据,从而实现具有成本效益的存储管理。所提供的方法也可能并行地(相对于串行地)移动数据的子卷和/或可能更快地转移数据。另外,在一些示例中,本文描述的系统和方法可节省功率和/或更好地管理网络带宽利用率。

下文将参考图1至图2提供对用于跨多个存储设备重新平衡条带式信息的示例性系统的详细描述。还将结合图3至图9提供对应的计算机实现的方法的详细描述。此外,还将结合图10提供相对于常规技术对所提供技术的性能的详细描述。

图1为用于跨多个存储设备重新平衡条带式信息的示例性系统100的框图。如该图所示,示例性系统100可以包括用于执行一个或多个任务的一个或多个模块102。如将在下文更详细地解释,模块102可包括第一分配模块104、划分模块106、第二分配模块108、第三分配模块110、分发模块112和“第n”分配模块114。虽然示出为单独元件,但图1的模块102中的一个或多个可表示单个模块或应用程序的若干部分。

在某些实施方案中,图1中的模块102中的一个或多个可表示一个或多个软件应用程序或程序,其在由计算设备执行时可使计算设备执行一个或多个任务。例如,并且如将在下文更详细地描述的,模块102中的一个或多个模块可表示被存储并且被配置为在一个或多个计算设备上运行的模块,该一个或多个计算设备诸如为图2中所示的设备(例如,计算设备202和/或服务器206)。图1中的模块102中的一个或多个还可表示被配置为执行一个或多个任务的一个或多个专用计算机的全部或部分。

如图1所示,示例性系统100还可包括一个或多个有形存储设备,诸如存储设备120。存储设备120通常表示能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储设备120可存储、加载和/或维护指示物理条带120、逻辑条带124、子逻辑条带126和/或子卷128中的一者或多者的信息。在实施方案中,在不存在子逻辑条带126的情况下,子卷128可为逻辑条带124的一部分。在一些示例中,存储设备120一般可表示多个存储设备。存储设备120的示例包括但不限于随机存取存储器(ram)、只读存储器(rom)、闪存存储器、硬盘驱动器(hdd)、固态驱动器(ssd)、光盘驱动器、高速缓存、基于云的存储设备、上述一者或多者的变体或组合和/或任何其他合适的存储器。

如图1所示,示例性系统100还可以包括一个或多个物理处理器,诸如物理处理器130。物理处理器130通常表示能够解译和/或执行计算机可读指令的任何类型或形式的硬件实现的处理单元。在一个示例中,物理处理器130可以访问和/或修改存储在存储器140中的模块102中的一个或多个。除此之外或另选地,物理处理器130可执行模块102中一个或多个模块以便于跨多个存储设备重新平衡条带式信息。物理处理器130的示例包括但不限于微处理器、微控制器、中央处理单元(cpu)、实现软核处理器的现场可编程门阵列(fpga)、专用集成电路(asic)、上述一者或多者的部分、上述一个或多个的变体或组合或任何其他合适的物理处理器。

如图1所示,示例性系统100还可以包括一个或多个存储器设备,诸如存储器140。存储器140通常表示能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储器140可以存储、加载和/或维护模块102中的一个或多个。存储器140的示例包括但不限于随机存取存储器(ram)、只读存储器(rom)、闪存存储器、硬盘驱动器(hdd)、固态驱动器(ssd)、光盘驱动器、高速缓存、上述一者或多者的变体或组合、或任何其他合适的存储器。

图1中的示例性系统100可以以各种方式实现。例如,示例性系统100的全部或一部分可以表示图2中的示例性系统200的部分。如图2所示,系统200可包括计算设备202,其经由网络204与服务器206通信。任选的云存储设备208可诸如经由网络204耦接到计算设备202和/或服务器206。在一个示例中,模块102的全部或部分功能可由计算设备202、服务器206和/或任何其他合适的计算系统来执行。如下文将更详细地描述的,当由计算设备202和/或服务器206的至少一个处理器执行时,图1中的模块102中的一个或多个模块可使得计算设备202和/或服务器206能够跨多个存储设备重新平衡条带式信息。

计算设备202通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。在一些示例中,计算设备202可以表示计算机运行的存储管理软件。计算设备202的附加示例包括但不限于膝上型计算机、平板电脑、台式计算机、服务器、蜂窝电话、个人数字助理(pda)、多媒体播放器、嵌入式系统、可穿戴设备(例如,智能手表、智能眼镜等)、智能车辆、所谓的物联网设备(例如,智能器具等)、游戏机、上述一个或多个的变体和组合或任何其他合适的计算系统。

网络204通常表示能够促进通信或数据传送的任何介质或架构。在一个示例中,网络204可促进计算设备202和服务器206之间的通信。在该示例中,网络204可使用无线和/或有线连接促进通信或数据传送。网络204的示例包括但不限于:内联网、广域网(wan)、局域网(lan)、个人区域网(pan)、互联网、电力线通信(plc)、蜂窝网络(例如,全球移动通信系统(gsm)网络)、上述一者或多者的部分、上述一者或多者的变体或组合、或任何其他合适的网络。

服务器206通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。在一些示例中,服务器206可表示计算机运行的存储管理软件。服务器206的附加示例包括但不限于存储服务器、数据库服务器、应用程序服务器和/或web服务器,这些服务器被配置为运行某些软件应用程序和/或提供各种存储、数据库和/或web服务。虽然在图2中被示出为单个实体,但服务器206可包括和/或表示彼此协同工作和/或操作的多个服务器。

云存储设备208通常表示能够读取计算机可执行指令和/或存储信息的任何类型或形式的计算设备。在一些示例中,云存储设备208可表示计算机运行的存储管理软件。云存储设备208的附加示例包括但不限于一个或多个存储服务器、数据库服务器、应用程序服务器和/或web服务器,这些服务器被配置为运行某些软件应用程序和/或提供各种存储、数据库和/或web服务。虽然在图2中被示出为单个实体,但云存储设备208可包括和/或表示彼此协同工作和/或操作的多个服务器。

在一些示例中,云存储设备208可存储物理条带120、逻辑条带124、子逻辑条带126和/或子卷128中的一者或多者。

许多其他设备或子系统可以连接到图1中的系统100和/或图2中的系统200。相反,图1和图2中所示的所有部件和设备不必都存在来实践本文描述和/或示出的实施方案。上文提及的设备和子系统也可按照与图2所示不同的方式互连。系统100和200也可以采用任何数量的软件配置、固件配置和/或硬件配置。例如,本文所公开的示例性实施方案中的一个或多个可以被编码为计算机可读介质上的计算机程序(也被称为计算机软件、软件应用程序、计算机可读指令和/或计算机控制逻辑)。

如本文所用,术语“计算机可读介质”通常是指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于传输型介质,诸如载波,和非暂态型介质,诸如磁存储介质(例如,硬盘驱动器、磁带驱动器和软盘)、光存储介质(例如,光盘(cd)、数字视频盘(dvd)、blu-ray磁盘)、电子存储介质(例如,固态驱动器和闪存介质)和其他分配系统。

图3为用于跨多个存储设备重新平衡条带式信息的示例性计算机实现的方法300的流程图。图3中所示的步骤可由任何合适的计算机可执行代码和/或计算系统执行,包括图1中的系统100、图2中的系统200和/或上述一者或多者的变体或组合。在一个示例中,图3中示出的每个步骤可以表示其结构包括和/或由多个子步骤表示的算法,其示例将在下文更详细地提供。在实施方案中,方法300可从将子卷128分配给多个存储设备诸如存储设备120和/或云存储设备208开始。

如图3所示,在步骤302处,本文描述的系统中的一个或多个系统可在“y”个物理设备上(例如,在多个存储设备上)分配“y”个连续存储空间(例如,创建“y”个物理条带)。本文所述的系统可以各种方式执行步骤302。在一个示例中,作为图2中的计算设备202和/或服务器206的一部分,第一分配模块104可在“y”个物理设备(诸如计算设备202中的存储设备120、服务器206中的存储设备120和/或云存储设备208中的存储设备)上分配“y”个连续存储空间。例如,作为图2中的计算设备202和/或服务器206的一部分,第一分配模块104可在多个存储设备120(诸如计算设备202中的存储设备120、服务器206中的存储设备120和/或云存储设备208中的存储设备)上创建“y”个物理条带122。在一些示例中,“y”为整数。

在示例中,物理条带122可能在发起方法300之前就已存在于多个存储设备120上。

如图3所示,在步骤304处,本文描述的系统中的一个或多个系统可将“y”个连续存储空间划分为“n”个子卷或块。本文描述的系统可以多种方式执行步骤304。在示例中,作为图2中的计算设备202和/或服务器206的一部分,划分模块106可将“y”个连续存储空间划分为“n”个子卷128。例如,作为图2中的计算设备202和/或服务器206的一部分,划分模块106可将多个存储设备120中的存储空间划分为“n”个子卷128。在一些示例中,“n”为整数。

在示例中,划分可包括将“n”计算为{2,3,…x}的最小公倍数,其中“x”为逻辑条带的最大数量。在一些示例中,“x”为整数。

如本文所用,术语“子卷”通常可指信息存储空间的类似大小的单元。本文相对于图4描述了子卷的示例。

如图3所示,在步骤306处,本文描述的系统中的一个或多个系统可将“n”个子卷分配给“x”个逻辑条带。本文描述的系统可以各种方式执行步骤306。例如,作为图2中的计算设备202和/或服务器206的一部分,第二分配模块108可将“n”个子卷128分配给“x”个逻辑条带124。

在示例中,方法300可包括用逻辑条带标识符标记至少一个逻辑条带。

在一些实施方案中,方法300可包括将相等数量的子卷128分配给“x”个逻辑条带中的每个逻辑条带。

如本文所用,术语“逻辑条带”通常是指子卷的逻辑组。本文相对于图4描述了逻辑条带的示例。

如图3所示,在步骤308处,本文描述的系统中的一个或多个系统可将前“y”个逻辑条带中的每个逻辑条带分配给“y”个物理条带中的每个物理条带中的相应的物理条带。换句话讲,较低编号的逻辑条带可基本上完全存储在相应的物理条带上,诸如一个逻辑条带基本上完全存储在每个相应的物理条带上。本文描述的系统可以各种方式执行步骤308。例如,作为图2中的计算设备202和/或服务器206的一部分,第三分配模块110可将前“y”个逻辑条带124中的每个逻辑条带分配给“y”个物理条带122中的每个物理条带中的相应的物理条带。

如图3所示,在步骤310处,本文描述的系统中的一个或多个系统可将剩余子卷分发给相应的逻辑条带,并且在一些情况下,分发给相应的子逻辑条带。本文描述的系统可以各种方式执行步骤310。在示例中,作为图2中的计算设备202和/或服务器206的一部分,分发模块112可将剩余子卷128分发给相应的逻辑条带124,并且在一些情况下,分发给相应的子逻辑条带126。例如,作为图2中的计算设备202和/或服务器206的一部分,分发模块112可将剩余逻辑条带124除以“y”以形成相应的子逻辑条带126。

在示例中,方法300可包括用子逻辑条带标识符标记至少一个子逻辑条带。

如本文所用,术语“子逻辑条带”通常是指逻辑条带中子卷的子组。在示例中,子逻辑条带中的子卷可跨不同的物理条带存储。

如图3所示,在步骤312处,本文描述的系统中的一个或多个系统可跨“y”个物理条带分配相应的子卷。本文描述的系统可以各种方式执行步骤312。在示例中,作为图2中的计算设备202和/或服务器206的一部分,“第n”分配模块114可跨“y”个物理条带122分配相应的子卷128。例如,作为图2中的计算设备202和/或服务器206的一部分,“第n”分配模块114可为每个逻辑条带124跨“y”个物理条带122分配相应的子逻辑条带126。在实施方案中,“n”为整数,诸如四。

在示例中,方法300可包括检查至少一个子卷是否过度使用,并且可包括当子卷被识别为过度使用时,将过度使用的子卷移动到不同的物理条带。在实施方案中,当逻辑条带包括过度使用的子卷时,逻辑条带可被识别为过度使用的条带。

图4为跨多个存储设备400对子卷的示例性分配的图示。在图4中,“pi”是指相应的物理条带“i”(例如,“p0”表示物理条带零)。此外,“lj”是指相应的逻辑条带“j”(例如,“l0”表示逻辑条带零)。在图4中,子卷由包括相应编号的块表示(例如,物理条带p0包括逻辑条带l0,该逻辑条带包括子卷零)。因此,作为执行方法300的结果,逻辑条带l0存储在物理条带p0上并且包括子卷0、6、12、18、24、30、36、42、48和54。在该示例中,逻辑条带l0不包括任何子逻辑条带。此外,逻辑条带l1存储在物理条带p1上并且包括子卷1、7、13、19、25、31、37、43、49和55。在该示例中,逻辑条带l1不包括任何子逻辑条带。另外,逻辑条带l0部分地存储在物理条带p0上并且部分地存储在物理条带p1上。逻辑条带l0包括两个子逻辑条带。l2的第一子逻辑条带存储在物理条带p0上并且包括子卷2、14、26、38和50。l2的第二子逻辑条带存储在物理条带p1上并且包括子卷8、20、32、44和56。图4还描绘了过度使用的子卷52和57-58,它们由相应的子卷块的右上角中的相应三角形描绘。

在一些示例中,用于分配子卷的方法可包括:(1)将完整的卷空间划分为“n”个子卷,其中n=lcm(y,3,4,5,…x),“x”=要支持的最大条带数,并且“y”=要支持的最小条带数;(2)将递归逻辑条带化算法应用于所有子卷(0至n-1);(3)将逻辑条带属性标记到每个子卷,直到递归级别达到等于或小于最高可用物理条带的逻辑条带编号为止;(4)在分配逻辑条带的前面的子卷时,检查逻辑条带的最后一个子卷是从何处分配的并选择要向其分配子卷的下一个物理条带;以及(5)在标记时,确定条带中是否存在任何过度使用的子卷并将过度使用的子卷标记为过度使用。

图5为用于跨多个存储设备500分配子卷的示例性计算机实现的方法的示例性流程图。图5中所示的步骤可由任何合适的计算机可执行代码和/或计算系统执行,包括图1中的系统100、图2中的系统200和/或上述一者或多者的变体或组合。在一个示例中,图5所示步骤中的每个步骤可表示其结构包括和/或由多个子步骤表示的算法。在实施方案中,方法500可将子卷128分配给多个存储设备,诸如存储设备120和/或云存储设备208。

在一些实施方案中,可将新的存储设备和/或物理条带添加到多个存储设备的初始组中。当添加了新的存储设备和/或物理条带时,可执行优化的重新布局方法以优化存储空间的分配。例如,返回图3,方法300可包括:(1)添加附加的物理条带(例如,在添加的存储设备上);(2)将y+1个逻辑条带和其中的子卷转移到附加的物理条带;以及(3)跨y+1个物理条带重新分发y+2和任何更高逻辑条带中的子卷。在实施方案中,方法300可包括:(1)添加“p”个物理条带,其中“p”为整数;(2)将y+1至y+p个逻辑条带和其中的子卷转移到附加的“p”个物理条带;以及(3)跨y+p个物理条带重新分发y+p+1和任何更高逻辑条带中的子卷。在一个示例中,方法300可包括检查至少一个子卷是否过度使用,并且当检测到过度使用的子卷时,将过度使用的子卷转移到附加的物理条带。

图6为在添加了一个存储设备600时跨多个存储设备对子卷的示例性重新分配的图示。图6的左侧描绘了与图4的那些初始条件类似的初始条件。图6的中心部分描绘了添加新的物理条带p2、将逻辑条带l2移动到物理条带p2以及跨物理条带p0-p2重新分发来自逻辑条带l3-l5的子卷。图6的右侧描绘了将过度使用的子卷52和57-58移动转移到新的物理条带p2。

图7为在添加了两个存储设备700时跨多个存储设备对子卷的示例性重新分配的图示。图7的左侧描绘了与图4的那些初始条件类似的初始条件。图7的中心部分描绘了添加新的物理条带p2-p3、将逻辑条带l2移动到物理条带p2、将逻辑条带l3移动到物理条带p3以及跨物理条带p0-p3重新分发来自逻辑条带l4-l5的子卷。图7的右侧描绘了将过度使用的子卷52和58移动转移到新的物理条带p2-p3。

返回图3,在一些示例中,在添加了新的存储设备和/或物理条带之后,随后可移除存储设备和/或物理条带。当随后移除了存储设备和/或物理条带时,可执行优化的重新布局方法以优化存储空间的分配。例如,方法300可包括(例如,随后):(1)跨前“y”个物理条带重新分发来自“y+1”个逻辑条带的子卷;(2)跨前“y”个物理条带重新分发y+2和任何更高逻辑条带中的子卷;以及(3)从多个存储设备(例如,从待移除的存储设备)移除y+1个物理条带。在一个实施方案中,方法300可包括检查至少一个子卷是否过度使用,并且当检测到过度使用的子卷时,将过度使用的子卷转移到存储最少数量的子卷的物理条带。

在一些实施方案中,可从多个存储设备的初始组中移除存储设备和/或物理条带。当从多个存储设备的初始组中移除了存储设备和/或物理条带时,可执行优化的重新布局方法以优化存储空间的分配。例如,方法300可包括:(1)跨前“y-1”个物理条带重新分发来自“y”个逻辑条带的子卷;(2)跨前“y-1”个物理条带重新分发y+1和任何更高逻辑条带中的子卷;以及(3)从多个存储设备(例如,从待移除的存储设备)移除“y”个物理条带。在一个示例中,方法300可包括检查至少一个子卷是否过度使用,并且当检测到过度使用的子卷时,将过度使用的子卷转移到存储最少数量的子卷的物理条带。

图8是在移除了一个存储设备800时跨多个存储设备对子卷的示例性重新分配的图示。图8的左侧描绘了与图7的右侧的那些初始条件类似的初始条件。图8的中心部分描绘了准备移除物理条带p3并跨物理条带p0-p2重新分发逻辑条带l3中的子卷。跨物理条带p0至p2重新分发逻辑条带l4至l5中的子卷。图8的右侧描绘了物理条带p3的移除。

图9是在移除了两个存储设备900时跨多个存储设备对子卷的示例性重新分配的图示。图9的左侧描绘了与图7的右侧的那些初始条件类似的初始条件。图9的中心部分描绘了准备移除物理条带p2-p3并跨物理条带p0-p1重新分发逻辑条带l2-l3中的子卷。跨物理条带p0-p1重新分发逻辑条带l4-l5中的子卷。图9的右侧描绘了物理条带p2-p3的移除。

返回图3,在一些示例中,在移除了新的存储设备和/或物理条带之后,可随后添加新的存储设备和/或新的物理条带。当随后添加了存储设备和/或新的存储设备和/或新的物理条带时,可执行优化的重新布局方法以优化存储空间的分配。例如,方法300可包括(例如,随后)(1)添加附加的物理条带(例如,在添加的存储设备上);(2)将y-1个逻辑条带和其中的子卷转移到附加的物理条带;以及(3)跨y个物理条带重新分发“y”和任何更高逻辑条带中的子卷。在实施方案中,方法300可包括:(1)添加“p”个物理条带,其中“p”为整数;(2)将y+1至y+p个逻辑条带和其中的子卷转移到附加的“p”个物理条带;以及(3)跨y+p个物理条带重新分发y+p+1和任何更高逻辑条带中的子卷。在一个实施方案中,方法300可包括检查至少一个子卷是否过度使用,并且当检测到过度使用的子卷时,将过度使用的子卷转移到附加的物理条带。

图10为将常规技术(“现有”)的操作性能与所提供的优化技术1000的操作性能的示例进行比较的图表。在一些示例中,对于600gb-1200gb的卷大小以及卷大小从2个物理条带到3个或4个物理条带的增加,重新布局时间可改善94%-95%。

在一些示例中,所提供的具有两个物理条带,八个逻辑条带和840个子卷的优化技术可有利地仅使输入/输出性能略微下降,即写重新布局时间下降6.16%且读重新布局时间下降1.86%。在附加的实施方案中,所提供的具有三个物理条带、八个逻辑条带和840个子卷的优化技术可有利地仅使输入/输出性能略微下降,即写重新布局时间下降6.05%且读重新布局时间下降3.49%。

如上所详述,本文概述的步骤可提供用于跨多个存储设备重新平衡条带式信息的方法。在一些示例中,所提供的系统和方法可与条带式存储设备一起使用。通过这样做,在一些示例中,本文描述的系统和方法可通过跨多个存储设备自动(重新)平衡条带式信息来改善计算设备的功能,从而实现具有成本效益的存储管理。另外,在一些示例中,本文描述的系统和方法可通过减少待转移的数据量来节省功率。所提供的方法也可能不需要使用临时存储空间,可能不需要串行地转移多个存储设备中的基本上所有数据,并且可能不需要像常规技术那样移动那么多数据。

虽然上述公开使用特定框图、流程图和示例阐述了各种实施方案,但每个框图部件、流程图步骤、操作和/或本文描述和/或示出的部件可使用多种硬件、软件或固件(或它们的任意组合)配置单独和/或共同地实施。此外,包含在其他部件内的部件的任何公开应当被视为在本质上是示例的,因为可实施许多其他体系结构来实现相同的功能。

在一些示例中,图1中的示例性系统100的全部或一部分可以表示云计算的环境或基于网络的环境的部分。云计算环境可经由互联网提供各种服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等)可通过网页浏览器或其它远程接口访问。本文所述的各种功能可通过远程桌面环境或任何其他基于云的计算环境提供。

在各种实施方案中,图1中的示例性系统100的全部或一部分可促进基于云的计算环境内的多重租赁。换句话讲,本文所述的模块可配置计算系统(例如,服务器)以促进本文所述的功能中的一种或多种的多重租赁。例如,本文所述的模块中的一个或多个可对服务器进行编程以允许两个或更多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作系统、处理系统和/或存储系统。本文所述的模块中的一个或多个还可为每个顾客分割多租户应用程序的数据和/或配置信息以使得一个顾客不能访问另一个顾客的数据和/或配置信息。

根据各种实施方案,图1中的示例性系统100的全部或一部分可以在虚拟环境内实现。例如,本文所述的模块和/或数据可在虚拟机内驻留和/或执行。如本文所用,术语“虚拟机”通常是指由虚拟机管理器(例如,超级管理程序)从计算硬件中提取出来的任何操作系统环境。

在一些示例中,图1中的示例性系统100的全部或一部分可以表示移动计算环境的部分。移动计算环境可由多种移动计算设备来实施,所述移动计算设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等)、上述一者或多者的变体或组合、或任何其他合适的移动计算设备。在一些示例中,移动计算环境可具有一个或多个显著特征,包括例如依赖电池供电、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征、(例如,由全球定位系统、陀螺仪、加速计等提供的)位置和移动数据、用于限制对系统级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、用于限制应用程序的安装(例如,仅限于安装来源于经批准的应用程序商店的应用程序)的控件,等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境交互。

本文描述和/或示出的过程参数和步骤序列仅以举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不必以示出或讨论的顺序来执行。本文描述和/或示出的各种示例方法也可省略本文描述或示出的步骤中的一个或多个,或除了所公开的那些步骤之外还包括另外的步骤。

虽然本文已经在全功能计算系统的上下文中描述和/或示出了各种实施方案,但是这些示例性实施方案中的一个或多个可以作为各种形式的程序产品来分配,而不考虑用于实际进行分配的计算机可读介质的特定类型。本文所公开的实施方案还可以使用执行某些任务的模块来实现。这些模块可以包括脚本文件、批文件或可存储在计算机可读存储介质上或计算系统中的其他可执行文件。在一些实施方案中,这些模块可以将计算系统配置为执行本文所公开的示例性实施方案中的一个或多个。

前文的描述旨在使本领域的其他技术人员能够最好地利用本文所公开的示例实施方案的各个方面。该示例性描述并非旨在是详尽的或限于所公开的任何确切形式。在不脱离本公开的实质和范围的前提下,可进行许多修改和变化。本文所公开的实施方案在所有方面均应被视为示例性的而非限制性的。应参考所附权利要求及其等同形式来确定本公开的范围。

除非另有说明,否则本说明书和权利要求中所用的术语“连接到”和“联接到”(以及它们的衍生形式)应被理解为既允许直接的连接,又允许间接(即,经由其他元件或部件)的连接。此外,本说明书和权利要求中所用的术语“一”或“一个”应被理解为意指“至少一个…”。最后,为了便于使用,本说明书和权利要求中所用的术语“包括”和“具有”(以及它们的衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。

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