CN115244518A - 非均匀存储的容量和性能优化 - Google Patents
非均匀存储的容量和性能优化 Download PDFInfo
- Publication number
- CN115244518A CN115244518A CN202080098117.1A CN202080098117A CN115244518A CN 115244518 A CN115244518 A CN 115244518A CN 202080098117 A CN202080098117 A CN 202080098117A CN 115244518 A CN115244518 A CN 115244518A
- Authority
- CN
- China
- Prior art keywords
- storage
- subsystem
- percentage
- storage subsystem
- subsystems
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在一些示例中,计算设备可以被配置为将数据存储到存储池中的存储子系统。所述计算设备可以为每个存储子系统确定表示存储子系统的相对性能的性能潜在量,并且可以至少基于性能潜在量确定每个存储子系统的相应初始分布加权。此外,所述计算设备可以针对具有大于阈值量的使用存储容量百分比的每个存储子系统来确定一个或多个量,所述阈值量大于由具有最低使用存储容量百分比的存储子系统使用的存储容量百分比,通过所述一个或多个量来调整所述初始分布加权以确定每个存储子系统的相应期望分布加权。所述计算设备可以至少基于期望的分布加权来选择一个或多个存储子系统,以接收数据。
Description
技术领域
本公开涉及数据存储的技术领域。
背景技术
数据对象和其它类型的数据可以存储在存储池或可以包括多个数据存储子系统的其它存储系统布置中。存储系统可以通过添加新的子系统来扩展,当与存储系统中的现有子系统相比时,新的子系统也可以具有增加的性能和/或容量。因此,存储系统可以以在容量和/或性能方面不相同的多个子系统结束。例如,每个子系统可能具有与存储系统中的其它子系统不同的性能和容量,这可能使负载平衡和数据分布复杂化。例如,在这种情况下,仅仅在存储子系统上均匀地分布数据并不能说明较高性能子系统的更好性能。
发明内容
一些实现包括被配置为将数据存储到存储池中的存储子系统的计算设备。所述计算设备可以为每个存储子系统确定表示存储子系统的相对性能的性能潜在量,并且可以至少基于性能潜在量确定每个存储子系统的相应初始分布加权。此外,所述计算设备可以针对具有大于阈值量的使用存储容量百分比的每个存储子系统来确定一个或多个量,所述阈值量大于由具有最低使用存储容量百分比的存储子系统使用的存储容量百分比,通过所述一个或多个量来调整所述初始分布加权以确定每个存储子系统的相应期望分布加权。所述计算设备可以至少基于期望的分布加权来选择一个或多个存储子系统以接收数据。
附图说明
将参照附图进行详细说明。在附图中,附图标记的最左边的数字标识附图标记首先出现的附图。在不同附图中使用相同的附图标记指示相似或相同的术语或特征。
图1示出了根据一些实现的能够将数据存储到多个非均匀存储子系统的系统的示例架构。
图2示出了根据一些实现的用于优化和控制流量分布的过程的第一部分的流程图。
图3示出了根据一些实现的用于优化和控制流量分布的过程的继续的流程图。
图4是示出根据一些实现的确定选择列表的示例的框图。
图5是示出根据一些实现的确定选择列表的示例的框图。
图6是示出根据一些实现的确定选择列表的示例的框图。
图7示出了可以用于实现本文描述的系统的功能中的至少一些功能的服务计算设备的选择示例组件。
图8示出了根据一些实现的子系统的示例配置的选择组件。
具体实施方式
本文的一些实现涉及用于优化数据存储池或其它存储子系统组的使用的技术和布置。例如,可以控制用于存储在存储池中的各个子系统中的数据的分布,以优化性能,同时在多个子系统上保持类似的容量使用水平。加权(这里也称为偏斜)可以是用户可配置的,以更多地关注提高的性能或容量管理。子系统的性能和容量可以由子系统报告,或者可以由一个或多个服务节点确定和维护。本文的解决方案优化了性能,同时通常均匀地填充子系统的存储容量。本文的实现能够优化池非均匀存储子系统的性能而不引起容量问题。因此,系统使用子系统的性能能力和容量来计算最优分布。
本文的一些示例优化多个存储子系统的性能,同时跨子系统均匀地分布数据。该系统使用户能够配置容量对性能的可配置加权(偏斜)。例如,较高的偏斜可以更多地强调选择存储池中最不完整的子系统,而较低的偏斜可以强调较高的性能,而较少地关注均匀分布的容量。此外,所确定的分布可以针对个别子系统的个别存储性能而优化,并且可以在所有子系统相同时提供均匀分布。另外,系统可以被配置为基于个体统计和结果来分布数据和/或可以基于吞吐量来维持分布。
本文的工作负载分布可以跟踪繁忙线程并保持期望的繁忙百分比。另外,当容量发散时,容量偏斜与最佳性能分布的组合可以导致存储池的稳定性能。例如,随着最高性能的设备变得更满,最高性能的设备可以接收更少的数据摄取。另外,本文的数据分布过程可以与存储池中的任何实际数量的存储子系统一起使用,并且可以通过基于容量重定向数据存储来避免容量不足错误,例如当存储子系统之一接近全存储容量时。
本文的一些示例包括考虑多个非均匀存储子系统的组合性能和容量以优化性能同时导致子系统使用的类似百分比的数据分布算法。该系统还可以包括滑动比例调整,以使用户能够手动调整加权,以将所得数据分布更多地集中在性能上或更多地集中在容量上。本文的系统可以提供具有子系统之间的容量使用中的一些可计算的差异的一致池性能,诸如基于加权偏斜的调整以关注子系统容量或子系统性能。
出于讨论的目的,在与多个非均匀存储子系统通信的一个或多个服务计算设备的环境中描述了一些示例实现,用于基于平衡存储子系统的性能和容量使用以最优方式管理数据的分布。然而,本文的实现不限于所提供的特定示例,并且可以扩展到其它类型的计算系统架构、其它类型的存储环境、其它类型的客户端配置、其它类型的数据等等,这对于本领域技术人员根据本文的公开将是显而易见的。
图1示出了根据一些实现的能够将数据存储到多个非均匀存储子系统的系统100的示例架构。系统100包括能够例如通过一个或多个网络105与存储池103通信或以其它方式联接到存储池103的一个或多个服务计算设备102,存储池103包括多个存储子系统104,例如第一子系统104(1)、第二子系统104(2)、第三子系统104(3)、第四子系统104(4)等。子系统104(1)-104(4)各可以包括其与其它子系统104(1)-104(4)中的每一个分开地管理多个指定存储设备的一个或多个计算设备(图1中未示出)。在下面参照图8讨论子系统104的附加细节。
此外,服务计算设备102能够通过一个或多个网络106与一个或多个用户计算设备108通信。例如,服务计算设备102可以是访问节点、服务器节点、管理节点和/或其它类型的服务节点,其向客户端设备提供对存储池104的访问,以使得客户端设备能够在存储池104中存储数据,以及执行其它管理和控制功能,如下面另外讨论的。
服务计算设备102还能够例如通过网络105或者可选地通过网络106与一个或多个管理员计算设备110通信。例如,管理员计算设备110可以用于配置服务计算设备102和/或存储池104。客户端设备108和管理员设备-可以是各种类型的计算设备中的任何一种,如下面另外讨论的。
在一些示例中,服务计算设备102可以包括可以以任何数量的方式实现的一个或多个服务器。例如,服务计算设备102的程序、其它功能组件和数据存储的至少一部分可以在至少一个服务器上实现,例如在服务器集群、服务器群、数据中心、云托管计算服务等中,尽管可以附加地或替代地使用其它计算机架构。作为另一示例,服务计算设备102可以被抽象为或以其它方式被视为单个节点,该单个节点实际上是包含多个服务计算设备102的集群。服务计算设备102的附加细节在下面参照图7进行讨论。
一个或多个网络105和106可以包括任何合适的网络,包括诸如互联网之类的广域网;诸如内联网之类的局域网(LAN);诸如蜂窝网络之类的无线网络、诸如Wi-Fi之类的本地无线网络和/或诸如之类的短程无线通信;有线网络,包括光纤通道、光纤、以太网或任何其它此类网络、直接有线连接或其任何组合。因此,一个或多个网络105和106可以包括有线和/或无线通信技术两者。用于这种通信的组件可以至少部分地取决于网络的类型、所选择的环境或两者。用于在这样的网络上通信的协议是公知的,并且在此将不详细讨论。作为一个示例,网络105可以是专用网络,诸如LAN、存储区域网络(SAN)、光纤信道网络,而网络106可以是在一些情况下可以包括因特网的公共网络,或者公共和专用网络的组合。本文的实现方式不限于如网络105和106那样的任何特定类型的网络。
服务计算设备102可以被配置为分别经由客户端设备108向客户端用户112提供存储和数据管理服务。作为若干非限制性示例,用户112可以包括执行用于企业、企业、组织、政府实体、学术实体等的功能的用户,并且在一些示例中,用户112可以包括存储非常大量的数据。然而,本文的实现不限于系统100和这里描述的其它系统和结构的任何特定用途或应用。
每个用户设备108可以是任何合适类型的计算设备,诸如台式机、膝上型计算机、平板计算设备、移动设备、智能电话、可穿戴设备、终端和/或能够通过网络发送数据的任何其它类型的计算设备。用户112可以例如通过相应的用户帐户、用户登录凭证等与客户端设备108相关联。此外,客户端设备108可以被配置为通过一个或多个网络106、通过单独的网络、或通过任何其它合适类型的通信连接与服务计算设备102通信。受益于本文公开内容的本领域技术人员将理解许多其它变化。
此外,每个客户端设备108可以包括可以在客户端设备108上执行的用户应用114的相应实例,诸如用于与可在服务计算设备102上执行的客户端web应用116通信,诸如用于发送用户数据以存储在子系统104上和/或用于通过数据指令118从子系统104接收存储的数据,诸如写入操作、读取操作、删除操作等。在一些情况下,应用114可以包括浏览器或者可以通过浏览器操作,而在其它情况下,应用114可以包括具有通信功能的任何其它类型的应用,该通信功能使得能够通过一个或多个网络106与客户端web应用116或服务计算设备102上的其它应用通信。因此,服务计算设备102可以为用户112和相应的客户端设备108提供存储。在稳态操作期间,可以有用户112周期性地与服务计算设备102通信。
另外,管理员设备110可以是任何合适类型的计算设备,诸如台式机、膝上型计算机、平板计算设备、移动设备、智能电话、可穿戴设备、终端和/或能够通过网络发送数据的任何其它类型的计算设备。管理员120可以例如通过相应的管理员帐户、管理员登录凭证等与管理员设备110相关联。此外,管理员设备110能够通过一个或多个网络106、107,通过单独的网络,或通过任何其它合适类型的通信连接与服务计算设备102通信。
此外,每个管理员设备110可以包括可以在管理员设备110上执行的管理员应用122的相应实例,诸如用于与可在服务计算设备102上执行的管理web应用124通信,诸如用于发送用于管理系统100的管理指令,以及例如通过管理指令等发送用于存储在子系统104上的管理数据和/或用于从子系统104接收存储的管理数据。在一些情况下,管理员应用122可以包括浏览器或者可以通过浏览器操作,而在其它情况下,管理员应用122可以包括具有通信功能的任何其它类型的应用,该通信功能使得能够通过一个或多个网络107或106与管理web应用124或服务计算设备102或子系统104上的其它应用通信。
服务计算设备102可以执行存储管理程序128,存储管理程序128可以提供对子系统104的访问,诸如用于发送要存储到子系统104的数据130以及用于从子系统104检索所请求的数据130。另外,存储管理程序128可以管理系统100存储的数据,诸如用于管理数据保持周期、数据保护级别、数据复制等。在一些情况下,存储管理程序128可以周期性地从各个子系统104接收子系统度量132,诸如性能度量、容量使用度量等。此外,如下面另外讨论的,存储管理程序128可以包括负载分布优化程序134,负载分布优化程序134可以优化子系统104的性能,同时总体上平衡子系统104的存储容量。
在该示例中,负载分布优化程序134被示为存储管理程序128的一部分。然而,在其它示例中,负载分布优化程序134可以是与存储管理程序128分离的程序,并且可以由存储管理程序128或在服务计算设备102、管理员设备110等上执行的其它程序调用。
服务计算设备102还可以包括元数据数据库(DB)136,其可以分布在服务计算设备102中的一个或多个上。例如,元数据DB 136可以用于管理存储在子系统104处的数据130。元数据DB 136可以包括关于数据136的许多元数据,诸如关于个别数据对象或其它数据的信息、如何访问数据、数据的存储保护级别、存储保持时段、数据所有者信息、数据大小、数据类型等。此外,存储管理程序138可以管理和维护元数据DB 136,诸如用于在存储新数据、删除旧数据、迁移数据等时更新元数据DB 136,以及响应访问数据130的请求。
作为一个示例,存储管理程序128可以接收数据指令以将数据130存储到存储池103。存储管理程序128可以至少部分地基于选择列表138来选择目的地子系统104。存储管理程序128可以将数据130的元数据添加到元数据数据库136,并且可以将数据130发送到所选择的子系统104。所选子系统104的连接计数可以递增1。在完成向所选子系统104的数据130的传输之后,到所选子系统104的连接计数可以递减1,并且存储管理程序128可以利用指示成功、失败等的完成消息来发起对请求客户端设备108的回复。下面另外讨论确定选择列表138的细节。
每个子系统104(1)-104(4)可以分别执行存储程序140(1)-140(4),用于管理在相应子系统104(1)-104(4)处的相应数据130(1)-130(4)的存储。例如,存储程序140可以从服务计算设备102处的存储管理程序128接收数据130,可以将数据130存储在子系统104处的一个或多个存储设备上,并且可以例如响应于客户端读取请求等来检索所请求的数据并将其发送到存储管理程序128。存储程序140还可以向存储管理程序128提供信息,诸如由子系统104中的特定一个上的特定存储程序140管理的各个存储设备的性能信息、容量使用信息等。
图2和图3是示出根据一些实现的用于优化和控制流量分配的示例过程200的流程图。该过程被示为逻辑流程图中的块的集合,该逻辑流程图表示操作序列,其中的一些或全部可以硬件、软件或其组合来实现。在软件的上下文中,块可以表示存储在一个或多个计算机可读介质上的计算机可执行指令,当由一个或多个处理器执行该指令时,该指令对处理器编程以执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述块的顺序不应被解释为限制。可以以任何顺序和/或并行地组合任何数量的所描述的块以实现过程或替换过程,并且不需要执行所有块。出于讨论的目的,参考本文示例中描述的环境、框架和系统来描述该过程,尽管该过程可以在各种其它环境、框架和系统中实现。
负载分布优化程序134可以部分地基于以下算法。例如,假设值Cn表示在存储池103中的一个存储子系统104中使用的容量的百分比,其中n是1与存储池103中的子系统104的数目之间的数。因此,Cn可以等于(已使用容量/总容量)*100。此外,假设Cmin是在最小百分比使用子系统上使用的容量的百分比(即,池中的最小Cn)。此外,假设BT是平衡阈值百分比,例如,Cn不大于大于Cmin的值BT的任何子系统被认为是平衡的。如果所有系统都是平衡的,则数据分布完全基于性能而完全不基于容量,而与偏斜乘数S的值无关。因此,(Cn-Cmin)可以表示存储池103中的一个存储子系统104的失衡百分比。该值对于Cmin为0,对于(Cn-Cmin)≤BT的任何子系统有效为0。此外,假设Dn是特定存储子系统的流量分布的百分比。存储池中所有Dn的总和可以总是100%。
对于(Cn-Cmin)≤BT的平衡系统,那么Dn可以被计算如下:
Dn=Tn/TP+SUM(其中(Cx-Cmin≤BT)(MIN((CX-Cmin)*S,100%)*Tx/TP/NB) 等式(1)
在等式(1)中,Tn是池中一个存储子系统的最大吞吐量,其中n是1与池中子系统的数目之间的数。单位可以是MB/sec或其它一致单位。Tn的值可以受到任何数量的性能特性的限制,例如磁盘速度、网络带宽和CPU限制。
此外,在等式(1)中,TP可以表示存储池103中子系统104的总吞吐量能力,即存储池103中所有Tn的总和。
另外,在等式(1)中,S可以表示用于控制性能对容量的偏斜乘数。例如,高数目仅基于容量来分配数据,而0值导致仅基于子系统性能能力来分配数据。当S被设置为等于1时,系统可以基于性能和容量的一般均匀应用来分配流量。
此外,在等式(1)中,对于池中的不平衡子系统,Cx可以与Cn相同,其中,x是1与存储池103中的不平衡子系统的数目((Cn-Cmin)>BT)之间的数目。
此外,在等式(1)中,对于池103中的不平衡子系统,Tx可以与Tn相同,其中,x是1与存储池103中的不平衡子系统的数目((Cn-Cmin)>BT)之间的数目。
另外,在等式(1)中,NB可以表示池103中平衡子系统104的数目,即,其中(Cn-Cmin)≤BT的子系统104的数目。
此外,对于(Cn-Cmin)>BT的存储池103中的不平衡子系统104,则可以如下计算Dn:
Dn=MAX((100%-(Cn-Cmin)*S)*Tn/TP,0%) 等式(2)
其中,Cn、Cmin、S、Tn和TP的值可以与上面关于等式(1)讨论的值相同。
在以下图2至图6的示例中,上面讨论的等式的一些概念可以被概括和部分地应用于确定和控制摄取的数据流量在多个子系统104之间的分布,例如在上面参照图1讨论的示例系统100中的存储池103中。例如,假设平衡阈值BT,即池103中的子系统104中使用的容量百分比之间的可接受百分比差,被配置为诸如2%的默认值。此外,假设初始期望分布(IDD)是池103中的每个存储子系统104基于性能预期获得的连接的百分比。IDD可以是仅基于相应子系统104的性能而不是容量的加权。另外,失衡百分比(OOBP)可以表示当一个存储子系统104的使用百分比超过BT时相对于另一个的增加。可以针对具有最小百分比的已使用容量的存储子系统104来计算OOBP。此外,再分配百分比(RDP)可以表示将从填充在平衡阈值以上的子系统之一减去并添加到平衡最小填充子系统的IDD的量。RDP可以用于确定经调整的再分配百分比(ARDP),其为将从不平衡子系统分配到最小平衡子系统之一的IDD的量,例如,ARDP=(RDP/平衡子系统的数目)。另外,当前分布(CD)可以表示池中存储子系统上的开放连接的百分比。CD可以计算为CD=(100%*子系统上的开放连接/池中的开放连接)。此外,期望分布(DD)可以是指示将被定向到每个子系统104的流量的百分比的加权。
图2示出了根据一些实现的用于优化和控制流量分布的过程200的第一部分的流程图。在图2的示例中,过程200可以至少部分地由执行存储管理程序128的负载分布优化程序134等的一个或多个服务计算设备102执行。
负载分布优化程序134组合存储子系统104的性能和容量以优化性能,同时导致子系统104的容量的类似百分比使用。即使当子系统在性能和容量方面完全不同(非均匀)时,负载分布优化程序134也可以执行优化。
在一些情况下,负载分布优化程序134可以包括偏斜乘数,偏斜乘数是加权乘法器,其可以用于更朝向性能或更朝向容量平衡调整优化的焦点。在本文的实现中,偏斜乘数的“0”值可以总是引导流量实现最高性能而不考虑容量使用,直到相应的子系统104完全填充为止。另一方面,偏斜乘数的高值(例如,基本上大于“1”)可以以平衡存储子系统104的容量并忽略各个子系统104的性能的方式来引导所有流量。当偏斜乘数值超过(100%/平衡阈值)时,没有流量将进入不平衡子系统。偏斜乘数值“1”允许容量和性能具有相等的权重。
在本文的一些示例中,包括多个子系统104的存储池103在多个场景中可能变得失衡。作为一个示例,可以将新子系统104添加到老化和填充存储池103。当新的(并且假定为空的)子系统104被添加到存储池103时,负载分布优化程序134利用填充较少的新添加存储容量,同时保持最优性能。由于可以预期新子系统104比现有子系统104更快地填充,所以所有子系统104之间的失衡差异变得更小,并且新摄取的数据可以逐渐地指向现有的部分填充的子系统104。
如果所有子系统104具有相同的性能特征,则这些子系统104可以在优化性能的同时连续地接近平衡容量。如果子系统104相对于彼此具有不同的性能,则负载分布优化程序134可以允许更快的系统更快地填充。在这种情况下,子系统104可以从平衡容量移动到失衡容量。在这种情况下,负载分布优化程序134开始限制新数据流到更快填充的更快(更高性能)子系统。随着焦点逐渐合并到填充较少的较慢填充子系统104,跨子系统104的性能可以基于偏斜乘数最终稳定。
在201,服务计算设备可以确定是否存在子系统104的现有未到期度量。如果是,则过程可以进行到204。如果不是,则过程可以转到202以获得子系统104的度量。
在202,服务计算设备可以接收容量度量,并且在一些示例中,接收子系统104的性能度量。例如,服务计算设备可以从子系统104请求度量,等待周期性地接收度量,或者可以基于由服务计算设备102确定的信息来计算度量。在一些示例中,子系统104可以被配置为周期性地向服务计算设备102发送性能和容量度量。作为几个非限制性示例,时间段可以是1分钟、2分钟、3分钟、5分钟、15分钟、每半小时、每小时、每天等。
在204,服务计算设备可以确定是否已经接收到每个子系统104的性能度量。如果是,则过程进行到208。如果不是,则过程进行到206。
在206,当尚未接收到针对所有连接的子系统104的性能度量时,服务计算设备可以将用于数据分布的初始期望分布(IDD)设置为在所有子系统104上初始相等。例如,如果存储池103中的子系统104中的任何一个没有返回性能度量,则初始期望分布IDD可以在存储池103中的子系统104之间均匀分布。
另外或另选地,即使性能度量可能不被特定子系统104返回,性能度量也可以由服务计算设备102例如基于后续计算的结果来计算。
在208,当已经接收到存储池103中的所有子系统104的性能度量时,服务计算设备可以基于子系统104的剩余性能能力来计算用于数据分布的IDD。例如,每个子系统104的IDD可以计算为该子系统的可用性能能力除以所有子系统104的可用性能能力之和。
在210,服务计算设备可以确定最高子系统容量使用百分比和最低子系统容量使用百分比之间的差是否大于该差的平衡阈值BT。如果不是,则过程进行到212。另一方面,如果差值大于平衡阈值BT,则过程进行到214。
在212,当差异不大于子系统104中的任何一个的平衡阈值BT时,则子系统104具有平衡的容量,并且子系统104中没有一个将具有重新分配百分比(RDP)或经调整的重新分配百分比(ARDP)。因此,可以跳过框214至框220,并且过程可以转到图3中的框301块。
在214,当最高子系统容量使用百分比和最低子系统容量使用百分比之间的差大于平衡阈值BT时,服务计算设备可以针对超过平衡阈值BT的每个子系统确定失衡百分比(OOBP)。例如,OOBP可以等于子系统的百分比容量减去存储池103中的任何子系统104使用的最低百分比容量。
在216处,服务计算设备可以将OOBP乘以偏斜乘数(本文中也称为加权乘数)以确定重新分配百分比(RDP)。例如,RDP是初始分布的百分比,其将从所选择的子系统均匀地重新分配到填充较少的子系统。
在218,服务计算设备可以确定是否已经处理了所有失衡子系统以确定OOBP和RDP。如果是,则过程进行到220。如果不是,则过程返回214以选择另一个失衡子系统来确定OOBP和RDP。这将导致为每个子系统确定RDP,所使用的容量百分比比最低百分比使用子系统上所使用的百分比高出超过平衡阈值BT。
在220,服务计算设备可以将所有RDP除以未针对其计算RDP的子系统的数目,以确定经调整的重新分配百分比ARDP。如上所述,不为最低填充子系统的平衡阈值BT内的任何子系统计算RDP。
图3示出了根据一些实现的用于优化和控制流量分布的过程200的继续的流程图。
在301,服务计算设备可以通过将各个子系统的IDD乘以ARDP百分比来确定每个子系统104的期望分布DD加权,并且对于具有ARDP的每个子系统,从IDD减去RDP(或者,为了实现相同的结果,对于存储池中的每个平衡子系统,从IDD减去一次乘积)。对于不具有ARDP的每个子系统,来自确实具有ARDP的子系统的ARDP和IDD的乘积被添加到那些系统的IDD。在子系统104中没有一个具有ARDP的情况下,则相应IDD也是相应子系统104的相应DD。
在302,服务计算设备可以接收数据摄取请求。作为一个示例,如上文关于图1所讨论的,客户端设备可以请求将数据存储到存储池103。受益于本文公开的本领域技术人员将明白各种其它数据摄取请求源。
在303,服务计算设备可以确定是否为所有子系统104建立了期望的分布DD值并且没有期满。例如,子系统度量可以具有期满,诸如基于固定期满时间、基于一个或多个度量的百分比变化、基于新度量的接收等。在一些情况下,可以在诸如系统100内或外部的单独计算设备处维护度量。另外,期望分布DD值还可以具有期满,其在一些情况下可以与度量期满相关,或者在其它情况下可以是不相关的并且单独管理。另外,在一些示例中,可以仅响应于接收数据摄取请求来计算DD值。如果DD值已经被计算并且没有过期,则过程进行到304。如果DD值还没有被计算或过期,则过程转到图2执行框201。
在304,服务计算设备可以确定是否已经维护了所有子系统连接或者子系统的当前连接计数中没有一个是零。连接可以由服务计算设备102维护,例如基于分级的选择列表138的实际使用。例如,在确定期望分布之后,如果子系统104中的一个或多个不再具有任何连接,则所确定的分布可以是无效的。如果满足条件,则过程进行到308。如果不满足条件,则过程进行到306。
在306,如果子系统中的一个或多个不再被连接或者连接没有以其它方式被维护(例如,至少一个子系统具有零连接),则服务计算设备可以使用相应的期望分布DD作为权重来随机地布置子系统104的选择列表138的顺序。
在308处,如果所有子系统104具有至少一个已知连接,则服务计算设备可以通过将具有在选择列表138上最高CD之上最远的期望分布DD的子系统进行排序、将具有在选择列表138上最低CD之下最远的DD的子系统进行排序、以及基于其各自的DD与CD的各自距离,在其间相应地对其它子系统进行排序来布置子系统的选择列表的顺序。例如,当前分布CD可以计算为子系统上的100*开放连接/存储池中的开放连接。
在310,服务计算设备可以将具有超过最大容量使用阈值的容量使用的任何子系统移动到选择列表的底部。作为一个非限制性示例,假设最大容量阈值被填充90%。因此,具有超过90%的容量使用的任何子系统将被移动到选择列表138的底部,而不管该子系统的DD和CD之间的差异如何。
在312,服务计算设备可以使用选择列表138来将摄取的数据分发到相应的子系统104。例如,服务计算设备102可以基于选择列表138中每个子系统104的排名在一个或多个子系统104之间分发摄取的数据。例如,服务计算设备可以在选择列表中选择第一子系统。本文的计算不需要理解用于数据的数据保护级别(DPL)。例如,可以同时选择多于一个子系统以满足配置的DPL,例如在存储一个或多个冗余副本的情况下。过程200可以基于存储池103以间隔生成DD。在一些情况下,每个请求可以使用DD来生成选择列表138的排名。在摄取的数据被发送到选定的子系统104之后,过程可以返回到框302以等待接收到下一个数据摄取请求。
这里描述的示例过程仅是为了讨论目的而提供的过程的示例。根据本文的公开内容,许多其它变化对于本领域技术人员将是显而易见的。此外,虽然本文的公开阐述了用于执行过程的适当框架、体系结构和环境的几个示例,但是本文的实现不限于示出和讨论的特定示例。此外,如在附图中所描述和示出的,本公开提供了各种示例实现。然而,本公开不限于本文中所描述和示出的实现方式,而是可以扩展到本领域技术人员已知或已知的其它实现方式。
图4是示出根据一些实现的确定选择列表138的示例400的框图。在该示例中,假设第一子系统104(1)具有开放的10个连接,第二子系统104(2)具有开放的15个连接,第三子系统104(3)具有开放的5个连接,并且第四子系统104(4)具有开放的10个连接。因此,总共有40个开放连接。因此,第一子系统104(1)的电流分布CD为25%(即10/40);第二子系统104(2)的CD为37.5%(15/40);第三子系统104(3)的CD为12.5%(5/40);并且第四子系统104(4)的CD为25%(10/40)。此外,在该示例中,假设第一子系统104(1)的当前使用容量为90%,第二子系统104(2)的当前使用容量为50%,第三子系统104(3)的当前使用容量为11%,第四子系统104(4)的当前使用容量为10%。
在该示例中,假设子系统104(1)-104(4)都具有100MB/s的相等的附加性能空间,因此对于每个子系统104,初始期望分布IDD是25%(100MB/s/(4*100MB/S)。此外,第一子系统104(1)和第二子系统104(2)大于最小填充子系统104(4)之上2%的平衡阈值BT,因此可以为第一子系统104(1)和第二子系统104(2)计算RDP。在该示例中,假设偏斜乘数具有值1,即对应于平衡的性能和容量平衡。
对于第一子系统104(1),OOBP为90-10=80%失衡。由于偏斜乘数是1,所以RDP也是80%。两个最小填充子系统104(3)和104(4)彼此在2%容量内,因此被认为是平衡的,因此对于第一子系统104(1),ARDP为80%/2=40%。
对于第二子系统,OOBP为50-10=40%。RDP也等于40%,ARDP为40%/2或20%。
接下来,可以为每个子系统104(1)-104(4)确定期望分布DD。可以基于以下规则来确定DD:具有ARDP的任何子系统104(1)-104(4)对于每个最小填充子系统,应当将其IDD减少ARDP,并且将那些最小填充子系统增加该百分比。
对于第一子系统104(1):IDD=25%;RDP=80%;ARDP=40%;40%*25%=10%;因此,DD=25%-10%-10%=5%。
对于第二子系统104(2):IDD=25%;RDP=40%;ARDP=20%;20%*25%=5%;因此,DD=25%-5%-5%=15%。
对于第三子系统104(3):IDD=25%;因此,DD=25%+10%+5%=40%。
对于第四子系统104(4):IDD=25%;DD=25%+10%+5%=40%。
另外,如上所述,在该示例中,所有子系统104(1)-104(4)具有已知的连接,因此可以基于每个子系统104(1)-104(4)的DD和CD之间的差异来对选择列表138进行排序。
因此,第三子系统104(3)可以排名第一:DD-CD=40%-12.5%=27.5%短。
第四子系统104(4)可以排名第二;DD-CD=40%-25%=15%短。
第一子系统104(1)可以排名第三:DD-CD=5%-25%=-20%短(20%太多)。
第二子系统104(2)可以排名第四:DD-CD=15%-37.5%=-22.5%短(22.5%太多)。
然而,假设最大填充容量阈值被设置为90%。因此,由于第一子系统104(1)的容量为90%,因此选择列表138被重新布置以针对第三子系统104(3)、第四子系统104(4)、第二子系统104(2)和第一子系统104(1)的最终选择顺序将第一子系统104(1)移动到底部。
图5是示出根据一些实现的确定选择列表138的示例500的框图。在该示例中,假设第一子系统104(1)具有开放的10个连接,第二子系统104(2)具有开放的15个连接,第三子系统104(3)具有开放的5个连接,并且第四子系统104(4)具有开放的10个连接。因此,总共有40个开放连接。因此,第一子系统104(1)的CD为25%;第二子系统104(2)的CD为37.5%;第三子系统104(3)的CD为12.5%;并且第四子系统104(4)的CD为25%。此外,在该示例中,假设第一子系统104(1)的当前使用容量为90%,第二子系统104(2)的当前使用容量为50%,第三子系统104(3)的当前使用容量为11%,第四子系统104(4)的当前使用容量为10%。
在该示例中,假设子系统104(1)-104(4)具有变化的性能潜力。例如,假设第一子系统104(1)和第二子系统104(2)报告400MB/s的性能潜力,而第三子系统104(3)和第四子系统104(4)报告100MB/s的性能潜力。因此,对于第一子系统104(1)和第二子系统104(2),初始期望分布IDD是40%,即(400MB/s+400MB/s+100MB/s+100MB/s),对于第三子系统104(3)和第四子系统104(4),初始期望分布IDD是10%。
此外,第一子系统104(1)和第二子系统104(2)大于最小填充子系统104(4)之上2%的平衡阈值BT,因此可以为第一子系统104(1)和第二子系统104(2)计算RDP。在该示例中,假设偏斜乘数具有值1,即对应于平衡的性能和容量平衡。
对于第一子系统104(1),OOBP为90-10=80%失衡。由于偏斜乘数是1,所以RDP也是80%。两个最小填充子系统104(3)和104(4)彼此在2%容量内,因此被认为是平衡的,因此对于第一子系统104(1),ARDP为80%/2=40%。
对于第二子系统,OOBP为50-10=40%。RDP也等于40%,ARDP为40%/2或20%。
接下来,可以为每个子系统104(1)-104(4)确定期望分布DD。可以基于以下规则来确定DD:具有ARDP的任何子系统104(1)-104(4)对于每个最小填充子系统,应当将其IDD减少ARDP,并且将那些最小填充子系统增加该百分比。
对于第一子系统104(1):IDD=40%;RDP=80%;ARDP=40%;40%*40%=16%;因此,DD=40%-16%-16%=8%。
对于第二子系统104(2):IDD=40%;RDP=40%;ARDP=20%;20%*40%=8%;因此,DD=40%-8%-8%=24%。
对于第三子系统104(3):IDD=10%;因此,DD=10%+16%+8%=34%。
对于第四子系统104(4):IDD=10%;DD=10%+16%+8%=34%。
另外,如上所述,在该示例中,所有子系统104(1)-104(4)具有已知的连接,因此可以基于每个子系统104(1)-104(4)的DD和CD之间的差异来对选择列表138进行排序。
因此,第三子系统104(3)可以排名第一:DD-CD=34%-12.5%=21.5%短。
第四子系统104(4)可以排名第二;DD-CD=34%-25%=9%短。
第二子系统104(2)可以排名第三:DD-CD=24%-37.5%=-13.5%短(13.5%太多)。
第一子系统104(1)可以排名第四:DD-CD=8%-25%=-17%短(17%太多)。
另外,假设最大填充容量阈值被设置为90%。因此,由于第一子系统104(1)的容量为90%,所以第一子系统104(1)应该被放置在选择列表138的底部,然而,由于第一子系统104(1)已经被排序在底部,所以在该示例中不必重新排列选择列表138。
图6是示出根据一些实现的确定选择列表138的示例600的框图。在该示例中,假设第一子系统104(1)具有开放的10个连接,第二子系统104(2)具有开放的15个连接,第三子系统104(3)具有开放的5个连接,并且第四子系统104(4)具有开放的10个连接。因此,总共有40个开放连接。因此,第一子系统104(1)的电流分布CD为25%(即10/40);第二子系统104(2)的CD为5%(15/40);第三子系统104(3)的CD为12.5%(5/40);并且第四子系统104(4)的CD为25%(10/40)。此外,在该示例中,假设第一子系统104(1)的当前使用容量为90%,第二子系统104(2)的当前使用容量为50%,第三子系统104(3)的当前使用容量为11%,第四子系统104(4)的当前使用容量为10%。
在该示例中,假设子系统104(1)-104(4)具有变化的性能潜力。例如,假设第一子系统104(1)和第二子系统104(2)报告400MB/s的性能潜力,而第三子系统104(3)和第四子系统104(4)报告100MB/s的性能潜力。因此,对于第一子系统104(1)和第二子系统104(2),初始期望分布IDD是40%,即(400MB/s+400MB/s+100MB/s+100MB/s),对于第三子系统104(3)和第四子系统104(4),初始期望分布IDD是10%。
此外,第一子系统104(1)和第二子系统104(2)大于最小填充子系统104(4)之上2%的平衡阈值BT,因此可以为第一子系统104(1)和第二子系统104(2)计算RDP。在该示例中,假设偏斜乘数具有值0.9,即对应于优于容量平衡的有利性能。
对于第一子系统104(1),OOBP为90-10=80%失衡。由于偏斜乘数是0.9,所以RDP为0.9*80%=72%。两个最小填充子系统104(3)和104(4)彼此在2%容量内,因此被认为是平衡的,因此对于第一子系统104(1),ARDP为72%/2=36%。
对于第二子系统,OOBP为50-10=40%。RDP等于40%*0.9=36%,ARDP为36%/2或18%。
接下来,可以为每个子系统104(1)-104(4)确定期望分布DD。可以基于以下规则来确定DD:具有ARDP的任何子系统104(1)-104(4)对于每个最小填充子系统,应当将其IDD减少ARDP,并且将那些最小填充子系统增加该百分比。
对于第一子系统104(1):IDD=40%;RDP=72%;ARDP=36%;36%*40%=14.4%;因此,DD=40%-14.4%-14.4%=11.2%。
对于第二子系统104(2):IDD=40%;RDP=36%;ARDP=18%;18%*40%=7.2%;因此,DD=40%-7.2%--12%=25.6%。
对于第三子系统104(3):IDD=10%;因此,DD=10%+14.4%+7.2%=31.6%。
对于第四子系统104(4):IDD=10%;因此,DD=10%+14.4%+7.2%=31.6%。
另外,如上所述,在该示例中,所有子系统104(1)-104(4)具有已知的连接,因此可以基于每个子系统104(1)-104(4)的DD和CD之间的差异来对选择列表138进行排序。
因此,第三子系统104(3)可以排名第一:DD–CD=31.6%-12.5%=19.1%短。
第四子系统104(4)可以排名第二;DD-CD=31.6%-25%=6.6%短。
第二子系统104(2)可以排名第三:DD-CD=25.6%-37.5%=-11.9%短(11.9%太多)。
第一子系统104(1)可以排名第四:DD-CD=11.2%-25%=-13.8%短(13.8%太多)。
另外,假设最大填充容量阈值被设置为90%。因此,由于第一子系统104(1)的容量为90%,所以第一子系统104(1)应该被放置在选择列表138的底部,然而,由于第一子系统104(1)已经被排序在底部,所以在该示例中不必重新排列选择列表138。
图7示出了可以用于实现本文描述的系统的功能中的至少一些功能的服务计算设备102的选择示例组件。服务计算设备102可以包括一个或多个服务器或可以以任何数量的方式实现的其它类型的计算设备。例如,在服务器的情况下,程序、其它功能组件和数据可以在单个服务器、服务器集群、服务器群或数据中心、云托管计算服务等上实现,尽管可以附加地或替代地使用其它计算机体系结构。
多个服务计算设备102可以定位在一起或分开,并且例如被组织为虚拟服务器、服务器库和/或服务器群。所描述的功能可以由单个实体或企业的服务器提供,或者可以由多个不同实体或企业的服务器和/或服务提供。
在所示示例中,服务计算设备102包括或可以与其相关联的一个或多个处理器702、一个或多个计算机可读介质704和一个或多个通信接口706。每个处理器702可以是单个处理单元或多个处理单元,并且可以包括单个或多个计算单元或多个处理核。处理器702可以被实现为一个或多个中央处理单元、微处理器、微计算机、微控制器、数字信号处理器、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。作为一个示例,处理器702可以包括一个或多个硬件处理器和/或任何适当类型的逻辑电路,该硬件处理器和/或逻辑电路被特别编程或配置为执行本文描述的算法和过程。处理器702可以被配置为获取并执行存储在计算机可读介质704中的计算机可读指令,其可对处理器702编程以执行本文所述的功能。
计算机可读介质704可以包括易失性和非易失性存储器和/或以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何类型的技术实现的可移动和不可移动介质。例如,计算机可读介质704可以包括但不限于RAM、ROM、EEPROM、闪存或其它存储技术、光存储、固态存储、磁带、磁盘存储、RAID存储系统、存储阵列、网络附连存储、存储区域网络、云存储,或者可以用于存储期望信息并且可以由计算设备访问的任何其它介质。取决于(一个或多个)服务计算设备102的配置,计算机可读介质704可以是有形的非瞬态介质,其程度在于,当提到时,非瞬态计算机可读介质排除诸如能量、载波信号、电磁波和/或信号本身的介质。在一些情况下,计算机可读介质704可以位于与服务计算设备102相同的位置,而在其它示例中,计算机可读介质704可以部分地远离服务计算设备102。例如,在一些情况下,计算机可读介质704可以包括上文关于图1所讨论的子系统104中的存储的一部分。
计算机可读介质704可用于存储可由处理器702执行的任意数量的功能组件。在许多实施方式中,这些功能组件包括可由处理器702执行的指令或程序,并且当被执行时,这些指令或程序具体地对处理器702编程以执行本文中归因于服务计算设备102的动作。存储在计算机可读介质704中的功能组件可以包括客户端web应用116、管理web应用124和存储管理程序128,包括负载分布优化程序134,每个程序可以包括一个或多个计算机程序、应用、可执行代码或其部分。此外,虽然在该示例中一起示出了这些程序,但是在使用期间,这些程序中的部分或全部可以在单独的服务计算设备102上执行。
另外,计算机可读介质704可以存储用于执行本文描述的功能和服务的数据、数据结构和其它信息。例如,计算机可读介质704可以存储元数据数据库136、子系统度量132和选择列表138。此外,虽然在该示例中一起示出了这些数据结构,但是在使用期间,这些数据结构中的部分或全部可以存储在单独的服务计算设备102上。服务计算设备102还可以包括或维护其它功能组件和数据,其可以包括程序、驱动程序等,以及由功能组件使用或生成的数据。此外,服务计算设备102可以包括许多其它逻辑、编程和物理组件,上面描述的那些组件仅仅是与本文的讨论相关的示例。
一个或多个通信接口706可以包括用于实现例如通过一个或多个网络106和105与各种其它设备的通信的一个或多个软件和硬件组件。例如,通信接口706可以实现通过LAN、互联网、电缆网络、蜂窝网络、无线网络(例如Wi-Fi)和有线网络(例如光纤信道、光纤、以太网)、直接连接以及诸如等近距离通信中的一个或多个的通信,如本文其它地方另外列举的。
图8示出了根据一些实现的子系统104的示例配置的选择组件。子系统104可以包括一个或多个存储计算设备802,存储计算设备802可以包括一个或多个服务器或任何其它合适的计算设备,诸如上面关于服务计算设备102讨论的任何示例。存储计算设备802可各自包括一个或多个处理器804、一个或多个计算机可读介质806和一个或多个通信接口808。例如,处理器804可以对应于上文关于处理器702论述的示例中的任何一个,计算机可读介质806可以对应于上文关于计算机可读介质704论述的示例中的任何一个,并且通信接口808可以对应于上文关于通信接口706论述的示例中的任何一个。
另外,计算机可读介质806可以包括如上所述的存储程序140,作为由一个或多个处理器804执行的用于管理数据130在与子系统104相关联的存储器810上的存储的功能组件。存储器810可以包括与存储器150相关联的一个或多个控制器812,用于将数据130存储在存储设备816的一个或多个托盘、机架、盘区组或其它类型的阵列814上。例如,控制器152可以控制阵列814,例如用于配置阵列814,例如以擦除编码保护配置,或各种其它配置中的任何配置,例如RAID配置、JBOD配置等,和/或用于基于存储设备156向存储程序148呈现存储扩展区、逻辑单元等,以及用于管理存储在底层物理存储设备816上的数据130。存储设备816可以是任何类型的存储设备,诸如硬盘驱动器、固态驱动器、光驱动器、磁带、其组合等。
本文中描述的各种指令、方法和技术可在计算机可执行指令(例如存储在计算机可读介质上的计算机程序和应用)的一般上下文中考虑,并由本文中的处理器执行。通常,术语程序和应用可以互换地使用,并且可以包括用于执行特定任务或实现特定数据类型的指令、例程、模块、对象、组件、数据结构、可执行代码等。这些程序、应用等可以作为本地代码来执行,或者可以例如在虚拟机或其它即时编译执行环境中下载和执行。通常,程序和应用的功能可以根据需要在各种实现中组合或分布。这些程序、应用和技术的实现可以存储在计算机存储介质上或通过某种形式的通信介质传输。
虽然已经用针对结构特征和/或方法行为的语言对主题进行了描述,应当理解,所附权利要求中限定的主题不一定限于所描述的具体特征或行为。而是,具体特征和行为以实现权利要求的示例性方式被公开。
Claims (15)
1.一种系统,所述系统包括:
计算设备,所述计算设备被配置为将数据存储到存储池中的多个存储子系统,所述计算设备由可执行指令配置以执行以下操作:
由所述计算设备为每个存储子系统确定性能潜在量,所述性能潜在量表示所述存储子系统相对于所述存储子系统中的一个或多个其它存储子系统的相对性能;
由所述计算设备至少基于每个存储子系统的性能潜在量,来确定每个存储子系统的相应初始分布加权;
由所述计算设备针对具有大于阈值量的使用存储容量百分比的每个存储子系统,来确定一个或多个量,所述阈值量大于由具有最低使用存储容量百分比的存储子系统使用的存储容量百分比,通过所述一个或多个量来调整所述初始分布加权以确定每个存储子系统的相应期望分布加权;
由所述计算设备接收用于存储到所述存储池的数据;以及
至少基于为所述存储子系统确定的相应期望分布加权,来选择所述存储子系统中的一个或多个以接收数据。
2.根据权利要求1所述的系统,所述操作还包括:
确定到所述多个存储子系统的开放连接的数目;
基于到每个存储子系统的开放连接的数目,来确定每个存储子系统的当前分布;
至少基于每个存储子系统的相应期望分布加权与所述存储子系统的当前分布之间的差,来确定所述多个存储子系统的排序。
3.根据权利要求2所述的系统,所述操作还包括:
确定由所述存储子系统中的第一存储子系统使用的存储容量的百分比超过所使用的存储容量的阈值最大值;以及
基于所使用的存储容量的百分比超过阈值最大值,来确定所述第一存储子系统的排序。
4.根据权利要求1所述的系统,所述操作还包括:周期性地从相应存储子系统接收每个相应存储子系统的性能潜在量的相应指示。
5.根据权利要求1所述的系统,其中,针对具有大于阈值量的使用存储容量百分比的每个存储子系统,来确定一个或多个量,所述阈值量大于由具有最低使用存储容量百分比的存储子系统使用的存储容量百分比,通过所述一个或多个量来调整所述初始分布加权,还包括以下操作:
对于使用的存储容量百分比大于所述阈值量的每个存储子系统,确定失衡百分比,其中,所述失衡百分比是所使用的存储容量的百分比与所使用的存储容量的最低百分比的存储子系统所使用的存储容量的百分比之间的差。
6.根据权利要求5所述的系统,所述操作还包括:
对于具有大于所述阈值量的所使用存储容量百分比的每个存储子系统,基于将所述失衡百分比乘以偏斜乘数来确定重新分配百分比。
7.根据权利要求6所述的系统,其中,具有值小于1的偏斜乘数提高了系统性能,并且具有值大于1的偏斜乘数提高了系统容量平衡。
8.根据权利要求6所述的系统,所述操作还包括:对于具有大于所述阈值量的所述使用存储容量百分比的每个存储子系统,基于将所述重新分配百分比除以具有在所述使用存储容量百分比最低的存储子系统所使用存储容量的阈值量内使用的存储容量的多个存储子系统,来确定经调整的重新分配百分比。
9.根据权利要求8所述的系统,所述操作还包括:
通过将调整后的再分配百分比乘以相应存储子系统的初始分布加权以获得第一值,来确定具有调整后的再分配百分比的每个存储子系统的相应期望分布加权;以及
从相应存储子系统的初始分布加权中减去n次相应第一值,以确定具有经调整的再分配百分比的相应存储子系统的相应期望分布加权,其中,n是不具有经调整的再分配百分比的子系统的数目。
10.根据权利要求9所述的系统,所述操作还包括:通过将从不具有经调整的再分配百分比的每个存储子系统的初始分布加权中为具有经调整的再分配百分比的每个存储子系统确定的相应第一值相加,来确定不具有经调整的再分配百分比的相应存储子系统的相应期望分布加权,从而确定不具有经调整的再分配百分比的相应存储子系统的相应期望分布加权。
11.根据权利要求1所述的系统,其中,至少一个存储子系统具有与其它存储子系统不同的性能或存储容量。
12.一种方法,所述方法包括以下步骤:
由计算设备为存储池中的多个存储子系统中的每个存储子系统确定性能潜在量,所述性能潜在量表示所述存储子系统相对于所述存储子系统中的一个或多个其它存储子系统的相对性能;
由所述计算设备至少基于每个存储子系统的性能潜在量,来确定每个存储子系统的相应初始分布加权;
由所述计算设备针对具有大于阈值量的使用存储容量百分比的每个存储子系统,来确定一个或多个量,所述阈值量大于由具有最低使用存储容量百分比的存储子系统使用的存储容量百分比,通过所述一个或多个量来调整所述初始分布加权以确定每个存储子系统的相应期望分布加权;
由所述计算设备接收用于存储到所述存储池的数据;以及
至少基于为所述存储子系统确定的相应期望分布加权来选择所述存储子系统中的一个以接收数据。
13.根据权利要求12所述的方法,所述方法还包括:
确定到所述多个存储子系统的开放连接的数目;
基于到每个存储子系统的开放连接的数目,来确定每个存储子系统的当前分布;以及
至少基于每个存储子系统的相应期望分布加权与所述存储子系统的当前分布之间的差,来确定所述多个存储子系统的排序。
14.一个或多个非暂时性计算机可读介质,其存储指令,当由计算设备的一个或多个处理器执行时,所述指令将所述计算设备配置为执行以下操作:
由所述计算设备为存储池中的多个存储子系统中的每个存储子系统确定性能潜在量,所述性能潜在量表示所述存储子系统相对于所述存储子系统中的一个或多个其它存储子系统的相对性能;
由所述计算设备至少基于每个存储子系统的性能潜在量,来确定每个存储子系统的相应初始分布加权;
由所述计算设备针对具有大于阈值量的使用存储容量百分比的每个存储子系统,来确定一个或多个量,所述阈值量大于由具有最低使用存储容量百分比的存储子系统使用的存储容量百分比,通过所述一个或多个量来调整所述初始分布加权以确定每个存储子系统的相应期望分布加权;
由所述计算设备接收用于存储到所述存储池的数据;以及
至少基于为所述存储子系统确定的相应期望分布加权,来选择所述存储子系统中的一个以接收数据。
15.根据权利要求14所述的一个或多个非暂时性计算机可读介质,所述操作还包括:
确定到所述多个存储子系统的开放连接的数目;
基于到每个存储子系统的开放连接的数目,来确定每个存储子系统的当前分布;以及
至少基于每个存储子系统的相应期望分布加权与所述存储子系统的当前分布之间的差,来确定所述多个存储子系统的排序。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/021669 WO2021183097A1 (en) | 2020-03-09 | 2020-03-09 | Capacity and performance optimization in non-homogeneous storage |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115244518A true CN115244518A (zh) | 2022-10-25 |
Family
ID=77670748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080098117.1A Pending CN115244518A (zh) | 2020-03-09 | 2020-03-09 | 非均匀存储的容量和性能优化 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4118533A4 (zh) |
JP (1) | JP2023516749A (zh) |
CN (1) | CN115244518A (zh) |
WO (1) | WO2021183097A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6311251B1 (en) * | 1998-11-23 | 2001-10-30 | Storage Technology Corporation | System for optimizing data storage in a RAID system |
US6928459B1 (en) * | 2000-07-18 | 2005-08-09 | International Business Machines Corporation | Plurality of file systems using weighted allocation to allocate space on one or more storage devices |
US7146389B2 (en) * | 2002-08-30 | 2006-12-05 | Hitachi, Ltd. | Method for rebalancing free disk space among network storages virtualized into a single file system view |
US7849180B2 (en) * | 2008-04-29 | 2010-12-07 | Network Appliance, Inc. | Load balanced storage provisioning |
US8356147B2 (en) * | 2010-08-20 | 2013-01-15 | Hitachi, Ltd. | Tiered storage pool management and control for loosely coupled multiple storage environment |
KR101483127B1 (ko) * | 2011-03-31 | 2015-01-22 | 주식회사 케이티 | 클라우드 스토리지 시스템에서 리소스를 고려한 자료분배방법 및 장치 |
US9727578B2 (en) * | 2012-09-28 | 2017-08-08 | International Business Machines Corporation | Coordinated access to a file system's shared storage using dynamic creation of file access layout |
-
2020
- 2020-03-09 CN CN202080098117.1A patent/CN115244518A/zh active Pending
- 2020-03-09 JP JP2022553201A patent/JP2023516749A/ja active Pending
- 2020-03-09 EP EP20924781.6A patent/EP4118533A4/en active Pending
- 2020-03-09 WO PCT/US2020/021669 patent/WO2021183097A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
US20230333760A1 (en) | 2023-10-19 |
EP4118533A4 (en) | 2023-10-11 |
JP2023516749A (ja) | 2023-04-20 |
WO2021183097A1 (en) | 2021-09-16 |
EP4118533A1 (en) | 2023-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10268726B1 (en) | Partition key management for improved throughput | |
US10078533B2 (en) | Coordinated admission control for network-accessible block storage | |
US10534542B2 (en) | Dynamic core allocation for consistent performance in a non-preemptive scheduling environment | |
US11847098B2 (en) | Metadata control in a load-balanced distributed storage system | |
US10356150B1 (en) | Automated repartitioning of streaming data | |
AU2016229135A1 (en) | Opportunistic resource migration to optimize resource placement | |
US10250673B1 (en) | Storage workload management using redirected messages | |
US10810054B1 (en) | Capacity balancing for data storage system | |
US11150944B2 (en) | Balancing mechanisms in ordered lists of dispatch queues in a computational device | |
US10425470B1 (en) | Shadowed throughput provisioning | |
US10616134B1 (en) | Prioritizing resource hosts for resource placement | |
Nannai John et al. | A novel dynamic data replication strategy to improve access efficiency of cloud storage | |
Hsieh et al. | The incremental load balance cloud algorithm by using dynamic data deployment | |
CN109815204A (zh) | 一种基于拥塞感知的元数据请求分发方法及设备 | |
WO2016065198A1 (en) | High performance hadoop with new generation instances | |
US11003360B2 (en) | IO request processing according to processing sorting indexes | |
US11080092B1 (en) | Correlated volume placement in a distributed block storage service | |
CN115244518A (zh) | 非均匀存储的容量和性能优化 | |
US12014061B2 (en) | Capacity and performance optimization in non-homogeneous storage | |
Kang et al. | An efficient scheme to ensure data availability for a cloud service provider | |
US20230137673A1 (en) | Systems and methods for dynamically scaling remote resources | |
US11256440B2 (en) | Method and distributed storage system for aggregating statistics | |
CN108628551A (zh) | 一种数据处理方法及装置 | |
CN105827737A (zh) | 调度方法及系统 | |
CN112748850A (zh) | 用于存储管理的方法、设备和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |