CN107422983B - 用于租户感知存储共享平台的方法和装置 - Google Patents
用于租户感知存储共享平台的方法和装置 Download PDFInfo
- Publication number
- CN107422983B CN107422983B CN201710244674.XA CN201710244674A CN107422983B CN 107422983 B CN107422983 B CN 107422983B CN 201710244674 A CN201710244674 A CN 201710244674A CN 107422983 B CN107422983 B CN 107422983B
- Authority
- CN
- China
- Prior art keywords
- storage
- application
- subset
- storage devices
- available
- 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.)
- Active
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of 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/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/065—Replication 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/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于租户感知存储共享平台的方法和设备。描述了一种租户感知存储共享引擎(TASTE)。TASTE可包括用于关于在数据中心的可用存储装置的集合的信息的存储器。接收逻辑(505)可从租户接收存储装置需求。选择逻辑然后可选择满足租户的存储装置需求(415)的可用存储装置的子集。
Description
本申请要求于2016年5月24日提交的序列号为62/341,063的美国临时专利申请的权益,此申请针对所有目的通过引用合并与此。
本申请涉及于2016年7月28日提交的序列号为15/222,938的美国专利申请,其要求于2016年5月24日提交的序列号为62/341,057的美国临时专利申请的权益,此两个申请针对所有目的通过引用合并于此。
本申请涉及于2016年8月1日提交的序列号为15/225,811的美国专利申请,其要求于2016年5月24日提交的序列号为62/341,059的美国临时专利申请的权益,此两个申请针对所有目通过引用合并与此。
本申请涉及于2016年6月20日提交的序列号为62/352,509的美国临时专利申请,此申请针对所有目的通过引用合并于此。
技术领域
本发明构思总体涉及固态驱动器(SSD),更具体地,涉及响应于应用需求管理数据中心中的SSD。
背景技术
存储装置,特别是固态驱动器(SSD),随着时间的推移呈现不断变化的特性。由于SSD内部的底层软件(即,固件)和/或硬件,SSD可能具有不可预测的延迟和/或带宽。由于磨损均衡导致的延长的访问延迟(读/编程/擦除)也可能影响延迟和/或带宽。虚拟的抽象-也就是说,不同的方法(诸如多态SSD、开放通道SSD和lightNVM(支持开放通道SSD的子系统)(仅举几例))使得难以预测SSD的性能特性。最后,不同的单元密度(诸如单级单元(SLC)、多级单元(MLC)、三级单元(TLC)和四级单元(QLC)(仅举几例))导致极其不同的特性。
数据中心需要一种对应用程序和存储装置进行映射的机制。存储装置具有许多可随时间改变的特性,因此应当被监控。另一方面,应用也可能具有不同的需求,诸如冗余度、并行度、持久性、安全性、闪存转换层(FTL)参数(簇大小、页面大小等)等。但是常规存储管理要么使用卷管理要么使用独立磁盘冗余阵列(RAID)类的办法,这些方法不感知最新的存储装置(诸如,SSD)的性能特性或应用(例如,大数据分析分布式文件系统(HDFS)或键值存储)的需求。
仍然需要一种响应于应用的需求选择用于存储所述应用的数据的存储装置的方式。
附图说明
图1示出具有各种主机的与客户机进行通信的数据中心。
图2示出根据本发明构思的实施例的图1的主机的细节。
图3示出图1的主机的附加细节。
图4示出图2的接收应用的需求并据此调整存储阵列的租户感知存储共享引擎(TASTE)。
图5示出图2的TASTE的细节。
图6示出图5的选择逻辑的细节。
图7示出图4的存储装置阵列的示例。
图8示出在图7的存储装置阵列内建立的虚拟存储装置。
图9示出图7的存储装置阵列中被分配以满足各种应用的需求的各种簇和存储装置页面大小。
图10示出图7的存储装置阵列中的存储装置之间的复制。
图11示出图7的存储装置阵列中的存储装置之间的数据的迁移。
图12示出根据本发明构思的实施例的用于图2的TASTE接收应用的存储需求并相应地调整图4的存储装置阵列的的示例过程的流程图。
图13A至图13C示出根据本发明构思的实施例的用于图2的TASTE响应于接收到的应用的需求对图4的存储装置阵列进行配置的示例过程的流程图。
具体实施方式
现在将详细参照本发明构思的实施例,其中,本发明构思的示例在附图中示出。在以下详细描述中,阐述了许多具体细节以使得能够透彻理解本发明构思。然而,应当理解,本领域的普通技术人员可在没有这些具体细节的情况下实践本发明的构思。在其它实例中,没有详细描述公知的方法、过程、组件、电路和网络,以免不必要地模糊实施例的多个方面。
将理解,虽然术语第一、第二等可以在这里用于描述各种元件,但是这些元件不应该受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开。例如,在不脱离本发明构思的范围的情况下,第一模块可被称为第二模块,并且类似地,第二模块可被称为第一模块。
在本发明构思的描述中使用的术语仅用于描述特定实施例的目的,而不意于限制本发明构思。如在本发明构思和所附权利需求的描述中所使用的,除非上下文另有明确说明,否则单数形式也意于包括复数形式。还将理解,如本文所使用的术语“和/或”是指并且包括相关联的所列项目中的一个或更多个的任意和所有可能的组合。还将理解,当术语“包括”和/或“包括......的”在本说明书中使用时,指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或更多个其它特征、整数、步骤、操作、元件,组件和/或其组合的存在或添加。附图的组件和特征不必要按比例被绘制。
大规模数据中心存储基础设施系统可受益于预测任何一对存储器之间(或主机和存储装置之间)或存储装置的任何集合/簇之间的延迟和带宽的能力。存储装置之间的最大延迟或最小带宽在选择或建立一个或更多个虚拟存储装置以支持应用的过程中可能是重要的。此外,对更多性能信息的需求不断增长,这是因为大规模数据中心试图管理和决定存储器的许多不同方面,包括并行度、复制、隔离等。这种预测器不应基于按需或每对测量,因为这样的方法没有规模。
不幸的是,基于规范或分析的现有存储建模可能不满足这样的需求。这是因为基于固态驱动器(SSD)的存储器通常由于老化/磨损和隐藏特性(诸如,闪存转换层(FTL))而表现出多样化的延迟/带宽和时变特性,尽管存储装置本身具有相同的制造商甚至实际年龄也是如此。
预测存储距离(也就是说,与数据中心内的一对存储装置之间的距离有关的性能特性)的另一个障碍是成对预测需要太多的测量(考虑全交换连接)。
为了所有目的通过引用合并与此的于2016年7月28日提交的序列号为15/222,938的美国专利申请和于2016年8月1日提交的序列号为15/225,811的美国专利申请二者提供了这些问题的部分解决方案。但存在其它供考虑的办法。
基于闪存的存储系统具有不对称的性能特性。也就是说,读取需要5-25微秒(μs),但是写入需要100-200μs,且擦除闪存块可能需要几毫秒(ms)。此外,通常闪存单元可以承受的编程/擦除周期的数量是有限的。因此,可以利用磨损均衡(并且将其视为性能特性)。此外,垃圾收集花费大量的周期,其中,在所述周期期间所有输入/输出(I/O)操作可能被阻止。
此外,考虑到应用的各种需求和特性,诸如嵌入式闪存转换层(FTL)或每个FTL物理装置的传统方法可能是不经济的。两个代表性示例是大数据分析分布式文件系统(HDFS)和键值(KV)存储。HDFS通常使用大块大小(在许多情况下为64兆字节(MB)),而KV存储使用小块大小(例如,用于Facebook工作负载的100字节(B)数据)。在这种情况下,KV存储的FTL开销(数据结构内存占用和PBA映射)可能是HDFS的FTL开销的640000倍。换句话说,从内存占用的角度来看,假设相同的映射方案,一个KV存储存储装置的FTL可处理640000个HDFS存储装置的FTL。这将有助于产生可映射到具有不同能力的FTL的存储器的簇,以使效率最优并消除隐藏的FTL延迟。
存储距离图/树可使拓扑图/树与每个存储性能结合。该方法利用了与存储性能的变化/改变相比拓扑很少改变的事实。特别地,在服务级别目标(SLO)中应避免FTL的不可预测的延迟。
新的租户感知存储共享引擎(TASTE)可采取多个输入。对TASTE的一个输入可来自具有嵌入信息(诸如,延迟、带宽、拓扑、存储器之间的距离等)的存储资源信息。对TASTE的第二输入可以是租户的(应用的)的规范以及应用的需求。TASTE可提供一个簇(存储器的集合)来满足应用的需求。此外,TASTE可提供具有FTL映射以及FTL页面大小和持久性的子簇。另外,TASTE还可实现给定应用的部分需求,诸如冗余、并行度和安全性。最后,TASTE可为动态池提供控制。例如,可支持数据迁移以用于负载平衡、容量供应等。
FTL簇映射
TASTE可感知存储资源池。例如,TASTE可区分高性能存储装置和低性能存储装置以及存储器之间的接近度(本地还是远程,以及距离)。例如,假设两个租户(应用)现在请求分别用于HDFS和KV-Store的存储器。
如我们前面讨论的,HDFS的FTL可能是一个相对较小的占用映射,这是因为其较大的页面间隔。因此,可将多个存储装置(不论是虚拟的还是物理的)聚集以形成另一虚拟存储装置,其中,该虚拟存储装置实际上带来了它自己的具有逻辑块地址(LBA)接口的FTL。
不像HDFS,KV存储服务不仅需要更高性能的存储器,而且FTL的占用远大于HDFS的FTL占用。因此,TASTE可分配更少但更高性能的存储装置以形成用于KV存储使用的FTL簇。
FTL页面大小
对于示例比较,HDFS可能在它的集群中有64MB页面。但是KV存储可根据KV对布局具有不同的页面大小,例如100B、32千字节(KB)和2MB。
复制因子
TASTE还可从资源管理的角度提供一定程度的复制。例如,簇中的每一个存储装置可被其他存储装置镜像。所述FTL层可控制数据复制。
应用可具有节点间和机架间(inter-rack)复制需求二者(也就是说,数据需要被复制到不同存储装置和不同节点中的存储装置中,以防止由于节点故障或同一节点或同一机架的电力故障而导致的数据丢失)。这样的上下文也应该为资源管理者所知。TASTE可提供应用程序接口(API)来交换这样的需求,使得TASTE能够在节点内提供复制。因此,例如,HDFS可免于一个复制因子,并且仅当目标复制因子为三时才需要关注机架间复制。可选地或附加地,TASTE可管理机架间复制以及机架内复制。
并行度
一些租户可能同时对延迟和带宽敏感,但没有单个可用的物理存储装置可以提供足够的性能来满足他们的需求。在这种情况下,TASTE可产生满足应用的需求的新的虚拟存储装置。所述新的虚拟存储装置可呈现更高的总计带宽,同时减少大容量I/O中的延迟,这可减少队列延迟。
动态资源池控制
如前所述,由于性能特性随时间、容量供应、负载平衡等的变化,存储池可能需要被更新。迁移是解决动态池控制的一种方法。TASTE可迁移数据,而不管用于存储所述数据的存储装置的类型(物理的、虚拟的、FTL簇的一部分、整个FTL簇等)。迁移是可能的,这是因为TASTE知道它的底层存储类型和FTL实施。
图1示出具有各种主机的与客户机进行通信的数据中心。在图1中,数据中心105被示为包括主机110、115、120、125和130。下面参照图2至图3示出关于主机110、115、120、125和130的更多细节。数据中心105还可以包括允许主机110、115、120、125和130彼此通信以及与客户机140进行通信的网络135。网络135可以是任何种类的网络,包括局域网(LAN)或广域网(WAN)。网络130可以使用有线技术(诸如,以太网)、无线技术(诸如,IEEE 802.11a/b/g/n/ac中的任一个或者等同或替换技术)或以上两者的组合。另外,尽管图1示出主机110、115、120、125和130位于单个地理区域内,但是在本发明构思的其它实施例中,主机110、115、120、125和130可在地理上分散并使用诸如因特网(可以使用覆盖网络,诸如,虚拟专用网络(VPN))的全球网络互相连接。
主机110可支持应用145。应用145可以是由客户机140经由安全外壳(SSH)、web接口或应用程序接口(API)使用的应用。
尽管图1示出主机110、115、120、125和130完全相同且都是塔式计算机,但是本发明构思的实施例可支持用于主机110、115、120、125和130的任何想要的格式,这些格式可以全部是不同的。例如,一些主机110、115、120、125和130可以是各种型号和制造商的塔式计算机,而其它主机110、115、120、125和130可以是各种型号和制造商的机架安装式服务器。不同的主机110、115、120、125和130在处理器能力、可用内存和可用存储方面可具有不同的能力,所有这些都可以是不同的格式。例如,一些主机110、115、120、125和130可为成员使用动态随机存取存储器(DRAM),而其它主机可使用持久随机存取存储器(PRAM)、静态随机存取存储器(SRAM)、铁电随机存取存储器(FRAM)或非易失性随机存取存储器(NVRAM),诸如磁阻随机存取存储器(MRAM)。类似地,一些主机110、115、120、125和130可使用用于存储的常规硬盘驱动器,而其它主机可使用闪存(NVRAM的一种)或MRAM。其它可能性(无论是否在此列举)也在本发明构思的范围内。
如上所述,主机110、115、120、125和130本质上都是等同的和可互换的。因此,在本文的剩余部分中对主机110的任何引用意于包括主机110、115、120、125和130中的任一个和全部,但不限于此。
尽管图1示出客户机140为具有监视器、键盘和鼠标的常规小型塔式计算机系统,但是客户机140可采取任何想要的形式,包括膝上型计算机、平板计算机、智能手机和任何其它想要的技术形式。另外,尽管图1示出了单个客户机140,但是本发明构思的实施例可同时支持任意数量的客户机140。
图2示出根据本发明构思的实施例的图1的主机110的细节。在图2中,主机110被示为包括处理器205(也称为中央处理器(CPU))、存储器210、网络连接器215和存储装置220。处理器205可以是任何种类的处理器:例如,Intel Xeon、Celeron、Itanium或Atom处理器、AMD Opteron处理器、ARM处理器等。如上所述,存储器210可以是任何种类的存储器,诸如,闪存、SRAM、PRAM等,但通常是DRAM。网络连接器215可以是可将主机110连接到图1的网络135的任何种类的连接器:例如,以太网接口或无线接口。存储装置220可以是可由数据中心使用的任何种类的存储装置。虽然固态驱动器(SSD)是用于存储装置220的一种可能性,但是存储装置220还可包括其它存储形式,诸如硬盘驱动器或其它长期存储装置。
主机110还可包括租户感知存储共享引擎(TASTE)225。TASTE 225可使用关于租户(即,应用)(诸如租户145和230)的需求的信息,并且可管理存储装置阵列的操作。尽管图2示出租户145和230被主机110托管,但是本发明构思的实施例可支持由除主机110之外的机器托管的租户:也就是说,TASTE 225可管理用于远程应用以及本地应用的存储装置阵列。
图3示出图1的主机110的附加细节。参照图3,通常,主机110包括可包括存储器控制器305和时钟310的一个或更多个处理器205,其中,控制器305和时钟310可用于协调主机110的组件的操作。处理器205还可被结合到存储器210,其中,作为示例,存储器210可包括随机存取存储器(RAM)、只读存储器(ROM)或其它状态保存介质。处理器205还可被结合到存储装置220和网络连接器315,其中,网络连接器315可以是例如以太网连接器或无线连接器。处理器205还可被连接到总线320,其中,在其它组件之中,用户接口325和可使用输入/输出引擎330管理的输入/输出接口端口可被附接到总线320。
图4示出图2的接收应用的需求并据此调整存储阵列的租户感知存储共享引擎(TASTE)225。在图4中,TASTE 225可接收存储资源信息405和租户需求415,其中,存储资源信息405可以是关于存储装置阵列410中的存储装置的信息。使用该信息,TASTE 225可配置存储装置阵列410来解决图2的租户145和230可能具有的任意数量的需求。这样的需求可包括以下项(用稍后的附图中提供的示例以说明这些需求如何可由图2的TASTE 225来满足):
·带宽420:图2的租户145和230所需的最小带宽。给定来自图2的租户145和230的最小带宽需求,TASTE 225可从存储装置阵列410中选择提供所请求的最小带宽420的存储装置。
·延迟425:图2的租户145和230所容忍的最大延迟。给定来自图2的租户145和230的最大延迟需求,TASTE 225可从存储装置阵列410中选择提供所请求的最大延迟425的存储装置。
·簇大小430:应当分配多少个单独的存储装置来支持图2的租户145和230。给定请求的簇大小,TASTE 225可选择足够的存储装置以提供所请求的簇大小430。
·页面大小435:被分配以支持图2的租户145和230的每一个存储装置的页面大小应该是多大。给定请求的页面大小(或多个请求的页面大小,这是因为租户145或230可能请求用于簇中的不同存储装置的不同的页面大小),TASTE 225可配置簇中的各种存储装置以使用请求的页面大小435。
·冗余440(其也可以称为复制因子):对于图2的租户145和230,每一个数据的多少副本应当被存储在存储装置阵列410内。给定请求的冗余,TASTE 225可选择足够的存储装置来提供所需的冗余440。
注意,冗余440和簇大小430是不同的(即使相关)概念。如果图2的租户145和230指定簇大小430为三,则它们仅请求在簇中包括三个存储装置。如果图2的租户145和230指定冗余440为三,则它们请求每个数据被存储在三个不同的存储装置上。因此,用于图2的租户145和230的簇大小将需要至少是三(因为必须存在至少三个不同的存储装置来存储每一个数据的三个副本),但是簇大小可以更大。理解簇大小430和冗余440之间的差异的另一种方式是通过比较独立磁盘的冗余阵列(RAID)0级和1级之间的差异。RAID 0提供更大的总存储容量(等于单个磁盘的容量之和),但对任何单个磁盘的故障没有冗余。另一方面,RAID 1针对n个磁盘的阵列中多达n-1个磁盘的防止故障的可能性,但是提供等于所述单个存储磁盘的容量的最小值的容量。
·并行度445:对存储装置进行组合以向图2的租户145和230提供想要的服务程度。可能发生这样的情况:图2的租户145和230可能需要比可由存储装置阵列410中的任何单个的存储装置提供的更大的带宽和/或更小的延迟。在这种情况下,给定请求的并行度,TASTE 225可选择存储装置以提供所需的并行度445。这些被选择的存储装置然后可被组合成提供期望的带宽和/或延迟的虚拟存储装置。
注意,虽然并行度445与带宽420以及延迟425具有一些重复,但是存在差异。例如,如果图2的租户145和230指定带宽420和/或延迟425的需求,但是存储装置阵列410内没有单独的存储装置可提供所需的带宽420和/或延迟425,则TASTE 225可在没有试图调用并行度的情况下返回未能满足所述需求。图2的租户145和230然后可决定它们是否将愿意用较小的需求来满足或者他们是否还想建立并行度445的需求。(当然,如果存储装置阵列410中没有单个的存储装置可满足带宽420和/或延迟425的需求,则如果需要,TASTE 225可自动应用附加的并行度445的需求)。
·持久性450:用于图2的租户145和230的数据在被擦除之前应当在存储装置上保留多久,或者数据在电力故障后仍然存在(或两者)。图2的租户145和230可能希望它们的数据在它们的存储装置上保留某个最小时间量,并且不会由于老化而被擦除(即,正因为它已经被存储了某个最小时间量,所以它们的数据不应该被删除)。TASTE 225可在存储装置阵列410中配置支持图2的租户145和230的存储装置以将数据保留指定时间量。例如,对于偶尔访问的数据,使用键值存储的应用可能希望保证数据不会过快失效。TASTE 225可选择在指定时间长度内将不使数据无效的存储装置,其中,在所述指定时间长度之后所述数据可能经受无效/垃圾收集。
可选地,图2的租户145和230可能希望确保数据可在电力故障后生存。使用非易失性存储器(其在电力被关闭时可保留数据)可以是解决方案的一部分。但持久性也可能需要尽管电力故障也能确保数据被确认为写入存储装置的能力。例如,存储装置可将数据存储在DRAM中的缓冲器中,并且当存在要被写入的预定量的数据时,仅将所述数据写入存储器。如果在缓冲的数据被写入长期存储器之前发生电力故障,则缓冲器中的数据将丢失。为了解决这个问题,请求持久性的应用可将所述应用映射到保证持久性的FTL和物理装置,诸如具有嵌入式的高容量电容器的SSD,其中,该SSD即使在突然的电力损失时也防止数据丢失。
·安全性455(其也可以被称为隔离):一个特定租户的数据应该被存储在存储装置阵列410中的不同于一个或更多个其他租户的不同存储装置上。例如,图2的租户145可指定它的数据不应被存储在与图2的租户230的数据相同的存储装置上。TASTE 225可在存储装置阵列410中选择将图2的租户145的数据与一个或更多个其他指定的租户隔离的存储装置。
·迁移460:应当将用于租户的数据从存储装置阵列410内的一个存储装置移动到另一个存储装置。图2的租户145和230可请求将数据从存储装置阵列410中的一个存储装置迁移到另一个存储装置。或者,TASTE 225可出于其它原因(诸如,容量分配或负载平衡)决定迁移用于图2的租户145和230的数据。无论哪种方式,TASTE 225可进行管理以将数据从存储装置阵列410内的一个存储装置迁移到另一个存储装置。
除了图4中所示的之外,还可存在其它需求415。例如,图2的租户145和230可指定将特定的存储量(假设,2吉字节(GB))分配给它们中的每一个。本发明构思的实施例可支持任何需求415,无论是否在图4中被明确地示出。
图5示出图2的TASTE 225的细节。在图5中,TASTE 225可包括接收逻辑505、存储器510、选择逻辑515、虚拟存储装置逻辑520和转换层逻辑525。接收逻辑505可从各种源(诸如,图4的租户145和230)接收信息,诸如图4的存储资源信息405和/或图4的租户需求415。存储器510可存储关于图4的存储装置阵列410中的存储装置的信息:哪些存储装置在哪些节点、什么类型的存储装置可用、它们的大小、带宽和延迟等。注意,被认为“可用”的存储装置可以改变。例如,假定图2的租户145请求与图2的租户230隔离。如果图2的租户230随后请求存储装置的簇,则分配给图2的租户145的任何存储装置不应被认为可用于为图2的租户230选择簇的目的。
选择逻辑515可为租户从图4的存储装置阵列410中选择存储装置以满足图4的需求415。虚拟存储装置逻辑520可从图4的存储装置阵列410中的一个或更多个物理存储装置“构造”虚拟存储装置。例如,如果图4的租户需求415指定图4的并行度445,则虚拟存储装置逻辑520可在没有物理存储装置可以满足所需带宽和/或延迟的地方“构造”提供这些需求的虚拟存储装置。
转换层逻辑525可建立将与用于满足租户需求的物理和/或虚拟存储装置一起使用的转换层。转换层逻辑525做什么可以取决于租户需求是什么。在本发明构思的一个实施例中,如果租户需求包括簇大小,则转换层逻辑525可建立转换层以按照簇大小跨存储装置将逻辑地址映射到物理地址。可选地,如果创建虚拟存储装置供租户使用,则转换层逻辑525除了将来自所述虚拟存储装置的地址映射到建立所述虚拟存储装置的各个物理存储装置之外,还可以建立转换层以对租户表现为单个存储装置。在本发明构思的另一实施例中,如果租户需求包括一个或更多个页面尺寸,则转换层逻辑525可建立转换层以根据指定的页面大小中的一个将各种存储装置划分为多个页面。在本发明构思的另一实施例中,如果租户需求包括复制因子,则转换层逻辑525可建立转换层以将单个逻辑地址映射到各种物理存储装置上的多个物理地址,以支持跨物理存储装置的复制。如上所述,物理存储装置可以在单个节点内或跨多个节点。在本发明构思的另一实施例中,如果租户需求包括持久性需求,则转换层逻辑525可建立跟踪存储在物理存储装置上的单个数据一直没变多久的转换层,并且可仅在阈值时间量过去之后标记用于无效的数据。此外,本发明构思的实施例可使转换层逻辑525建立支持多个这样的租户需求的转换层。
图6示出图5的选择逻辑515的细节。在图6中,选择逻辑515可包括簇选择逻辑605、配置逻辑610、复制逻辑615、持久性逻辑620、隔离逻辑625和迁移逻辑630。簇选择逻辑605可从存储装置阵列410中选择存储装置的簇以满足图4的簇大小430。配置逻辑610可配置存储装置阵列410中的一个或更多个存储装置来使用图4的页面大小435。复制逻辑615可管理跨数据中心105的节点内的不同存储装置的数据的复制。持久性逻辑620可配置图4的存储装置阵列410内的存储装置以使得即使数据未被访问,数据仍然持续指定的最小持续时间,或者持久性逻辑620可使得选择逻辑515选择可保证数据可在意料之外的电力故障下存活的存储装置。隔离逻辑625可选择图4的存储装置阵列410内的不与一个或更多个识别的租户共享存储装置的存储装置(或存储装置的簇)。并且迁移逻辑630可根据图2的租户145和/或230的请求或由图2的TASTE 225本身来管理数据从图4的存储装置阵列410内的一个存储装置到另一个存储装置的迁移。
在图5至图6中,各种组件被描述为逻辑。这些逻辑可以是适当设计的用于取得期望的结果的电路,或者是适当修改的通用电路,诸如可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或任何等同设计。这些逻辑还可使用在合适的处理器上运行的软件来实现。
以上讨论提供了图2的TASTE 225如何操作的一些解释。但是一些示例可帮助阐明图2的TASTE 225正在做什么。一开始,示例存储装置阵列410将是有帮助的。
图7示出图4的存储装置阵列410的示例。在图7中,存储装置阵列410具有总共25个存储装置。这些存储装置大致被划分为两类存储装置。存储装置705可以是高性能存储装置,而存储装置710可以是低性能存储装置。存储装置705和710可以跨节点715、720、725、730和735而被划分,其中每个节点可表示单个机器,或者是图1的数据中心105内的单个机架。
尽管图7示出了存储装置阵列410的示例,但是本发明构思的实施例可支持用于存储装置阵列410的任何想要的配置。例如,可存在任意数量的节点,而不仅仅是五个。每个节点可具有任意数量的存储装置,而不仅仅是五个。每个节点可具有与存储装置阵列410中的其它节点不同数量的存储装置。每个节点还可以具有不同类型的不同数量的存储装置,包括零个。例如,一个节点可仅具有高性能存储装置705,而另一个节点可以仅具有低性能存储装置710。可存在多于两类的存储装置(在图7中,高性能存储装置705和低性能存储装置710),并且存储装置可根据多于一个标准来分类。并且,在本发明构思的其它实施例中,看起来将图7中的存储装置进行链接的任何其它线也可变化。
图8示出在图7的存储装置阵列410内建立的虚拟存储装置。在图8中,图2的租户145可能具有图4的指定需求415、识别带宽420和/或延迟425以及并行度445。图4的这些需求415可指示图2的租户145想要特定的最小带宽和/或最大延迟,并且如果没有可提供这些需求的单个存储装置可用,则图2的TASTE 225可构造满足这些需求的虚拟存储装置。进一步假设存储装置阵列410中没有单个存储装置可满足这些需求。因此,图2的TASTE 225可从节点715中的两个存储装置构建虚拟存储装置805。在图8中,TASTE 225可使用关于图2的租户145的信息以获知低性能存储装置710将满足图2的租户145的需要。但是如果图2的租户145需要来自高性能存储装置705的支持,则图2的租户225可从高性能存储装置705构造虚拟存储装置805。
因为虚拟存储装置805可表示新的闪存存储装置(诸如,SSD),所以虚拟存储装置805可包括它自己的闪存转换层(FTL)810。FTL 810可管理如由图2的租户145使用的逻辑块地址之间的映射以及由包括虚拟存储装置805的存储装置使用的物理块地址。
图9示出被分配以满足图7的存储装置阵列410中的各种应用需求的各种簇和存储装置页面大小。在图9中,图2的租户145可指定四个虚拟存储装置的簇大小430,每个虚拟存储装置包括为二的并行度445。图2的租户145可以是例如HDFS。类似地,可以是KV存储的图2的租户230可指定三个虚拟存储装置的簇大小430,每个虚拟存储装置包括为二的并行度445。为了实现这些结果,图2的TASTE 225可为每个租户构造适当的虚拟存储装置。因为HDFS不需要高性能存储装置,所以TASTE 225可使用低性能存储装置710构建用于HDFS的簇。因此,图2的TASTE 225可构造可被集合成簇920的虚拟存储装置805、905、910和915(为了简单起见,用于这些虚拟存储装置的FTL未在图9中示出)。类似地,因为KV存储受益于高性能存储装置,图2的TASTE 225可从高性能存储装置705构造虚拟存储装置925、930和935。然后可将虚拟存储装置925、930和935集合成簇940。
图9还示出图4的页面大小435的使用。在图9中,图2的租户145可指定用于虚拟存储装置805、905、910和915的图4的页面大小435为64MB(页面大小945),而KV存储可为虚拟存储装置925、930和935分别指定100B、32KB和2MB(页面大小950、955和960)的图4的页面大小435。注意,不同的租户可指定图4的不同页面大小435,单个租户也不必针对所有存储装置(虚拟的或物理的)使用图4的相同的页面大小435。
图10示出图7的存储装置阵列410中的存储装置之间的复制。在图10中,与图9类似,图2的租户145可指定四个存储装置的图4的簇大小430。但是,代替指定图4的并行度445,图2的租户145可指定冗余440为2:也就是说,每个数据应当被保存在节点内的两个存储装置上。图2的TASTE 225随后可构造虚拟存储装置805、905、910和915;但是代替将单个存储装置进行组合以构造看起来与组合的两个存储装置一样大的虚拟存储装置,图2的TASTE 225可管理存储装置以将数据从每个虚拟存储装置内的一个存储装置复制到另一个存储装置。该复制操作被示出为操作1005。
注意,图10示出在节点内的存储装置之间的数据的复制。图2的TASTE 225还可管理在不同节点中(即,在不同机架中)的存储装置之间的数据的复制,以防止否则可能去掉节点的电力损失。按照这种方式,数据冗余不仅防止存储装置的故障,还防止节点内的所有存储装置变得同时不可用(如可能发生的电力故障)。
图11示出图7的存储装置阵列410中的存储装置之间的数据迁移。在图11中,图2的租户145或图2的TASTE 225本身可决定应该将数据从一个存储装置迁移到另一个存储装置。例如,图2的租户145可请求超出旧存储装置可支持的存储空间的增加,同样,图2的TASTE 225可将数据迁移到新的存储装置(如操作1105所示)。或者,由于损耗均衡的原因(或其它原因),图2的TASTE 225可确定将数据从旧存储装置迁移到新存储装置的需求(还是如操作1105所示)。
图12示出根据本发明构思的实施例的用于接收图4的应用的存储需求415并据此调整图4的存储装置阵列410的图2的TASTE 225的示例过程的流程图。在图12中,在块1205,图2的TASTE 225可接收用于租户(应用)的图4的需求415。在块1210,图2的TASTE 225可识别在图1的数据中心105的可用资源:也就是说,图4的存储装置阵列410中的存储装置以及它们所有的特性。该信息可从存储器510被访问。在块1215,图5的选择逻辑515可选择可满足用于租户的图4的需求415的图4的存储装置阵列410中的存储装置的子集。在块1220,如果需要,图5的虚拟存储装置逻辑520可从至少一个物理存储装置构造虚拟存储装置。在块1225,图5的虚拟存储装置逻辑520可建立满足所述应用的需求的转换层。如上面参考图5所述,图5的转换层逻辑525可建立可满足所述应用需求中的一个或更多个不同目标的转换层:块1225可实现转换层以实现那些目标。
图13A至图13C示出根据本发明构思的实施例的用于图2的TASTE 225的响应于接收到的应用的需求对图4的存储装置阵列410进行配置的示例过程的流程图。在图13A中,在块1303,图5的接收逻辑505可从图2的租户145和230接收图4的簇大小430。在块1306,图6的簇选择逻辑605可选择满足图4的簇大小430的图4的存储装置阵列410的子集。
可选地,在块1309,图5的接收逻辑505可从图2的租户145和230接收图4的持久性需求450。在块1312,图6的持久性逻辑620可配置图4的存储装置阵列410中的存储装置以满足图4的持续性需求450。
可选地,在块1315,图5的接收逻辑505可从图2的租户145和230接收图4的隔离需求455。在块1318,图6的隔离逻辑625可选择满足图4的隔离需求455的图4的存储装置阵列410的子集。
可选地,在块1321(图13B),图5的接收逻辑505可从图2的租户145和230接收图4的复制因子440。在块1324,图6的簇选择逻辑605可选择满足图4的复制因子440的图4的存储装置阵列410的子集。在块1327,图2的TASTE 225可管理节点内的存储装置之间的数据的复制,并且,在块1330,图2的TASTE 225可管理图1的数据中心105中的节点之间的数据的复制。
可选地,在块1333,图5的接收逻辑505可从图2的租户145和230接收图4的页面大小435。在块1336,图6的簇选择逻辑605可选择图4的存储装置阵列410的子集。在块1339,图6的配置逻辑610可配置图4的存储装置阵列410中的存储装置来使用图4的页面大小435。
可选地,在块1342(图13C),图5的接收逻辑505可从图2的租户145和230接收图4的延迟425。在块1345,图6的簇选择逻辑605可选择满足图4的延迟425的图4的存储装置阵列410的子集。
可选地,在块1348,图5的接收逻辑505可从图2的租户145和230接收图4的带宽420。在块1351,图6的簇选择逻辑605可选择满足图4的带宽420的图4的存储装置阵列410的子集。
可选地,在块1354,图5的接收逻辑505可从图2的租户145和230(或从图2的TASTE225本身)接收图4的迁移460。在块1357,图2的TASTE 225可识别数据要被迁移的存储装置。在块1360,图2的TASTE 225可选择数据应当被迁移到的第二存储装置。在块1363,图6的迁移逻辑630可将数据从第一存储装置迁移到第二存储装置。
在图12至图13C中,示出了本发明构思的一些实施例。但是本领域技术人员将认识到,通过改变块的顺序、通过省略块或者通过包括附图中未示出的链接,本发明构思的其它实施例也是可能的。所述流程图的所有这样的变型被认为是本发明构思的实施例,无论是否明确描述。
下面的讨论旨在提供可实现本发明构思的某些方面的合适的机器的简要的一般描述。所述机器可至少部分地通过来自常规输入装置(诸如,键盘、鼠标等)的输入以及从另一机器接收的指令、与虚拟现实(VR)环境的交互、生物测定反馈或其它输入信号而被控制。如本文所使用的,术语“机器”意于广义地包括单个机器、虚拟机器或者通信联接的机器的系统、多个虚拟机器或一起操作的多个装置。示例性机器包括诸如个人计算机、工作站、服务器、便携式计算机、手持装置、电话、平板电脑等的计算装置以及诸如私人或公共运输工具(例如,汽车、火车、出租车等)的运输工具装置。
机器可包括嵌入式控制器,诸如可编程或不可编程逻辑装置或阵列、专用集成电路(ASIC)、嵌入式计算机、智能卡等。机器可利用与一个或更多个远程机器的一个或更多个连接,诸如通过网络接口、调制解调器或其它通信联接。机器可经由诸如内联网、因特网、局域网、广域网等的物理和/或逻辑网络被互相连接。本领域技术人员将领会,网络通信可利用各种有线和/或无线短程或长距离载体和协议,包括射频(RF)、卫星、微波、电气和电子工程师协会(IEEE)802.11、蓝牙、光学、红外、电缆、激光等。
本发明构思的实施例可通过参照或结合当由机器访问时引起机器执行任务或者定义抽象数据类型或低级硬件上下文的包括功能、过程、数据结构、应用程序等的相关联的数据来描述。相关联的数据可被存储在例如易失性和/或非易失性存储器(例如,RAM、ROM等)或其它存储装置以及它们相关联的存储介质(包括硬盘驱动器、软盘、光学存储器、磁带、闪存、记忆棒、数字视频盘、生物存储器等)中。相关联的数据可以以数据包、串行数据、并行数据、传播的信号的形式经由包括物理和/或逻辑网络的传输环境被传送,并且可以以压缩或加密格式被使用。相关联的数据可在分布式环境中被使用,并被本地和/或远程地存储以用于机器访问。
本发明构思的实施例可包括包含可由一个或更多个处理器执行的指令的有形的非暂时性机器可读介质,其中,所述指令包括用于执行如本文所述的发明构思的元件的指令。
已经参照示出的实施例描述和示出了本发明构思的原理,将意识到,所示实施例可在不脱离这样的原理的情况下在布置和细节上被修改,并且可以以任何想要的方式被组合。并且,尽管上述讨论集中在特定实施例上,但是可以设想其它配置。具体地,尽管在本文中使用诸如“根据本发明构思的实施例”等表述,但是这些短语旨在一般地引用实施例可能性,并且不旨在将本发明构思限于特定实施例配置。如本文所使用的,这些术语可引用可被组合到其它实施例中的相同或不同的实施例。
上述说明性实施例不应被解释为限制本发明的构思。虽然已经描述了几个实施例,但是本领域技术人员将容易地理解,在实质上不偏离本公开的新颖教导和优点的情况下,可对那些实施例进行许多修改。因此,所有这样的修改旨在被包括在如权利要求中限定的本发明构思的范围内。
本发明构思的实施例可扩展至下面的声明,但不限于此:
声明1、本发明构思的实施例包括租户感知存储共享引擎(TASTE),包括:
存储器,用于关于可用存储装置的集合的信息;
接收逻辑,从应用接收存储装置需求;以及
选择逻辑,选择满足所述存储装置需求的可用存储装置的所述集合的子集。
声明2、本发明构思的实施例包括根据声明1的TASTE,其中:
所述存储装置需求包括用于所述应用的簇大小;以及
所述选择逻辑包括用于选择可用存储装置的所述集合的所述子集的簇选择逻辑,可用存储装置的所述子集中的存储装置的数量等于所述簇大小。
声明3、本发明构思的实施例包括根据声明2的TASTE,还包括用于为可用存储装置的所述集合的所述子集建立转换层以将逻辑块地址映射到可用存储装置的所述集合的所述子集上的物理块地址的转换层逻辑。
声明4、本发明构思的实施例包括根据声明3的TASTE,还包括用于从可用存储装置的所述集合的所述子集中的多个存储装置为虚拟存储装置建立转换层的转换层逻辑。
声明5、本发明构思的实施例包括根据声明1的TASTE,其中:
所述存储装置需求包括用于所述应用的页面大小;以及
所述选择逻辑包括配置可用存储装置的所述集合的所述子集以使用所述页面大小的配置逻辑。
声明6、本发明构思的实施例包括根据声明5的TASTE,还包括用于为可用存储装置的所述集合的所述子集建立转换层以根据所述页面大小将逻辑块地址映射到物理块地址的转换层逻辑。
声明7、本发明构思的实施例包括根据声明5的TASTE,其中:
所述存储装置需求包括用于所述应用的多个页面大小;以及
所述选择逻辑包括用于配置可用存储装置的所述集合的所述子集以使用所述多个页面大小的配置逻辑。
声明8、本发明构思的实施例包括根据声明7的TASTE,还包括:转换层逻辑,用于为可用存储装置的所述集合的所述子集建立转换层以根据第一页面大小将第一逻辑块地址映射到可用存储装置的所述集合的所述子集中的第一个上的第一物理块地址以及根据第二页面大小将第二逻辑块地址映射到可用存储装置的所述集合的所述子集中的第二个上的第二物理块地址。
声明9、本发明构思的实施例包括根据声明1的TASTE,其中:
所述存储装置需求包括用于所述应用的复制因子;以及
所述选择逻辑包括用于将跨一定数量的可用存储装置的所述集合的所述子集的数据进行复制的复制逻辑,其中,所述数量等于所述复制因子。
声明10、本发明构思的实施例包括根据声明9的TASTE,还包括:转换层逻辑,用于为可用存储装置的所述集合的所述子集建立转换层以将可用存储装置的所述集合的所述子集中的第一存储装置作为可用存储装置的所述集合的所述子集中的第二存储装置的副本进行管理。
声明11、本发明构思的实施例包括根据声明9的TASTE,其中,所述复制逻辑操作用于对跨节点内的存储装置的数据进行复制。
声明12、本发明构思的实施例包括根据声明11的TASTE,其中,所述应用操作用于对跨节点的数据进行复制。
声明13、本发明构思的实施例包括根据声明1的TASTE,其中:
所述存储装置需求包括用于所述应用的持久性需求;以及
所述选择逻辑包括持久性逻辑,以确保来自所述应用的数据在可用存储装置的所述集合的所述子集内持续阈值时间量。
声明14、本发明构思的实施例包括根据声明13的TASTE,还包括:转换层逻辑,用于为可用存储装置的所述集合的所述子集建立转换层以使得可用存储装置的所述集合的所述子集上的数据至少在所述阈值时间量内不应是无效的。
声明15、本发明构思的实施例包括根据声明1的TASTE,其中:
所述存储装置需求包括用于所述应用的持久性需求;以及
所述选择逻辑包括持久性逻辑以确保可用存储装置的所述集合的所述子集可防止数据受电力故障影响。
声明16、本发明构思的实施例包括根据声明1的TASTE,其中:
所述存储装置需求包括用于所述应用的隔离需求;以及
所述选择逻辑包括隔离逻辑以确保可用存储装置的所述集合的所述子集不与可用存储装置的所述集合的第二子集重叠,其中,可用存储装置的所述集合的第二子集由第二应用使用。
声明17、本发明构思的实施例包括根据声明1的TASTE,其中:
所述存储装置需求包括用于所述应用的迁移命令;以及
所述选择逻辑包括用于将数据从可用存储装置的所述集合的所述子集内的第一存储装置迁移到可用存储装置的所述子集内的第二存储装置的迁移逻辑。
声明18、本发明构思的实施例包括根据声明1的TASTE,还包括用于从可用存储装置的所述集合的所述子集中的多个存储装置产生虚拟存储装置的虚拟存储装置逻辑。
声明19、本发明构思的实施例包括根据声明18的TASTE,还包括用于为所述虚拟存储装置建立转换层的转换层逻辑。
声明20、本发明构思的实施例包括根据声明1的TASTE,其中:
所述存储装置需求包括用于所述应用的带宽需求;以及
所述选择逻辑操作用于选择组合后提供不小于所述带宽需求的总带宽的可用存储装置的所述集合的所述子集。
声明21、本发明构思的实施例包括根据声明1的TASTE,其中:
所述存储装置需求包括用于所述应用的延迟需求;以及
所述选择逻辑操作用于选择组合后提供不大于所述延迟需求的平均延迟的可用存储装置的所述集合的所述子集。
声明22、本发明构思的实施例包括一种方法,包括:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合;
识别可用存储装置的集合;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集。
声明23、本发明构思的实施例包括根据声明22的方法,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的簇大小;并且
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合选择存储装置,其中,可用存储装置的所述子集中的存储装置的数量等于用于所述应用的所述簇大小。
声明24、本发明构思的实施例包括根据声明23的方法,还包括:为可用存储装置的所述集合的所述子集建立转换层以将逻辑块地址映射到可用存储装置的所述集合的所述子集上的物理块地址。
陈述25、本发明构思的实施例包括根据声明22的方法,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的页面大小;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:
从可用存储装置的所述集合选择存储装置;以及
配置所选择的存储装置以使用用于所述应用的所述页面大小。
声明26、本发明构思的实施例包括根据声明25的方法,还包括:为可用存储装置的所述集合的所述子集建立转换层以根据所述页面大小将逻辑块地址映射到物理块地址。
声明27、本发明构思的实施例包括根据声明25的方法,其中:
接收用于所述应用的页面大小的步骤包括:接收用于所述应用的多个页大小;以及
配置所选择的存储装置以使用用于所述应用的所述页面大小的步骤包括:配置所选择的存储装置以使用用于所述应用的所述多个页面大小;
声明28、本发明构思的实施例包括根据声明27的方法,还包括:为可用存储装置的所述集合的所述子集建立转换层以根据所述多个页面大小将逻辑块地址映射到物理块地址。
声明29、本发明构思的实施例包括根据声明22的方法,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的复制因子;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合选择存储装置,使得每个数据可被存储在一定数量的存储装置上,存储装置的所述数量至少与用于所述应用的复制因子一样大。
声明30、本发明构思的实施例包括根据声明29的方法,还包括:为可用存储装置的所述集合的所述子集建立转换层,以将可用存储装置的所述集合的所述子集中的第一存储装置作为可用存储装置的所述集合的所述子集中的第二存储装置的副本进行管理。
声明31、本发明构思的实施例包括根据声明29的方法,还包括:管理节点中的可用存储装置的所述集合的所述子集中的存储装置之间的复制。
声明32、本发明构思的实施例包括根据声明31的方法,还包括:由所述应用对跨节点数据进行复制。
声明33、本发明构思的实施例包括根据陈述22的方法,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的持久性需求;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合配置存储装置,以使得数据将根据用于所述应用的持久性需求被存储在所述存储装置上阈值时间量。
声明34、本发明构思的实施例包括根据声明33的方法,还包括:为可用存储装置的所述集合的所述子集建立转换层,使得可用存储装置的所述集合的所述子集上的数据在至少所述阈值时间量内不应是无效的。
声明35、本发明构思的实施例包括根据声明22的方法,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的持久性需求;
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合选择存储装置,以使得数据将不受电力故障影响。
声明36、本发明构思的实施例包括根据声明22的方法,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收指定将所述应用与第二应用隔离的隔离需求;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合选择存储装置,使得在可用存储装置的所述集合的所述子集中没有存储装置存储用于第二应用的数据。
声明37、本发明构思的实施例包括根据声明22的方法,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的迁移命令;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集包括:
识别数据将被迁移的存储装置;
从可用存储装置的所述集合选择第二存储装置;以及
将数据从所述存储装置迁移到所述第二存储装置。
声明38、本发明构思的实施例包括根据声明22的方法,其中,选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从至少一个存储装置产生虚拟存储装置。
声明39、本发明构思的实施例包括根据声明38所述的方法,还包括:为所述虚拟存储装置建立转换层。
声明40、本发明构思的实施例包括根据声明22的方法,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的带宽需求;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合选择组合后提供不小于用于所述应用的带宽需求的总带宽的存储装置。
声明41、本发明构思的实施例包括根据声明22所述的方法,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的延迟需求;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合选择组合后提供不大于用于所述应用的延迟需求的平均延迟的存储装置。
声明42、本发明构思的实施例包括一种物品,其中,所述物品包括有形存储介质,所述有形存储介质上存储有非暂时性指令,所述指令当由机器执行时,引起以下操作:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合;
识别可用存储装置的集合;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集。
声明43、本发明构思的实施例包括根据声明42的物品,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的簇大小;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合选择存储装置,其中,可用存储装置的所述子集中的存储装置的数量等于用于所述应用的簇大小。
声明44、本发明构思的实施例包括根据声明43的物品,还包括:为可用存储装置的所述集合的所述子集建立转换层,以将逻辑块地址映射到可用存储装置的所述集合的所述子集上的物理块地址。
声明45、本发明构思的实施例包括根据声明42的物品,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的页面大小;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集包括:
从可用存储装置的所述集合选择存储装置;以及
配置所选择的存储装置以使用用于所述应用的页面大小。
声明46、本发明构思的实施例包括根据声明45的物品,还包括:为可用存储装置的所述集合的所述子集建立转换层,以根据所述页面大小将逻辑块地址映射到物理块地址。
声明47、本发明构思的实施例包括根据声明45的物品,其中:
接收用于所述应用的页面大小的步骤包括:接收用于所述应用的多个页面大小;以及
配置所选择的存储装置以使用用于所述应用的页面大小的步骤包括:配置所选择的存储装置以使用用于所述应用的所述多个页面大小。
声明48、本发明构思的实施例包括根据声明47的物品,还包括:为可用存储装置的所述集合的所述子集建立转换层,以根据所述多个页面大小将逻辑块地址映射到物理块地址。
声明49、本发明构思的实施例包括根据声明42的物品,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的复制因子;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合选择存储装置,其中,每个数据可被存储在一定数量的存储装置上,存储装置的所述数量至少与用于所述应用的所述复制因子一样大。
声明50、本发明构思的实施例包括根据声明49的物品,还包括:为可用存储装置的所述集合的所述子集建立转换层,以将可用存储装置的所述集合的所述子集中的第一存储装置作为可用存储装置的所述集合的所述子集中的第二存储装置的副本进行管理。
声明51、本发明构思的实施例包括根据声明49的物品,其中,所述有形存储介质上存储有其它非暂时性指令,当所述指令由所述机器执行时,引起对节点中的可用存储装置的所述集合的所述子集中的存储装置之间的复制进行管理。
声明52、本发明构思的实施例包括根据声明51的物品,其中,所述有形存储介质上存储有其它非暂时性指令,当所述指令由所述机器执行时,引起由所述应用对跨节点的数据进行复制。
声明53、本发明构思的实施例包括根据声明42的物品,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的持久性需求;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合配置存储装置,使得数据根据用于所述应用的持久性需求将被存储在所述存储装置上阈值时间量。
声明54、本发明构思的实施例包括根据声明53的方法,还包括:为可用存储装置的所述集合的所述子集建立转换层,使得可用存储装置的所述集合的所述子集上的数据在至少所述阈值时间量内不应是无效的。
声明55、本发明构思的实施例包括根据声明42的物品,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的持久性需求;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合选择存储装置,将使得数据将不受电力故障影响。
声明56、本发明构思的实施例包括根据声明42的物品,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收指定所述应用与第二应用隔离的隔离需求;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合选择存储装置,使得可用存储装置的所述集合的所述子集中没有存储装置存储用于所述第二应用的数据。
声明57、本发明构思的实施例包括根据声明42的物品,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的迁移命令;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:
识别数据将被迁移的存储装置;
从可用存储装置的所述集合选择第二存储装置;以及
将数据从所述存储装置迁移到所述第二存储装置。
声明58、本发明构思的实施例包括根据声明42的物品,其中,选择满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从至少一个存储装置产生虚拟存储装置。
声明59、本发明构思的实施例包括根据声明58的物品,其中,所述有形存储介质上存储有其它非暂时性指令,当所述指令由所述机器执行时,引起为所述虚拟存储装置建立转换层。
声明60、本发明构思的实施例包括根据声明42的物品,其中:
从在租户感知存储共享引擎(TASTE)的应用接存储装置需求的集合的步骤包括:接收用于所述应用的带宽需求;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合选择组合后提供不小于用于所述应用的带宽需求的总带宽的存储装置。
声明61、本发明构思的实施例包括根据声明42的物品,其中:
从在租户感知存储共享引擎(TASTE)的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的延迟需求;以及
选择用于满足来自所述应用的存储装置需求的所述集合的可用存储装置的所述集合的子集的步骤包括:从可用存储装置的所述集合选择组合后提供不大于用于所述应用的延迟需求的平均延迟的存储装置。
因此,鉴于对本文所述的实施例的各种各样的排列,该详细描述和所附材料旨在仅是说明性的,而不应被视为限制本发明构思的范围。因此,如本发明构思所要求保护的是所有这样的修改,其可以落入权利要求及其等同物的范围和精神内。
Claims (31)
1.一种租户感知存储共享引擎装置 ,包括:
存储器,用于存储关于可用存储装置的集合的信息,其中,关于可用存储装置的所述集合的信息包括关于可用存储装置的所述集合的存储资源信息;
接收逻辑,用于从应用接收应用所期望的存储装置需求,其中,存储装置需求包括容量、带宽、延迟、簇大小、页面大小、冗余、并行度、持久性、安全性和迁移中的一个或多个;
选择逻辑,用于使用关于可用存储装置的所述集合的信息选择满足所述存储装置需求的可用存储装置的所述集合的子集。
2.如权利要求1所述的租户感知存储共享引擎装置 ,其中:
所述存储装置需求包括用于所述应用的簇大小;
所述选择逻辑包括用于选择可用存储装置的所述集合的所述子集的簇选择逻辑,可用存储装置的所述子集中的存储装置的数量等于所述簇大小。
3.如权利要求2所述的租户感知存储共享引擎装置 ,还包括:转换层逻辑,用于为可用存储装置的所述集合的所述子集建立转换层,以将逻辑块地址映射到可用存储装置的所述集合的所述子集上的物理块地址。
4.如权利要求1所述的租户感知存储共享引擎装置 ,其中:
所述存储装置需求包括用于所述应用的页面大小;
所述选择逻辑包括用于配置可用存储装置的所述集合的所述子集以使用所述页面大小的配置逻辑。
5.如权利要求4所述的租户感知存储共享引擎装置 ,还包括:转换层逻辑,用于为可用存储装置的所述集合的所述子集建立转换层,以根据所述页面大小将逻辑块地址映射到物理块地址。
6.如权利要求1所述的租户感知存储共享引擎装置 ,其中:
所述存储装置需求包括用于所述应用的复制因子;
所述选择逻辑包括用于对跨一定数量的可用存储装置的所述集合的所述子集的数据进行复制的复制逻辑,其中,所述数量等于所述复制因子。
7.如权利要求6所述的租户感知存储共享引擎装置 ,还包括:转换层逻辑,用于为可用存储装置的所述集合的所述子集建立转换层,以将可用存储装置的所述集合的所述子集中的第一存储装置作为在可用存储装置的所述集合的所述子集中的第二存储装置的副本进行管理。
8.如权利要求1所述的租户感知存储共享引擎装置 ,其中:
所述存储装置需求包括用于所述应用的持久性需求;
所述选择逻辑包括用于确保来自所述应用的数据在可用存储装置的所述集合的所述子集内持续阈值时间量的持久性逻辑。
9.如权利要求8所述的租户感知存储共享引擎装置 ,还包括:转换层逻辑,用于为可用存储装置的所述集合的所述子集建立转换层,使得可用存储装置的所述集合的所述子集上的数据至少在阈值时间量内不应是无效的。
10.如权利要求1所述的租户感知存储共享引擎装置 ,其中:
所述存储装置需求包括用于所述应用的持久性需求;
所述选择逻辑包括持久性逻辑,所述持久性逻辑用于确保可用存储装置的所述集合的所述子集能够防止数据受电力故障影响。
11.如权利要求1所述的租户感知存储共享引擎装置 ,其中:
所述存储装置需求包括用于所述应用的隔离需求;
所述选择逻辑包括用于确保可用存储装置的所述集合的所述子集不与可用存储装置的所述集合的第二子集重叠的隔离逻辑,其中,可用存储装置的所述集合的所述第二子集由第二应用使用。
12.如权利要求1所述的租户感知存储共享引擎装置 ,其中:
所述存储装置需求包括用于所述应用的迁移命令;
所述选择逻辑包括用于将数据从可用存储装置的所述集合的所述子集内的第一存储装置迁移到可用存储装置的所述子集内的第二存储装置的迁移逻辑。
13.如权利要求1所述的租户感知存储共享引擎装置 ,还包括:虚拟存储装置逻辑,用于从可用存储装置的所述集合的所述子集中的多个存储装置产生虚拟存储装置。
14.如权利要求13所述的租户感知存储共享引擎装置 ,还包括:转换层逻辑,用于为所述虚拟存储装置建立转换层。
15.一种用于租户感知存储共享引擎的方法,包括:
从在租户感知存储共享引擎的应用接收应用所期望的存储装置需求的集合,其中,存储装置需求包括容量、带宽、延迟、簇大小、页面大小、冗余、并行度、持久性、安全性和迁移中的一个或多个;
识别可用存储装置的集合;
使用关于可用存储装置的所述集合的信息选择可用存储装置的所述集合的子集以满足来自所述应用的存储装置需求的所述集合,其中,关于可用存储装置的所述集合的信息包括关于可用存储装置的所述集合的存储资源信息。
16.如权利要求15所述的方法,其中:
从在租户感知存储共享引擎的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的簇大小;
选择可用存储装置的所述集合的子集以满足来自所述应用的存储装置需求的所述集合的步骤包括:从可用存储装置的所述集合选择存储装置,其中,可用存储装置的所述子集中的存储装置的数量等于用于所述应用的所述簇大小。
17.如权利要求16所述的方法,还包括:为可用存储装置的所述集合的所述子集建立转换层,以将逻辑块地址映射到可用存储装置的所述集合的所述子集上的物理块地址。
18.如权利要求15所述的方法,其中:
从在租户感知存储共享引擎的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的页面大小;
选择可用存储装置的所述集合的子集以满足来自所述应用的存储装置需求的所述集合的步骤包括:
从可用存储装置的所述集合选择存储装置;
将所选择的存储装置配置为使用用于所述应用的所述页面大小。
19.如权利要求18所述的方法,还包括:为可用存储装置的所述集合的所述子集建立转换层,以根据所述页面大小将逻辑块地址映射到物理块地址。
20.如权利要求15所述的方法,其中:
从在租户感知存储共享引擎的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的复制因子;
选择可用存储装置的所述集合的子集以满足来自所述应用的存储装置需求的所述集合的步骤包括:从可用存储装置的所述集合选择存储装置,使得每个数据可被存储在一定数量的存储装置上,其中,存储装置的所述数量至少与用于所述应用的所述复制因子一样大。
21.如权利要求20所述的方法,还包括:为可用存储装置的所述集合的所述子集建立转换层,以将可用存储装置的所述集合的所述子集中的第一存储装置作为可用存储装置的所述集合的所述子集中的第二存储装置的副本进行管理。
22.如权利要求15所述的方法,其中:
从在租户感知存储共享引擎的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的持久性需求;
选择可用存储装置的所述集合的子集以满足来自所述应用的存储装置需求的所述集合的步骤包括:从可用存储装置的所述集合配置存储装置,使得数据将根据所述应用的所述持久性需求在阈值时间量内被存储在所述存储装置上。
23.如权利要求22所述的方法,还包括:为可用存储装置的所述集合的所述子集建立转换层,使得可用存储装置的所述集合的所述子集上的数据至少在所述阈值时间量内不应是无效的。
24.如权利要求15所述的方法,其中:
从在租户感知存储共享引擎的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的持久性需求;
选择可用存储装置的所述集合的子集以满足来自所述应用的存储装置需求的所述集合的步骤包括:从可用存储装置的所述集合选择存储装置,使得将防止数据受电力故障影响。
25.如权利要求15所述的方法,其中:
从在租户感知存储共享引擎的应用接收存储装置需求的集合的步骤包括:接收指定所述应用与第二应用隔离的隔离需求;
选择可用存储装置的所述集合的子集以满足来自所述应用的存储装置需求的所述集合的步骤包括:从可用存储装置的所述集合选择存储装置,使得在可用存储装置的所述集合的所述子集中没有存储装置存储用于第二应用的数据。
26.如权利要求15所述的方法,其中:
从在租户感知存储共享引擎的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的迁移命令;
选择可用存储装置的所述集合的子集以满足来自所述应用的存储装置需求的所述集合的步骤包括:
识别数据将被迁移的存储装置;
从可用存储装置的所述集合选择第二存储装置;
将数据从所述存储装置迁移到所述第二存储装置。
27.一种包括有形存储介质的物品,其中,所述有形存储介质上存储有非暂时性指令,当所述指令由机器执行时,所述指令引起以下操作:
从在租户感知存储共享引擎的应用接收应用所期望的存储装置需求的集合,其中,存储装置需求包括容量、带宽、延迟、簇大小、页面大小、冗余、并行度、持久性、安全性和迁移中的一个或多个;
识别可用存储装置的集合;
使用关于可用存储装置的所述集合的信息选择可用存储装置的所述集合的子集以满足来自所述应用的存储装置需求的所述集合,其中,关于可用存储装置的所述集合的信息包括关于可用存储装置的所述集合的存储资源信息。
28.如权利要求27所述的物品,其中:
从在租户感知存储共享引擎的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的簇大小;
选择可用存储装置的所述集合的子集以满足来自所述应用的存储装置需求的所述集合的步骤包括:从可用存储装置的所述集合择存储装置,其中,可用存储装置的所述子集中的存储装置的数量等于用于所述应用的所述簇大小。
29.如权利要求28所述的物品,还包括:为可用存储装置的所述集合的所述子集建立转换层,以将逻辑块地址映射到可用存储装置的所述集合的所述子集上的物理块地址。
30.如权利要求27所述的物品,其中:
从在租户感知存储共享引擎的应用接收存储装置需求的集合的步骤包括:接收用于所述应用的复制因子;
选择可用存储装置的所述集合的子集以满足来自所述应用的存储装置需求的所述集合的步骤包括:从可用存储装置的所述集合选择存储装置,其中,每个数据能够被存储在一定数量的存储装置上,存储装置的所述数量至少与用于所述应用的所述复制因子一样大。
31.如权利要求30所述的物品,还包括:为可用存储装置的所述集合的所述子集建立转换层,以将可用存储装置的所述集合的所述子集中的第一存储装置作为可用存储装置的所述集合的所述子集中的第二存储装置的副本进行管理。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662341063P | 2016-05-24 | 2016-05-24 | |
US62/341,063 | 2016-05-24 | ||
US15/227,955 US10437486B2 (en) | 2016-05-24 | 2016-08-03 | Method and apparatus for tenant-aware storage sharing platform |
US15/227,955 | 2016-08-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107422983A CN107422983A (zh) | 2017-12-01 |
CN107422983B true CN107422983B (zh) | 2022-04-05 |
Family
ID=60417918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710244674.XA Active CN107422983B (zh) | 2016-05-24 | 2017-04-14 | 用于租户感知存储共享平台的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10437486B2 (zh) |
JP (1) | JP6734807B2 (zh) |
KR (1) | KR102457611B1 (zh) |
CN (1) | CN107422983B (zh) |
TW (1) | TWI699654B (zh) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642497B2 (en) * | 2016-08-31 | 2020-05-05 | International Business Machines Corporation | System, method and computer program product for instantiating blocks of a solid-state disk to include different flash characteristics |
US10484015B2 (en) | 2016-12-28 | 2019-11-19 | Amazon Technologies, Inc. | Data storage system with enforced fencing |
US10771550B2 (en) | 2016-12-28 | 2020-09-08 | Amazon Technologies, Inc. | Data storage system with redundant internal networks |
US11301144B2 (en) | 2016-12-28 | 2022-04-12 | Amazon Technologies, Inc. | Data storage system |
US10514847B2 (en) * | 2016-12-28 | 2019-12-24 | Amazon Technologies, Inc. | Data storage system with multiple durability levels |
US10073640B1 (en) * | 2017-03-10 | 2018-09-11 | Toshiba Memory Corporation | Large scale implementation of a plurality of open channel solid state drives |
US10542089B2 (en) * | 2017-03-10 | 2020-01-21 | Toshiba Memory Corporation | Large scale implementation of a plurality of open channel solid state drives |
US20180300253A1 (en) * | 2017-04-13 | 2018-10-18 | Advanced Micro Devices, Inc. | Translate further mechanism |
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
US10880040B1 (en) | 2017-10-23 | 2020-12-29 | EMC IP Holding Company LLC | Scale-out distributed erasure coding |
US10992967B2 (en) * | 2017-12-05 | 2021-04-27 | Sony Interactive Entertainment LLC | Ultra high-speed low-latency network storage |
US10423361B2 (en) * | 2017-12-21 | 2019-09-24 | Microsoft Technology Licensing, Llc | Virtualized OCSSDs spanning physical OCSSD channels |
US10382554B1 (en) | 2018-01-04 | 2019-08-13 | Emc Corporation | Handling deletes with distributed erasure coding |
US11029879B2 (en) * | 2018-01-29 | 2021-06-08 | Samsung Electronics Co., Ltd | Page size synchronization and page size aware scheduling method for non-volatile memory dual in-line memory module (NVDIMM) over memory channel |
US10579297B2 (en) | 2018-04-27 | 2020-03-03 | EMC IP Holding Company LLC | Scaling-in for geographically diverse storage |
US10936196B2 (en) | 2018-06-15 | 2021-03-02 | EMC IP Holding Company LLC | Data convolution for geographically diverse storage |
US11023130B2 (en) | 2018-06-15 | 2021-06-01 | EMC IP Holding Company LLC | Deleting data in a geographically diverse storage construct |
CN109445684B (zh) * | 2018-09-20 | 2021-11-26 | 华为技术有限公司 | 一种分布式存储系统中硬盘的资源分配方法及设备 |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US10901635B2 (en) | 2018-12-04 | 2021-01-26 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns |
US10931777B2 (en) | 2018-12-20 | 2021-02-23 | EMC IP Holding Company LLC | Network efficient geographically diverse data storage system employing degraded chunks |
US11119683B2 (en) | 2018-12-20 | 2021-09-14 | EMC IP Holding Company LLC | Logical compaction of a degraded chunk in a geographically diverse data storage system |
US10892782B2 (en) | 2018-12-21 | 2021-01-12 | EMC IP Holding Company LLC | Flexible system and method for combining erasure-coded protection sets |
US11023331B2 (en) | 2019-01-04 | 2021-06-01 | EMC IP Holding Company LLC | Fast recovery of data in a geographically distributed storage environment |
US10942827B2 (en) | 2019-01-22 | 2021-03-09 | EMC IP Holding Company LLC | Replication of data in a geographically distributed storage environment |
US10936239B2 (en) | 2019-01-29 | 2021-03-02 | EMC IP Holding Company LLC | Cluster contraction of a mapped redundant array of independent nodes |
US10942825B2 (en) | 2019-01-29 | 2021-03-09 | EMC IP Holding Company LLC | Mitigating real node failure in a mapped redundant array of independent nodes |
US10846003B2 (en) | 2019-01-29 | 2020-11-24 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage |
US10866766B2 (en) | 2019-01-29 | 2020-12-15 | EMC IP Holding Company LLC | Affinity sensitive data convolution for data storage systems |
US11029865B2 (en) | 2019-04-03 | 2021-06-08 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes |
US10944826B2 (en) | 2019-04-03 | 2021-03-09 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a mapped redundant array of independent nodes |
US11121727B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Adaptive data storing for data storage systems employing erasure coding |
US11113146B2 (en) | 2019-04-30 | 2021-09-07 | EMC IP Holding Company LLC | Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system |
US11119686B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Preservation of data during scaling of a geographically diverse data storage system |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11438414B2 (en) * | 2019-05-28 | 2022-09-06 | Micron Technology, Inc. | Inter operating system memory services over communication network connections |
US11169723B2 (en) | 2019-06-28 | 2021-11-09 | Amazon Technologies, Inc. | Data storage system with metadata check-pointing |
US11209996B2 (en) | 2019-07-15 | 2021-12-28 | EMC IP Holding Company LLC | Mapped cluster stretching for increasing workload in a data storage system |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11023145B2 (en) | 2019-07-30 | 2021-06-01 | EMC IP Holding Company LLC | Hybrid mapped clusters for data storage |
US11228322B2 (en) | 2019-09-13 | 2022-01-18 | EMC IP Holding Company LLC | Rebalancing in a geographically diverse storage system employing erasure coding |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11288139B2 (en) | 2019-10-31 | 2022-03-29 | EMC IP Holding Company LLC | Two-step recovery employing erasure coding in a geographically diverse data storage system |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11119690B2 (en) | 2019-10-31 | 2021-09-14 | EMC IP Holding Company LLC | Consolidation of protection sets in a geographically diverse data storage environment |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11144220B2 (en) | 2019-12-24 | 2021-10-12 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes |
US11231860B2 (en) | 2020-01-17 | 2022-01-25 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage with high performance |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11288229B2 (en) | 2020-05-29 | 2022-03-29 | EMC IP Holding Company LLC | Verifiable intra-cluster migration for a chunk storage system |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11416180B2 (en) * | 2020-11-05 | 2022-08-16 | International Business Machines Corporation | Temporary data storage in data node of distributed file system |
US11620068B2 (en) * | 2021-01-06 | 2023-04-04 | EMC IP Holding Company LLC | Data transfer optimizations |
US11593035B2 (en) * | 2021-01-06 | 2023-02-28 | Red Hat, Inc. | Managing client devices associated with storage nodes in a scale-out storage system |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
US20230289084A1 (en) * | 2022-03-11 | 2023-09-14 | Samsung Electronics Co., Ltd. | Systems and methods for checking data alignment between applications, file systems, and computational storage devices |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493656B1 (en) | 1999-02-26 | 2002-12-10 | Compaq Computer Corporation, Inc. | Drive error logging |
US8296467B2 (en) * | 2000-01-06 | 2012-10-23 | Super Talent Electronics Inc. | Single-chip flash device with boot code transfer capability |
US6836821B2 (en) | 2002-04-23 | 2004-12-28 | Lsi Logic Corporation | System and method for providing graph structuring for layered virtual volumes |
US7028147B2 (en) * | 2002-12-13 | 2006-04-11 | Sun Microsystems, Inc. | System and method for efficiently and reliably performing write cache mirroring |
US7120651B2 (en) * | 2003-08-01 | 2006-10-10 | Oracle International Corporation | Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping |
US7418568B2 (en) * | 2005-01-05 | 2008-08-26 | Sap Ag | Memory management technique |
JP4473175B2 (ja) | 2005-05-13 | 2010-06-02 | 富士通株式会社 | 記憶制御方法、プログラム及び装置 |
KR20090026941A (ko) | 2007-09-11 | 2009-03-16 | 삼성전자주식회사 | 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치 |
US7856499B2 (en) | 2008-03-20 | 2010-12-21 | Sap Ag | Autonomic provisioning of hosted applications with level of isolation terms |
WO2011145138A1 (ja) * | 2010-05-18 | 2011-11-24 | 株式会社日立製作所 | ストレージ装置及びデータ管理方法 |
US8667171B2 (en) | 2010-05-28 | 2014-03-04 | Microsoft Corporation | Virtual data center allocation with bandwidth guarantees |
US8880558B2 (en) | 2010-07-01 | 2014-11-04 | International Business Machines Corporation | Cloud services creation based on graph mapping |
US20120188249A1 (en) | 2011-01-26 | 2012-07-26 | Raytheon Company | Distributed graph system and method |
KR101800444B1 (ko) | 2011-03-28 | 2017-12-20 | 삼성전자주식회사 | 불휘발성 메모리의 제어 방법 및 그것을 포함하는 메모리 시스템 |
US9317336B2 (en) | 2011-07-27 | 2016-04-19 | Alcatel Lucent | Method and apparatus for assignment of virtual resources within a cloud environment |
US9026717B2 (en) * | 2011-09-30 | 2015-05-05 | SanDisk Technologies, Inc. | Apparatus, system, and method for a persistent object store |
CN103036930B (zh) * | 2011-09-30 | 2015-06-03 | 国际商业机器公司 | 用于管理存储设备的方法和设备 |
US9239786B2 (en) * | 2012-01-18 | 2016-01-19 | Samsung Electronics Co., Ltd. | Reconfigurable storage device |
US9720668B2 (en) | 2012-02-29 | 2017-08-01 | Red Hat, Inc. | Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system |
US10095705B2 (en) | 2012-09-24 | 2018-10-09 | Microsoft Technology Licensing, Llc | Integrated data retention policy for solid state and asymmetric access |
CN104380259B (zh) * | 2012-10-17 | 2018-09-21 | 华为技术有限公司 | 降低内存系统功耗的方法和内存控制器 |
US20140181595A1 (en) | 2012-12-20 | 2014-06-26 | Virtium Technology, Inc. | Estimating lifespan of solid-state drive using real usage model |
US9065734B2 (en) | 2013-03-08 | 2015-06-23 | Telefonaktiebolaget L M Ericsson (Publ) | Network bandwidth allocation in multi-tenancy cloud computing networks |
US20140351505A1 (en) * | 2013-05-21 | 2014-11-27 | International Business Machines Corporation | Providing data attributes to a storage manager to use to select a storage tier to use for a data set management operation |
US9152684B2 (en) * | 2013-11-12 | 2015-10-06 | Netapp, Inc. | Snapshots and clones of volumes in a storage system |
US9619381B2 (en) | 2013-12-24 | 2017-04-11 | International Business Machines Corporation | Collaborative health management in a storage system |
US10222988B2 (en) * | 2014-04-22 | 2019-03-05 | Hitachi, Ltd. | Efficient management storage system via defining of several size units in advance |
US9864749B2 (en) | 2014-06-27 | 2018-01-09 | Netapp, Inc. | Methods for provisioning workloads in a storage system using machine learning and devices thereof |
US9798489B2 (en) | 2014-07-02 | 2017-10-24 | Hedvig, Inc. | Cloning a virtual disk in a storage platform |
US9524103B2 (en) * | 2014-09-10 | 2016-12-20 | Netapp, Inc. | Technique for quantifying logical space trapped in an extent store |
US10013196B2 (en) | 2014-09-26 | 2018-07-03 | EMC IP Holding Company LLC | Policy based provisioning of storage system resources |
US9836229B2 (en) * | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
US9954799B2 (en) | 2015-05-14 | 2018-04-24 | International Business Machines Corporation | Adaptive service chain management |
US10310740B2 (en) * | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
US10235473B2 (en) | 2015-10-28 | 2019-03-19 | Vmware, Inc. | Methods and systems to allocate logical disk costs to virtual machines in a virtual data center |
-
2016
- 2016-08-03 US US15/227,955 patent/US10437486B2/en active Active
-
2017
- 2017-02-08 KR KR1020170017666A patent/KR102457611B1/ko active IP Right Grant
- 2017-03-27 TW TW106110050A patent/TWI699654B/zh active
- 2017-04-07 JP JP2017076598A patent/JP6734807B2/ja active Active
- 2017-04-14 CN CN201710244674.XA patent/CN107422983B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
KR20170132651A (ko) | 2017-12-04 |
JP2017211983A (ja) | 2017-11-30 |
US10437486B2 (en) | 2019-10-08 |
CN107422983A (zh) | 2017-12-01 |
KR102457611B1 (ko) | 2022-10-21 |
US20170344285A1 (en) | 2017-11-30 |
TW201741889A (zh) | 2017-12-01 |
JP6734807B2 (ja) | 2020-08-05 |
TWI699654B (zh) | 2020-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107422983B (zh) | 用于租户感知存储共享平台的方法和装置 | |
US12105620B2 (en) | Storage system buffering | |
US11614893B2 (en) | Optimizing storage device access based on latency | |
US11954002B1 (en) | Automatically provisioning mediation services for a storage system | |
US10853139B2 (en) | Dynamic workload management based on predictive modeling and recommendation engine for storage systems | |
US20210160318A1 (en) | Scale out storage platform having active failover | |
US20200081648A1 (en) | Local relocation of data stored at a storage device of a storage system | |
US11614880B2 (en) | Storage system with selectable write paths | |
US20220217049A1 (en) | Path Management For Container Clusters That Access Persistent Storage | |
US20220083235A1 (en) | Programming frequently read data to low latency portions of a solid-state storage array | |
US10572175B2 (en) | Method and apparatus of shared storage between multiple cloud environments | |
US11579790B1 (en) | Servicing input/output (‘I/O’) operations during data migration | |
US11275509B1 (en) | Intelligently sizing high latency I/O requests in a storage environment | |
US20210208783A1 (en) | Dynamically selecting segment heights in a heterogeneous raid group | |
WO2019047026A1 (zh) | 数据迁移的方法、系统及智能网卡 | |
US10671439B1 (en) | Workload planning with quality-of-service (‘QOS’) integration | |
US11477280B1 (en) | Integrating cloud storage services | |
US10671494B1 (en) | Consistent selection of replicated datasets during storage system recovery | |
US11762764B1 (en) | Writing data in a storage system that includes a first type of storage device and a second type of storage device | |
US20240354015A1 (en) | Dynamic reserve capacity in storage systems |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |