CN104603739B - 对并行存储的块级访问 - Google Patents
对并行存储的块级访问 Download PDFInfo
- Publication number
- CN104603739B CN104603739B CN201380045740.0A CN201380045740A CN104603739B CN 104603739 B CN104603739 B CN 104603739B CN 201380045740 A CN201380045740 A CN 201380045740A CN 104603739 B CN104603739 B CN 104603739B
- Authority
- CN
- China
- Prior art keywords
- block
- file
- input
- memory node
- data
- 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
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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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]
Abstract
本公开涉及用于将与远程文件数据相关联的块级输入/输出并行化的一个或多个并行存储组件。基于映射方案,文件数据被划分成多个块,其中各个块大小可相等。并行存储的转换器组件可以确定多个块与多个存储节点之间的映射,使得多个块的至少一部分可被并行访问。这样的映射例如可将每一个块置于不同的存储节点中,从而允许多个块被同时且以其整体来被检索。
Description
背景
企业需要针对它们的日益增长的信息和计算需求的新颖解决方案。常规企业级计算系统采用瘦客户机,这严重依赖于麻烦的多层硬件基础结构(例如,服务器)来完成传统的计算机功能性。瘦客户机与被设计成在本地执行计算的传统计算机形成对比。最常见类型的现代瘦客户机是能够向最终用户提供图形用户界面但不提供很多其他的低端计算机终端。其余功能性,尤其是操作系统,由服务器提供。这样的技术通常具有归因于实现分层联网体系结构(例如,本地接入网(LAN))的等待时间以及昂贵的计算成本的负担。
其他计算技术从传统联网/存储体系结构过渡到扁平体系结构。对于大型数据中心,例如,常见的分层联网体系结构由于高等待时间成本和复杂的软件而不再适于大型数据中心。典型的扁平体系结构(例如,微软Flat Datacenter Storage)被并行化(表示从分层体系结构的主要转移),并跨交换以太网结构来互连虚拟机和虚拟存储卷。一些现有扁平体系结构将虚拟存储卷分布在各节点上,其中数据被存储在这些节点上且在某一时刻通过网络传送以在别处处理。其他体系结构被配置成在本地访问所存储的数据并将计算任务分布在各计算节点之间,以避免通过网络传送数据。
尽管扁平体系结构提供了许多益处,但企业级计算系统与大型数据中心不同,呈现了没有被当前技术满足的不同需求集合。例如,这样的系统需要满足不同的最终用户性能标准(例如,更严格水平的可接受性能和最终用户满意度)。当前趋势指示企业级计算系统往往受传统分层体系结构的刚性的限制且正朝着实现扁平体系结构来转移。因为这样的扁平体系结构是针对大型数据中心来设计的,所以本机接口不适用于所存储的数据与最终用户计算设备之间的块级输入/输出。
概述
提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些代表性概念的选集。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。
简言之,本文描述的主题的各方面涉及为企业级计算系统实现块级输入/输出功能性,并且因此向最终用户计算设备提供对并行存储的块级访问。在一个方面,并行存储可以与如下扁平体系结构相对应:该扁平体系结构使现有软件程序具有以等于或大于与本地存储相关联的平均数据传输率的速率对所存储的数据的读/写访问。
在一个方面,并行存储的转换器组件将文件数据划分成块。转换器组件可以使用映射方案来将文件数据的各块分派给存储节点内的块级地址/位置。基于这些位置,在处理输入/输出操作时,转换器组件可以并行访问这些块中的一个或多个。在一个方面,输入/输出操作可被定向到虚拟存储区,其中相邻分区映射到与存储节点相关联的地址空间内的不相邻的块级地址。因此,转换器组件可并发地检索各相邻部分中的至少一部分。
在另一方面,在最终用户计算设备上运行的接口组件可以与操作系统对接。接口组件可以访问块级地址以寻找二进制大对象内的字节序列。在软件程序发起定向到该字节序列的文件系统输入/输出操作时,操作系统使用接口组件来将这些操作转换成块级、并行的输入/输出操作。接口组件可以通过数据网络将块级、并行的输入/输出操作传递给存储机制。
结合附图阅读以下具体实施方式,本发明的其他优点会变得显而易见。
附图说明
作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:
图1是根据一个示例实现的示出用于提供对来自并行存储的文件数据的块级访问的示例系统的框图。
图2是根据一个示例实现的示出用于并行存储访问的示例体系结构的框图。
图3是根据一个示例实现的用于虚拟存储区的示例映射方案的表示。
图4是根据一个示例实现的示出用于提供对文件数据的块级访问的示例步骤的流程图。
图5是根据一个示例实现的示出用于将定向到文件数据的输入/输出并行化的示例步骤的流程图。
图6是表示示例性非限制联网环境的框图,其中可实现本文所描述的各种实施例。
图7是表示示例性非限制计算系统或运行环境的框图,其中可实现本文所描述各种实施例的一个或多个方面。
具体实施方式
本文描述的技术的各方面一般涉及向计算设备提供对所存储的文件数据的并行化块级访问的一个或多个并行存储组件。在一个示例实现中,计算设备发起定向到文件级地址(例如,字节序列位置)的文件级输入/输出。一个并行存储组件将这些地址转换成块级地址,以将文件级输入/输出作为块级输入/输出来处理。并行存储组件可通过返回所请求的数据(例如,响应于读操作)和/或已完成输入/输出的通知(例如,响应于写操作或转储清除操作)来进行响应。
如本文所描述的,示例并行存储组件可以支持商用软件程序,如未经修改的(例如,桌面)软件应用和其他现有软件/硬件组件(例如,操作系统组件)。在并行存储组件将本地地址空间覆盖在多个盘的对应块位置上之后,本地文件系统驱动程序可指令该示例并行存储组件在所存储的远程文件数据上执行并行化块级输入/输出。另一示例并行存储组件可以允许联网的计算设备将已知文件系统驱动程序(如二进制大对象(BLOB)存储上的现有POSIX文件系统)装载在并行存储上,同时实现改进的输入/输出性能。
其他并行存储组件(在本文中也可被称为存储设备驱动程序)可以生成盘接口,如串行ATA(SATA),商用软件程序通过该盘接口可传递定向到远程盘的文件级输入/输出。文件系统驱动程序或另一操作系统组件可以传递文件级输入/输出操作,请求从虚拟存储区(例如,虚拟硬盘文件)读取数据和/或向虚拟存储区写入数据。一个或多个并行存储组件可以将该文件级输入/输出操作转换成并行化块级输入/输出操作,以供跨多个存储节点执行。
经由该一个或多个并行存储组件,操作系统组件可以使用虚拟存储区来对计算设备(如物理计算机或虚拟机)进行网络引导。该一个或多个并行存储组件可通过使用因特网小型计算机系统接口(iSCSI)或以太网ATA(AoE)获取一个或多个操作系统组件并随后装载虚拟存储区以访问应用程序二进制文件和个人用户数据来进行网络引导。另一示例实现可以采用微软Windows预安装环境(WinPETM)的经修改版本。
并行存储一般指的是其中数据存储/检索任务并发地分布在各存储节点之间并被执行的体系结构。示例并行存储体系结构将计算设备的全对分带宽网络与统计上多路复用的盘组合在一起,使得与本地盘相比,块级输入/输出实现相同或更好的传输率。计算设备(例如,台式计算机)和统计上多路复用的盘可占据同一地理区域或物理地点(例如,校园)。为了示出一个示例实施例,办公建筑或任何等效结构形成物理边界,在该物理边界内,计算设备和统计上多路复用的盘基本上共处一处。这样的体系结构可造成计算设备的改进的吞吐量或等待时间。在另一示例实施例中,并行存储可以指配置成为(例如,台式)计算机群(通常是围绕结构(例如,部门)和/或功能边界来形成的)实现细粒度、并行化输入/输出的体系结构。
并行存储的一个实施例可以指基于二进制大对象(BLOB)的存储系统,如本文描述的微软扁平数据中心存储(FDS),其中远程盘用作其他计算设备的本地存储。一个或多个并行存储组件可以将包括虚拟存储区和映射方案的逻辑字节序列转换成表示存储节点内的各单独块位置的地址空间。该一个或多个并行存储组件可以基于该地址空间将与虚拟存储区相关联的文件级地址转换成块级地址。使用这些块级地址,该一个或多个并行存储组件可以生成包括与文件级输入/输出操作相对应的兼容BLOB存储命令的并行化块级输入/输出操作。该一个或多个并行存储组件可以指令存储节点在远程盘上并发地执行BLOB存储命令。
应当理解,本文中的任何示例均是非限制的。因此,本发明不限制于在此描述的任何具体的实施例、方面、概念、结构、功能或示例。相反,这里所描述的任何一个实施例、方面、概念、结构、功能或示例都是非限制性的,且本发明可以按一般而言在计算、数据存储和企业级计算方面提供好处和优点的各种方式来使用。
图1是根据一个示例实现的示出用于提供对来自并行存储的文件数据的块级访问的示例系统的框图。在该示例系统内,多个计算设备1021…N(此后称为多个计算设备102)可以发起定向到并行化存储子系统(本文称为存储机制104)的文件级输入/输出。经由数据网络106,存储机制104可以响应于本文描述的并行化输入/输出来查询一个或多个存储节点并返回一个或多个文件数据块。可以明白,文件数据可以是与计算设备102相同或不同地点处的非本地存储的/远程文件数据。
如本文所描述的,并行存储指的是使计算设备102之一处的本地处理器(CPU)能够以与本地盘相同的吞吐量或更高的吞吐量来访问任何远程盘中的数据的体系结构。这样的体系结构可被配置来用于建筑物范围的部署,其中台式计算机和远程盘共同处于物理边界内且彼此通信地耦合。通过也被限制在该建筑物之内的全对分带宽网络,各并行存储组件以等于或大于本地存储的速率来管理对数据的同时读/写和/或其他文件系统操作(例如,转储清除操作)。
微软扁平数据中心存储(FDS)是这样的体系结构的示例实施例,并且一般指并行化的基于二进制大对象(BLOB)的存储系统。这样的并行存储组件可为例如现有POSIX文件系统在本机BLOB接口上实现在多个远程盘(例如,物理硬盘)上的块级接口。该并行存储体系结构允许计算设备1021的操作系统例如将POSIX文件系统以增强的性能来装载在FDS二进制大对象(BLOB)存储上。
根据一个示例实现,一个或多个并行存储组件处理并行化块级输入/输出。如下所述,示例组件包括接口组件108、转换器组件110和/或其他软件组件。接口组件108包括配置成支持计算设备102(如计算设备1021)的一个或多个软件程序。一个示例软件程序包括将文件级地址转换成块级地址的设备驱动程序。示例块级地址指的是可被并行访问的存储节点集合内的一个或多个离散位置。转换器组件110因此指令另一软件程序(如网络协议代理112)从这些位置中并发地检索对应的文件数据块,并随后将这些块提供给接口组件108。
转换器组件110可被配置成将文件数据划分成多个块并将块级地址映射到该多个数据块。转换器组件110将每一映射记录在文件数据表示114中,根据一个示例实现,这可被接口组件108用来处理计算设备1021发起的并行化输入/输出。文件数据表示114将块级地址与本地文件系统地址空间进行相关,使得文件系统表示112可由本地文件系统驱动程序装载,从而允许未经修改的桌面应用发起文件级输入/输出。
数据网络106可实现将多个计算设备102与存储机制104通信耦合的全对分带宽网络。根据一个示例实现,数据网络106可提供从远程盘到处理器(CPU)的基本上无拥塞的路径,通过该路径,存储机制104以基本上相等的吞吐量向多个计算设备102传递文件数据块。结果,图1所示的示例系统一般具有基本上等于或大于使用本地存储的台式计算机等的数据传输率的聚集输入/输出(I/O)带宽。
通过监视某一时段期间的并行化输入/输出,接口组件108、转换器组件110和/或另一软件组件可以产生对这样的输入/输出的执行进行概括的各种统计信息(例如,与性能有关)。基于这些统计信息,转换器组件110可以修改文件数据的字节序列与对应于存储机制104的块位置之间的当前映射方案。作为示例,在与本地硬盘速率相比时,一些统计信息可指示带宽方面的不良性能。作为响应,转换器组件110可使用随机分派来代替确定性分派。或者,转换器组件110可增加块大小和/或以其他方式增加可用存储节点的数量,这可造成更多的并行数据读/写。
图2是根据一个示例实现的示出用于并行存储访问的示例体系结构的框图。为了将文件级输入/输出并行化,转换器组件110可包括配置成从存储节点204访问/检索所存储的文件数据和/或存储新文件数据的并行存储代码库202。存储节点204的一个示例实施例包括用于基于BLOB的存储系统的服务器(如本文所述,通常称为域(tract)服务器)的配置。
在计算设备(例如,台式计算机)中运行的操作系统使用称为文件系统驱动程序206的软件程序来发起文件级输入/输出操作。进而,文件系统驱动程序206调用存储设备驱动程序208所提供的功能性来处理文件级输入/输出操作。一个示例实现可从共享210中访问标识存储节点204内的位置的地址信息,从这些位置处可并行访问/检索多个块。该地址信息例如指示该多个块与存储节点204之间的随机分派。这样的分派可造成在大小上很大和/或能够向设备驱动程序208并发地提供该多个块中的相当大一部分的存储节点群。
或者,该地址信息可指示存储节点204中的每一个被配置成存储该多个块的各非相邻对。这一类型的寻址可由于使各个块分布在更多存储节点之间而造成经改进的输入/输出带宽。这样的分布式放置使得增加数量的存储节点响应于输入/输出操作来同时服务毗连块序列。另一示例实现可涉及更确定性的寻址,其中基于数学技术,转换器组件110将各个块分派给存储节点内的位置。
在一个示例实现中,共享210可包括允许该示例体系结构(诸如并行化的、基于BLOB的存储体系结构)的用户模式与内核模式组件之间的零复制通信的共享存储器缓冲区。为了最小化与跨用户-内核边界交换数据相关的开销,该示例体系结构可以使用微软Windows高级本地过程调用(ALPC),这通常使用共享存储器页来启用零复制进程间通信(IPC)。在一个替换实现中,该示例体系结构可以采用IPC或输入输出控制(IOTCL)机制来在内核模式与用户模式之间交换数据。作为另一替换方案,该示例体系结构可以在内核模式中实现并行存储代码库202。
在软件应用发起文件系统操作时,文件系统驱动程序206将一个或多个输入/输出(I/O)请求分组(IRP)传递给存储设备驱动程序208该一个或多个分组被转发给转换器组件110,转换器组件110将文件系统操作转换成一个或多个对应的并行存储命令。关于读/写文件系统操作,转换器组件110可以使用并行存储代码库202来调用对合适的存储节点的相应读/写命令。经由存储设备驱动程序208,转换器组件110可将来自这样的存储节点的任何响应中继到文件系统驱动程序206。例如,存储设备驱动程序208可以在所有读/写命令成功完成之后传递文件系统操作的完成通知。
该并行存储体系结构可以实现异步消息收发协议,以在存储节点204、文件系统驱动程序206、存储设备驱动程序208以及转换器组件110之间高效地交换数据。转换器组件110是多线程安全的,且通过并行地发出多个块级读/写命令来最大化吞吐量。作为一个选项,文件系统驱动程序206还可向转换器组件110发出转储清除命令。转储清除命令一般指令存储设备驱动程序208和转换器组件110在处理新操作之前完成任何未完成的输入/输出操作。在各转储清除命令之间,转换器组件110将多个输入/输出操作维持“在进行中”,但如果文件系统驱动程序206向重叠的字节范围发出输入/输出操作,则转换器组件110可以将这些操作排序以维护可串行化性。
根据一个示例实现,经由存储设备驱动程序208,转换器组件110可以禁用转储清除(文件系统)操作以改进性能。甚至在启用这样的转储清除操作的情况下,文件系统驱动程序也仍然可在多个计算设备上的桌面软件应用发出多个同时I/O请求以访问文件数据时积极地预取数据。这些计算设备可包括台式计算机、膝上型计算机、移动设备、平板,等等。
存储节点204中的每一个可包括数据网络适配器(例如,网络接口卡,如10(十)GB/s NIC)和原始硬盘。存储节点204(有时称为专用域服务器)可以远离台式计算机或与台式计算机处于同一地点。每一域服务器可实例化为单个盘的逻辑网络前端。具有多个盘的机器可每个盘维护一个域服务器。存储机制可将每一存储节点配置为具有基本上等于或大于每盘的可用存储带宽的网络带宽能力。如果例如SAS盘具有约120兆字节/秒(或约1千兆比特/秒)的读性能,则在一个实现中,向存储节点提供至少1千兆比特/秒的网络带宽。
图3是根据一个示例实现的用于虚拟存储区的示例映射方案的表示。要理解,该示例映射方案是本公开中描述的实施例所预想的但不受本公开所描述的实施例限制的多个其他映射方案中的映射方案。该示例映射方案可被配置成将虚拟存储区内的字节偏移转换成存储节点群地址空间内的块偏移。还要理解,虚拟硬盘构成可在其上执行并行化输入/输出操作的虚拟存储区的一个示例。另外,该示例映射方案可被适用于其他虚拟存储技术。
如图3所示,多个存储节点可被配置成将与虚拟存储区相关的文件数据保持在非易失性存储器中。文件数据可被划分成多个块,其中块0到块11可表示其一部分。该多个块共同表示虚拟存储区,并且可作为逻辑字节序列来被寻址。该多个块可被进一步划分成各组块,其中每一组涉及虚拟存储区内的毗连地址空间。在每一组内,每一个块被映射到存储节点群中的不同存储节点中的特定位置(例如,逻辑地址或索引)。
图3所示的示例映射方案包括形成被配置成针对该多个块中的块0到块11执行嵌套分拆的示例存储节点群的存储节点302、304、306以及308。响应于输入/输出操作,该示例存储群可被配置成并行地写/读与四个块的毗连序列相关联的数据。该多个块中的其他块可由其他存储节点来分拆。根据一个示例实现,该示例存储节点群是其中每一存储节点群也包括四个存储节点的多个存储节点群(例如,在本文中,这样的存储节点群可被称为段)之一。
如进一步示出的,示例第一组块可包括包含块0、块1、块2、以及块3的毗连块序列,其中每一个块映射到存储节点中的相应一个的第一位置,例如块0映射到存储节点302的第一位置,块1映射到存储节点304的第一位置,块2映射到存储节点306的第一位置,以及块3映射到存储节点308的第一位置。与存储节点相关联的各软件/硬件组件(例如,图1的存储机制104)可以将每一个块并行写入每一存储节点处的第一位置并且记录对应的块级地址。
示例第二组块可包括包含块4、块5、块6以及块7的毗连块序列,其中每一个块映射到存储节点302、304、306以及308中的相应一个的第二位置。在将该示例第二组块写入所映射的第二位置之后,针对这些块中的每一个来记录另一对应的块级地址。响应于请求该示例第二组块的输入/输出操作,存储节点302、304、306以及308可将块4、块5、块6以及块7并行地分别传送到与该虚拟存储区相关联的计算设备。
块级地址的示例实现可被表示为存储节点标识符和块标识符。例如,块1可映射到包括存储节点304的GUID和存储节点304内的第一位置的索引号(例如,索引=零(0))的地址。块2可映射到包括存储节点306的GUID和(与块1类似)该节点内的第一位置的索引号(例如,索引=零(0))的地址。作为另一示例,块4的块级地址可包括存储节点302的GUID和该节点内的第二位置的索引号(例如,索引=一(1))。作为又一示例,块11的块级地址可包括存储节点308的GUID和与最后位置相对应的索引(例如,索引=二(2))。
因为第一组块被划分在不同的存储节点之间,所以存储机制可从存储节点302、存储节点304、存储节点306以及存储节点308并行地检索每一对应的块,和/或以等于或大于预定速率的数据传输率将第一组块流传输到计算设备。这样的预定速率的示例可以是来自本地存储设备(诸如硬盘)的标准传输速率。预定速率可在某些条件下被调整,包括变化的客户需求、负载平衡、资源可用性,等等。
在一个示例实施例中,虚拟存储区在逻辑上被存储在微软BLOB(例如,与128位GUID相关联的任何长度的字节序列)中。在处理BLOB级输入/输出时,存储机制可以将数据作为域来读/写,其中每一个域可指的是BLOB内预定义数量的字节(例如,范围从八(8)MB到四(4)KB(4096字节))。每一个域可按以零(0)开始的顺序次序来被索引,它也可用作域定位符/标识符或其一部分。一个示例域定位符/标识符可被计算为BLOB GUID(例如,128位BLOBGUID)与域标识符(例如,64位域号)的总和对域总数取模。因而,该示例映射方案的合适的块级地址可包括BLOB GUID、域标识符以及域内的块索引的某一数学组合。如图3所示,例如,块4映射到使用至少存储节点302的块标识符和块索引一(1)来生成的块级地址。
映射方案的一个示例实现(在本文中它被称为嵌套分拆)可以提供线性字节范围与域之间的块级寻址。该映射方案可以将段大小定义为一个或多个域的逻辑群。因此,N字节的段包括N字节的线性字节范围的经分拆的文件数据。修改段大小可影响用于顺序和/或随机输入/输出工作负荷的盘并行功能性。如图3所示,四(4)个域的段大小使得顺序输入/输出被分布在两个盘上。要明白,其他实现可以使用其他段大小(例如,128个域的段大小)。
在每一个段内,该示例映射方案可使用提供宽分拆的可配置的块大小写入(例如,分拆)线性字节范围,同时摊销在盘写入期间的搜寻等待时间和转动延迟。例如,一百二十八(128)KB的块大小可能是合适的。作为附加约束,根据一个示例实现,该示例映射方案可以指导存储机制存储每一个块,使得它基本上适合在单个域内。该示例映射方案可以定义存储用于各种场景的不同映射方案的访问简档。例如,相对于计算资源和性能保证而言,在企业中可向一个部门(例如,研发)给予高于另一部门(例如,人力资源)的优先级。
该示例映射方案可以定义被配置成提供高吞吐量和快速数据恢复的域大小。一个示例实现可以将域大小配置成显著大于块大小,如微软NTFS块大小(例如,四(4)到六十四(64)KB)。根据这样的方案,分派多个块可只将一个块存储在每一存储节点中。因此,在被请求时,存储机制可并发地检索/写入该多个块的至少一部分。
并行存储组件(例如,图1的转换器组件110)可以在处理定向到该示例存储节点群的将来输入/输出之前,修改该示例映射方案,如本文所述。一个示例实现响应于与存储节点302、304、306和308相关联的性能相关的统计信息来细调该示例映射方案。根据另一示例实现,并行存储组件修改该示例映射方案以针对各计算设备启用各级输入/输出并行化。
图4是根据一个示例实现的示出用于提供对并行存储内的文件数据的块级访问的示例步骤的流程图。各示例步骤中的一个或多个可由一个或多个存储机制组件(例如,存储机制104的转换器组件110和/或网络协议代理112)来执行。各示例步骤在步骤402处开始且进至步骤404,在此,处理文件数据的映射方案。
步骤406使用该映射方案来将虚拟存储区划分成多个块。根据一个示例实现,该映射方案可以规定标准块大小,使得顺序输入/输出被基本上并行地执行。该映射方案另外可根据标准块大小来定义域大小。作为示例,转换器组件可以将存储节点配置成向计算设备内的接口组件(例如,图1的接口组件108)服务虚拟存储区的十六(16)个非毗连块。
下式描绘确定性寻址来作为用于将虚拟存储区偏移(例如,块偏移/索引)转换成域标识符和域偏移的示例映射方案。
式(1)确定以字节为单位的段的总大小,并且计算盘偏移与总大小之间的余数X。余数X被基于块大小从字节转换成块。因而,总段大小(以字节为单位)还表示用于在范围在至少段大小与总块数之间的数目内的不同域之间划分毗连地址空间的总块数。式(2)使用余数X来计算索引,称为域ID或域标识符,该域存储盘偏移处的块。式(3)可以使用余数X来计算与关联于域Id的域内的块位置相对应的偏移,称为域偏移。因此,始于盘偏移的字节序列映射到包括域Id和域偏移的块级地址。
步骤408指的是将多个块映射到由一个或多个存储节点管理的域内的位置。位置可被随机或确定性地分派给每一个块。转换器组件的一个示例实现可以使用该映射方案来将该多个块划分成各组,其中每一组包括毗连块范围并且与同一域偏移但与不同域相对应。结果,每一个域可以存储虚拟存储区的每第N个块,其中N指的是域索引。并行地访问各个域促进计算设备与存储节点之间的整个范围的输入/输出。
步骤410涉及提供针对与多个块相对应的位置的地址信息。步骤412表示并行访问虚拟存储区的两个或更多个部分。在一个示例实现中,一个或多个存储节点可以将相应部分之一同时或接近同时地写入非易失性存储器。每一个部分可被存储在对应存储节点内的一位置处,对应存储节点促进该两个或更多个部分从该一个或多个存储节点的并发检索。作为示例,如果每一存储节点在一个周期期间能够服务八(8)个块,则每一个部分包括虚拟存储区的八(8)个块。
在一个示例实现中,存储机制暴露虚拟SATA盘,一个或多个用户模式软件程序可向其传递输入/输出操作。存储机制可以将虚拟SATA盘的各部分分派给单独的域。因而,虚拟SATA盘中的每一个块(例如,一个或多个字节)是使用域标识符和域内的偏移(例如,索引)来寻址的。未经修改的文件系统驱动程序(例如,NTFS、ext3或任何其他兼容的文件系统)可以装载虚拟SATA盘并利用驱动程序(例如,虚拟盘驱动程序)来在所存储的文件数据上发起文件系统操作(例如,读和/或写操作)。然而,从文件系统驱动程序的观点看,虚拟SATA盘导出线性地址空间(例如,字节范围)。步骤414结束图4中所描绘的示例步骤。
图5是根据一个示例实现的示出用于将涉及文件数据的输入/输出并行化的示例步骤的流程图。各示例步骤中的一个或多个可由一个或多个并行存储组件(例如,图1的接口组件108、转换器组件110和/或网络协议代理112)来执行。各示例步骤在步骤502处开始且进至步骤504,在此,文件数据的表示被检索并提供给操作系统组件。
这样的文件数据表示可以捕捉涵盖该文件数据的字节序列的地址空间。该地址空间可将字节序列位置关联到一个或多个域内的块级地址。一个或多个并行存储组件可以将文件数据表示配置成兼容文件系统,使得操作系统组件(例如,文件系统驱动程序)可以代表软件程序发起文件级输入/输出。经由文件数据表示,一个或多个并行存储组件可以将文件级输入/输出转换成并行化的块级输入/输出,并随后如本文所述地执行。
根据一个示例实施例,虚拟存储区可将文件数据维持在至少一个机器(例如,虚拟机、物理机、和/或类似机器)的一个或多个存储卷内。使用并行存储组件之一,一个操作系统组件可以装载虚拟存储区并将在最终用户计算设备上运行的本地软件程序暴露给该一个或多个存储卷。作为一个选项,另一操作系统组件可以(直接)从虚拟存储区中对虚拟机进行网络引导。虚拟机可通过运行各种软件程序(包括操作系统)并提供对存储卷的读/写访问来担当最终用户计算设备。并行存储组件之一可以生成接口,通过该接口,这些软件程序(例如,另一操作系统组件)传递定向到文件数据的输入/输出请求。
步骤506处理文件级输入/输出请求并确定数据要被写到并行存储还是要从并行存储中检索。如果输入/输出请求指的是写操作,则步骤506进至步骤508。在一个示例实现中,写操作可以是包括多个写操作的转储清除操作的一部分。如果输入/输出请求指示读操作,则步骤506进至步骤512。
步骤508和510涉及以块级粒度来处理写操作。步骤508指的是将字节序列位置转换成块级地址。每一个块可包括预定义数量的字节(例如,4KB)。每一个块级地址可包括域标识符和与称为域服务器的存储节点中的特定块相对应的块索引。作为示例,字节序列的每一个块使用相关字节序列号与可访问的域的数量之间计算得到的余数来被分派到域标识符。映射到域服务器之一(由域标识符来表示)的一个或多个块可以形成字节序列部分。字节序列部分可被选择,使得字节序列内的毗连数量的块可从各域服务器并行地访问。因此,这些块位于沿字节序列的相等间隔处。或者,字节序列部分可包括一个或多个随机选择的块。
在标识并定位与域标识符相关联的域服务器之后,步骤510将字节序列连同指令传递给域服务器,以将相应字节序列部分并行地存储在对应的块级地址处。域服务器进而将字节序列部分同时或接近同时地写入所分派的域。字节序列部分可使用并行的基于BLOB的存储指令来通过网络传送。步骤510随后进至步骤516,其中输入/输出请求被完成。在一个示例实现中,一个或多个并行存储组件可传递通知,对写操作的成功完成进行确认。
步骤512和514涉及以块级粒度来处理读操作。步骤512表示基于文件数据表示将字节序列位置转换成块级地址,其中每一这样的地址包括域标识符和块索引。这些字节序列位置可从与读操作相关联的输入/输出请求中提取。每一域标识符指的是用于维护所请求的字节序列的特定域服务器。步骤514标识并访问对应域服务器,域服务器通过经由网络并行地传送所请求的字节序列来响应。步骤516通过指示读操作的成功执行来完成输入/输出请求。步骤518结束图5中所描绘的示例步骤。
示例性联网以及分布式环境
本领域技术人员可以理解,此处描述的各实施例和方法可结合任何计算机或其它客户机或服务器设备来实现,其可被部署为计算机网络的部分或在分布式计算环境中,并且可以被连接到任何类型一个或多个数据存储。在这一点上,此处描述的各实施例可在具有任何数量的存储器或存储单元的、并且任何数量的应用和进程跨任何数量的存储单元发生的任何计算机系统或环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户计算机的环境。
分布式计算通过计算设备和系统之间的通信交换来提供计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件之类的对象的高速缓存存储和盘存储。这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化等等。分布式计算利用网络连接,从而允许客户机利用其集体力量来使整个企业受益。就此,各种设备可具有可如参考本发明的各实施例描述地参与资源管理机制的应用、对象或资源。
图6提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象610、612等以及计算对象或设备620、622、624、626、628等,这些计算对象或设备可包括如由示例应用630、632、634、636、638表示的程序、方法、数据存储、可编程逻辑等。可以理解,计算对象610、612等以及计算对象或设备620、622、624、626、628等可包括不同的设备,诸如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。
每个计算对象610、612等以及计算对象或设备620、622、624、626、628等可经由通信网络640直接或间接地与一个或多个其他计算对象610、612等以及计算对象或设备620、622、624、626、628等通信。尽管在图6中被示为单个元件,但通信网络640可包括向图6的系统提供服务的其他计算对象和计算设备和/或可表示未示出的多个互连网络。每个计算对象610、612等或计算对象或设备620、622、624、626、628等还可以包含应用,诸如可以利用API或其他对象、软件、固件和/或硬件的、适于根据本发明的各实施例所提供的应用实现与其进行通信的应用630、632、634、636、638。
存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构都可用于便于与如各实施例中所描述的系统的示例性通信。
由此,可使用诸如客户机/服务器、对等、或混合体系结构之类的网络拓扑结构和网络基础结构的主机。“客户机”是使用与其无关的另一类或组的服务的一类或组中的成员。客户机可以是进程,例如,大致上是请求另一程序或进程所提供的服务的一组指令或任务。客户机进程使用所请求的服务,而无需“知道”关于其他程序或服务本身的任何工作细节。
在客户机/服务器体系结构中,尤其在联网系统中,客户机通常是访问另一计算机(例如,服务器)所提供的共享网络资源的计算机。在图6的图示中,作为非限制性示例,计算对象或设备620、622、624、626、628等可被认为是客户机而计算对象610、612等可被认为是服务器,其中计算对象610、612等作为提供数据服务的服务器,诸如从客户机计算对象或设备620、622、624、626、628等接收数据、存储数据、处理数据、向客户机计算对象或设备620、622、624、626、628等发送数据,但任何计算机都可取决于环境而被认为是客户机、服务器、或两者。
服务器通常是可通过诸如因特网或无线网络基础架构之类的远程网络或本地网络访问的远程计算机系统。客户机进程可在第一计算机系统中活动,而服务器进程可在第二计算机系统中活动,它们通过通信介质相互通信,由此提供分布式功能性并允许多个客户机利用服务器的信息收集能力。
在通信网络640或总线是因特网的网络环境中,例如,计算对象610、612等可以是其他计算对象或设备620、622、624、626、628等经由诸如超文本传输协议(HTTP)之类的多种已知协议中的任一种与其通信的Web服务器。计算对象610、612等作为服务器还可用作例如计算对象或设备620、622、624、626、628等的客户机,这可以是如分布式计算环境的特性。
在另一网络环境中,通信网络640或总线是将计算对象610、612等与其他计算对象或设备620、622、624、626、628等进行互连的全对分电路交换网络。计算对象610、612等可经由多种已知协议(包括但不限于通过以太网的ATA(AoE)、因特网小型计算机系统接口(iSCSI)、通过以太网的光纤信道(FCoE)等)中的任一协议来与其他计算对象或设备620、622、624、626、628等进行通信。计算对象610、612等可对数据存储650执行与来自其他计算对象或设备620、622、624、626、628等的输入/输出请求相对应的兼容存储命令。
数据存储650可指的是并行存储,如本文所述,其中远程盘担当其他计算对象或设备620、622、624、626、628等的本地存储。计算对象610、612等作为一个或多个远程盘的前端来操作,并且将块级输入/输出并行化,使得数据被基本上并行地写入或读出。并行存储的一个实施例可以指的是基于二进制大对象(BLOB)的存储系统,如微软扁平数据中心存储(FDS),其中一个或多个并行存储组件将与虚拟存储区(例如,虚拟硬盘(文件))相对应的文件级地址转换成与数据存储650内的位置相对应的块级地址,并生成被同时执行的基于BLOB的存储命令。
在其他计算对象或设备620、622、624、626、628等上运行的操作系统组件可装载一个或多个并行存储组件,以实现对并行存储的块级访问并存储/检索虚拟存储区内的数据或其他文件数据。或者,经由一个或多个并行存储组件,操作系统组件还可使用虚拟存储区来对其他计算对象或设备620、622、624、626、628等或另一虚拟机进行网络引导。
示例计算设备
如上所述,有利地,本文所描述的技术可应用于任何设备。因此,应当理解,构想了结合各实施例使用的所有种类的手持式、便携式和其它计算设备和计算对象。因此,以下在图7中所述的通用远程计算机只是计算设备的一个示例。
各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使用和/或被包括在用于执行本文中所述的各实施例的一个或多个功能方面的应用软件内。软件可以在由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域的技术人员可以理解,计算机系统具有可用于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。
图7由此示出了其中可实现本文所述的各实施例的一个或多个方面的合适的计算系统环境700的一个示例,但如上所述,计算系统环境700仅为合适的计算环境的一个示例,并非对使用范围或功能性提出任何限制。此外,也不应当将计算系统环境700解释为对在示例性计算系统环境700中所示的组件中的任何一个或其组合有任何依赖。
参考图7,用于实现一个或多个实施例的示例性远程设备包括计算机710形式的通用计算设备。计算机710的组件可包括,但不限于,处理单元720、系统存储器730、以及将包括系统存储器在内的各种系统组件耦合到处理单元720的系统总线722。
计算机710通常包括各种计算机可读介质,并且可以是可由计算机710访问的任何可用介质。系统存储器730可包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,系统存储器730还可包括操作系统、应用程序、其他程序模块、以及程序数据。
用户可通过输入设备740向计算机710输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口750之类的接口连接到系统总线722。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他外围输出设备,它们可通过输出接口750连接。
计算机710可使用到一个或多个其他远程计算机(诸如远程计算机770)的逻辑连接在联网或分布式环境中操作。远程计算机770可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体消费或传输设备,并且可包括以上关于计算机710所述的任何或全部元件。图7所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)之类的网络772,但也可包括其他网络/总线。这些联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。
如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但基本概念可被应用于其中期望改进资源使用的效率的任何网络系统和任何计算设备或系统。
而且,存在实现相同或相似功能性的多种方法,例如适当的API、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用和服务能够使用本文中提供的技术。由此,本文中的各实施例从API(或其他软件对象)的观点以及从实现如本文中描述的一个或多个实施例的软件或硬件对象构想。由此,本文中所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。
本文中所使用的词语“示例性”意味着用作示例、实例、或说明。为避免疑惑,本文所公开的主题不限于这些示例。另外,在此所述的被描述为“示例性”的任意方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在当用于权利要求中时以类似于术语“包括”作为开放的过渡词的方式是包含性的而不排除任何附加或其他元素。
如所述的,本文中所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如本文中所使用的,术语“组件”、“模块”、“系统”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行件、执行的线程、程序、和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可位于一个计算机上和/或分布在两个或更多的计算机之间。
如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。另外,应注意到一个或多个组件可被组合成提供聚集功能性的单个组件,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能性。本文中所述的任何组件也可与一个或多个本文中未专门描述的但本领域技术人员一般已知的其他组件进行交互。
鉴于本文所述的示例系统,可根据参考各附图的流程图还可理解根据所述的主题来实现方法。尽管为了说明简洁起见,作为一系列框示出和描述的方法,但是应当理解,各实施例不仅仅限于框的次序,因为一些框可以与本文中所描绘和描述的框不同的次序发生和/或与其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达到相同或类似结果的各种其他分支、流程路径和框的次序。此外,某些示出的框在实现下文所述的方法中是可选的。
结语
尽管本发明易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。
除本文中所述的各实施例以外,应当理解,可使用其他类似实施例,或者可对所述实施例作出修改和添加以便执行对应实施例的相同或等效功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享本文中所述的一个或多个功能的性能,并且类似地,存储可跨多个设备实现。因此,本发明不应限于任何单个实施例,而是应当根据所附权利要求书的广度、精神和范围来解释。
Claims (10)
1.一种在计算环境中至少部分地在至少一个处理器上执行的方法,包括:
将与二进制大对象内的文件数据相关联的输入/输出操作并行化,多个存储节点与所述二进制大对象的各部分的并行存储相关联并且每一存储节点能在一个处理周期中提供所述二进制大对象的所述各部分中的一部分;
将所述文件数据划分成多个块;
将与所述多个块中的偏移相对应的文件级地址转换成与由每一存储节点提供的所述部分中的偏移相对应的块级地址;以及
在处理所述输入/输出操作时,使用所述块级地址来在所述处理周期内检索所述多个块。
2.如权利要求1所述的方法,其特征在于,进一步包括将所述多个块映射到所述多个存储节点提供的所述二进制大对象的所述各部分内的随机位置。
3.如权利要求1所述的方法,其特征在于,还包括以等于至少本地数据存储速率的速率将所述多个块传递到计算设备以及传递所述多个块来为计算设备恢复所述文件数据中的至少一者。
4.如权利要求1所述的方法,其特征在于,还包括生成包括所述多个块的块级地址的文件数据表示,以及将所述文件数据表示提供给使用所述文件数据表示来通过局域网发起文件系统操作的计算设备。
5.一种在计算环境中的系统,包括:
耦合到多个存储节点并能用于并行化与二进制大对象内的文件数据相关联的输入/输出操作的转换器组件,所述多个存储节点与所述二进制大对象的各部分的并行存储相关联并且每一存储节点能在一个处理周期中提供所述二进制大对象的所述各部分中的一部分,所述转换器组件进一步能将所述文件数据划分成多个块,将与所述多个块中的偏移相对应的文件级地址转换成与由每一存储节点提供的所述部分中的偏移相对应的块级地址,以及在处理所述输入/输出操作时,使用所述块级地址来在所述处理周期内检索所述多个块。
6.如权利要求5所述的系统,其特征在于,所述转换器组件还被配置成修改用于将虚拟存储区内的字节偏移转换成与所述多个存储节点相关联的地址空间内的块偏移的映射方案。
7.如权利要求5所述的系统,其特征在于,所述转换器组件还被配置成确定虚拟存储区的块大小以及由所述多个存储节点中的每一存储节点服务的域的数量,以及计算域标识符和针对每一虚拟存储区偏移的域偏移,其中所述转换器组件将所述域标识符和所述域偏移进行组合以生成块级地址的至少一部分。
8.如权利要求5所述的系统,其特征在于,还包括在物理边界内通信耦合到所述多个存储节点的多个计算设备,其中所述多个计算设备和所述多个存储节点通过全对分带宽网络来传递数据。
9.一种对并行存储的块级访问方法,包括:
访问包括与包含文件数据的字节序列相对应的二进制大对象内的块级地址的文件数据表示;
处理定向到与所述字节序列相关联的文件数据的文件系统输入/输出操作,包括将文件级输入/输出操作转换成并行化的块级输入/输出操作;
将所述并行化的块级输入/输出操作传递给与所述二进制大对象的各部分的并行存储相关联的一个或多个存储节点,每一存储节点能在一个处理周期中提供所述二进制大对象的所述各部分中的一部分;以及
向所述一个或多个存储节点提供接口,其中文件系统驱动程序使用所述接口来对计算设备进行网络引导或在所述二进制大对象内的虚拟存储区上装载文件系统,并代表在所述计算设备上运行的未经修改的软件应用来发起所述文件级输入/输出操作。
10.如权利要求9所述的方法,其特征在于,还包括:
使用与所述虚拟存储区相关联的块级地址来检索至少一个毗连字节序列;以及
使用所述至少一个毗连字节序列来恢复所述虚拟存储区。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/598,990 US9778856B2 (en) | 2012-08-30 | 2012-08-30 | Block-level access to parallel storage |
US13/598,990 | 2012-08-30 | ||
PCT/US2013/056070 WO2014035772A1 (en) | 2012-08-30 | 2013-08-22 | Block-level access to parallel storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104603739A CN104603739A (zh) | 2015-05-06 |
CN104603739B true CN104603739B (zh) | 2018-02-16 |
Family
ID=49118791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380045740.0A Active CN104603739B (zh) | 2012-08-30 | 2013-08-22 | 对并行存储的块级访问 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9778856B2 (zh) |
EP (1) | EP2891051B1 (zh) |
CN (1) | CN104603739B (zh) |
WO (1) | WO2014035772A1 (zh) |
Families Citing this family (165)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US9825932B2 (en) * | 2013-01-09 | 2017-11-21 | Qatar Foundation | Storage system and method of storing and managing data |
US9110965B1 (en) * | 2013-03-06 | 2015-08-18 | Symantec Corporation | Systems and methods for disaster recovery from binary large objects |
US9686171B1 (en) * | 2013-07-22 | 2017-06-20 | Veritas Technologies | Systems and methods for attributing input/output statistics networks to region-mapped entities |
US11422907B2 (en) | 2013-08-19 | 2022-08-23 | Microsoft Technology Licensing, Llc | Disconnected operation for systems utilizing cloud storage |
US9798631B2 (en) | 2014-02-04 | 2017-10-24 | Microsoft Technology Licensing, Llc | Block storage by decoupling ordering from durability |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US8850108B1 (en) | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US9213485B1 (en) * | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US9612952B2 (en) | 2014-06-04 | 2017-04-04 | Pure Storage, Inc. | Automatically reconfiguring a storage memory topology |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US11249858B2 (en) | 2014-08-06 | 2022-02-15 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US9852026B2 (en) | 2014-08-06 | 2017-12-26 | Commvault Systems, Inc. | Efficient application recovery in an information management system based on a pseudo-storage-device driver |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
US9948615B1 (en) | 2015-03-16 | 2018-04-17 | Pure Storage, Inc. | Increased storage unit encryption based on loss of trust |
KR102051197B1 (ko) * | 2015-03-20 | 2019-12-02 | 미디어텍 싱가폴 피티이. 엘티디. | 비디오 코딩에서의 인터 예측으로의 팔레트 코딩 방법 |
US11294893B2 (en) | 2015-03-20 | 2022-04-05 | Pure Storage, Inc. | Aggregation of queries |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
US10037369B1 (en) * | 2015-06-26 | 2018-07-31 | EMC IP Holding Company LLC | Storage tiering in replication target based on logical extents |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US11232079B2 (en) | 2015-07-16 | 2022-01-25 | Pure Storage, Inc. | Efficient distribution of large directories |
US9766825B2 (en) | 2015-07-22 | 2017-09-19 | Commvault Systems, Inc. | Browse and restore for block-level backups |
CN106484626B (zh) * | 2015-08-31 | 2019-11-26 | 华为技术有限公司 | 内存访问的方法、系统及本地节点 |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US20170169049A1 (en) * | 2015-12-15 | 2017-06-15 | Microsoft Technology Licensing, Llc | Staging Log-Based Page Blobs on a Filesystem |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US20170220592A1 (en) * | 2016-02-01 | 2017-08-03 | Microsoft Technology Licensing, Llc | Modular data operations system |
US10296368B2 (en) | 2016-03-09 | 2019-05-21 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount) |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11120329B2 (en) | 2016-05-07 | 2021-09-14 | Intel Corporation | Multicast network and memory transfer optimizations for neural network hardware acceleration |
US11113247B1 (en) * | 2016-05-10 | 2021-09-07 | Veritas Technologies Llc | Routing I/O requests to improve read/write concurrency |
US11231858B2 (en) | 2016-05-19 | 2022-01-25 | Pure Storage, Inc. | Dynamically configuring a storage system to facilitate independent scaling of resources |
US10691567B2 (en) | 2016-06-03 | 2020-06-23 | Pure Storage, Inc. | Dynamically forming a failure domain in a storage system that includes a plurality of blades |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US11706895B2 (en) | 2016-07-19 | 2023-07-18 | Pure Storage, Inc. | Independent scaling of compute resources and storage resources in a storage system |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US10216420B1 (en) | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
US11080155B2 (en) | 2016-07-24 | 2021-08-03 | Pure Storage, Inc. | Identifying error types among flash memory |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US10534667B2 (en) * | 2016-10-31 | 2020-01-14 | Vivint, Inc. | Segmented cloud storage |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11089100B2 (en) | 2017-01-12 | 2021-08-10 | Vivint, Inc. | Link-server caching |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US10979223B2 (en) | 2017-01-31 | 2021-04-13 | Pure Storage, Inc. | Separate encryption for a solid-state drive |
US10740193B2 (en) | 2017-02-27 | 2020-08-11 | Commvault Systems, Inc. | Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US11138103B1 (en) | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US10664352B2 (en) | 2017-06-14 | 2020-05-26 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
US10324652B2 (en) * | 2017-06-23 | 2019-06-18 | Netapp, Inc. | Methods for copy-free data migration across filesystems and devices thereof |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
CN111666043A (zh) * | 2017-11-03 | 2020-09-15 | 华为技术有限公司 | 一种数据存储方法及设备 |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10990566B1 (en) | 2017-11-20 | 2021-04-27 | Pure Storage, Inc. | Persistent file locks in a storage system |
US10929053B2 (en) | 2017-12-08 | 2021-02-23 | Pure Storage, Inc. | Safe destructive actions on drives |
US10719265B1 (en) | 2017-12-08 | 2020-07-21 | Pure Storage, Inc. | Centralized, quorum-aware handling of device reservation requests in a storage system |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
CN110109868B (zh) * | 2018-01-18 | 2023-07-18 | 伊姆西Ip控股有限责任公司 | 用于索引文件的方法、装置和计算机程序产品 |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US10768856B1 (en) * | 2018-03-12 | 2020-09-08 | Amazon Technologies, Inc. | Memory access for multiple circuit components |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
CN110881277A (zh) * | 2018-07-04 | 2020-03-13 | 华为技术有限公司 | 一种数据存储方法、装置及相关设备 |
US11438279B2 (en) | 2018-07-23 | 2022-09-06 | Pure Storage, Inc. | Non-disruptive conversion of a clustered service from single-chassis to multi-chassis |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US10454498B1 (en) | 2018-10-18 | 2019-10-22 | Pure Storage, Inc. | Fully pipelined hardware engine design for fast and efficient inline lossless data compression |
WO2020086605A1 (en) * | 2018-10-22 | 2020-04-30 | Affirmed Networks, Inc. | Distributed database-driven resource management and locking in a cloud native mobile core network node architecture |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
CN111324293B (zh) * | 2018-12-14 | 2022-08-05 | 杭州海康威视系统技术有限公司 | 一种存储系统、存储数据的方法、读取数据的方法及装置 |
US11409871B1 (en) * | 2019-03-22 | 2022-08-09 | Ca, Inc. | Universal tracing of side-channel processes in computing environments |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11221973B2 (en) * | 2019-12-20 | 2022-01-11 | Micron Technology, Inc. | Parallel iterator for machine learning frameworks |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11256587B2 (en) | 2020-04-17 | 2022-02-22 | Pure Storage, Inc. | Intelligent access to a storage device |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11755503B2 (en) | 2020-10-29 | 2023-09-12 | Storj Labs International Sezc | Persisting directory onto remote storage nodes and smart downloader/uploader based on speed of peers |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778384A (en) * | 1995-12-22 | 1998-07-07 | Sun Microsystems, Inc. | System and method for automounting and accessing remote file systems in Microsoft Windows in a networking environment |
CN1664791A (zh) * | 2004-03-05 | 2005-09-07 | 中国科学院计算技术研究所 | 一种虚拟存储模型及其方法 |
CN1975679A (zh) * | 2005-10-27 | 2007-06-06 | 国际商业机器公司 | 用于优化分段资源分配的方法和设备 |
CN102057366A (zh) * | 2008-06-12 | 2011-05-11 | 微软公司 | 分布式高速缓存安排 |
Family Cites Families (115)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4491945A (en) | 1982-06-25 | 1985-01-01 | At&T Bell Laboratories | Fast packet switch |
US4780870A (en) | 1986-09-05 | 1988-10-25 | American Telephone And Telegraph Company, At&T Bell Laboratories | Packet switch |
US4993030A (en) | 1988-04-22 | 1991-02-12 | Amdahl Corporation | File system for a plurality of storage classes |
US5854746A (en) | 1990-04-28 | 1998-12-29 | Kanebo, Ltd. | Flexible production and material resource planning system using sales information directly acquired from POS terminals |
US5305320A (en) | 1992-10-06 | 1994-04-19 | At&T Bell Laboratories | Peripheral communications network |
US5423046A (en) | 1992-12-17 | 1995-06-06 | International Business Machines Corporation | High capacity data storage system using disk array |
US5408649A (en) | 1993-04-30 | 1995-04-18 | Quotron Systems, Inc. | Distributed data access system including a plurality of database access processors with one-for-N redundancy |
US5446915A (en) * | 1993-05-25 | 1995-08-29 | Intel Corporation | Parallel processing system virtual connection method and apparatus with protection and flow control |
US5524110A (en) | 1993-11-24 | 1996-06-04 | Intel Corporation | Conferencing over multiple transports |
US6240384B1 (en) | 1995-12-04 | 2001-05-29 | Kabushiki Kaisha Toshiba | Speech synthesis method |
US5938732A (en) | 1996-12-09 | 1999-08-17 | Sun Microsystems, Inc. | Load balancing and failover of network services |
US5970232A (en) * | 1997-11-17 | 1999-10-19 | Cray Research, Inc. | Router table lookup mechanism |
US6230252B1 (en) * | 1997-11-17 | 2001-05-08 | Silicon Graphics, Inc. | Hybrid hypercube/torus architecture |
US6973455B1 (en) | 1999-03-03 | 2005-12-06 | Emc Corporation | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator |
US8428069B2 (en) | 1998-08-19 | 2013-04-23 | Wayne Richard Howe | Stealth packet switching |
US6424979B1 (en) | 1998-12-30 | 2002-07-23 | American Management Systems, Inc. | System for presenting and managing enterprise architectures |
US6577613B1 (en) | 1999-03-02 | 2003-06-10 | Verizon Corporate Services Group Inc. | Method and apparatus for asynchronous reservation-oriented multiple access for wireless networks |
US7774469B2 (en) | 1999-03-26 | 2010-08-10 | Massa Michael T | Consistent cluster operational data in a server cluster using a quorum of replicas |
US6850489B1 (en) | 1999-04-28 | 2005-02-01 | Matsushita Electric Industrial Co., Ltd. | Communication system to which multiple access control method is applied |
US6507834B1 (en) * | 1999-12-22 | 2003-01-14 | Ncr Corporation | Method and apparatus for parallel execution of SQL from stored procedures |
US7117273B1 (en) | 2000-01-25 | 2006-10-03 | Cisco Technology, Inc. | Methods and apparatus for maintaining a map of node relationships for a network |
US20080005275A1 (en) | 2000-06-02 | 2008-01-03 | Econnectix, Llc | Method and apparatus for managing location information in a network separate from the data to which the location information pertains |
US20060288080A1 (en) * | 2000-09-12 | 2006-12-21 | Ibrix, Inc. | Balanced computer architecture |
ATE381191T1 (de) * | 2000-10-26 | 2007-12-15 | Prismedia Networks Inc | Verfahren und system zur verwaltung von verteilten inhalten und entsprechenden metadaten |
US7240358B2 (en) | 2000-12-08 | 2007-07-03 | Digital Fountain, Inc. | Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources |
WO2002065275A1 (en) | 2001-01-11 | 2002-08-22 | Yottayotta, Inc. | Storage virtualization system and methods |
US7383288B2 (en) | 2001-01-11 | 2008-06-03 | Attune Systems, Inc. | Metadata based file switch and switched file system |
US20020174296A1 (en) | 2001-01-29 | 2002-11-21 | Ulrich Thomas R. | Disk replacement via hot swapping with variable parity |
US20020152293A1 (en) | 2001-01-31 | 2002-10-17 | Hahn Terry G. | Dynamic server directory for distributed computing system |
US20020194245A1 (en) | 2001-06-05 | 2002-12-19 | Simpson Shell S. | Job ticket service |
US7113993B1 (en) | 2001-06-20 | 2006-09-26 | Microstrategy, Inc. | Technique for handling server session requests in a system having a plurality of servers |
US20030084397A1 (en) | 2001-10-31 | 2003-05-01 | Exanet Co. | Apparatus and method for a distributed raid |
AUPR918001A0 (en) | 2001-11-30 | 2001-12-20 | Foursticks Pty Ltd | Credit based algorithm for traffic shaping |
US7180875B1 (en) | 2001-12-20 | 2007-02-20 | Meshnetworks, Inc. | System and method for performing macro-diversity selection and distribution of routes for routing data packets in Ad-Hoc networks |
US7342876B2 (en) | 2001-12-20 | 2008-03-11 | Sri International | Interference mitigation and adaptive routing in wireless ad-hoc packet-switched networks |
US7076555B1 (en) | 2002-01-23 | 2006-07-11 | Novell, Inc. | System and method for transparent takeover of TCP connections between servers |
US7115919B2 (en) | 2002-03-21 | 2006-10-03 | Hitachi, Ltd. | Storage system for content distribution |
US6963996B2 (en) | 2002-04-30 | 2005-11-08 | Intel Corporation | Session error recovery |
EP2284735A1 (en) | 2002-11-14 | 2011-02-16 | Isilon Systems, Inc. | Systems and methods for restriping files in a distributed file system |
US7433332B2 (en) | 2003-04-30 | 2008-10-07 | Skypipes Wireless, Inc. | Managed microcell wireless mesh network architecture |
US7610348B2 (en) | 2003-05-07 | 2009-10-27 | International Business Machines | Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed |
US7139933B2 (en) | 2003-06-20 | 2006-11-21 | International Business Machines Corporation | Preserving cache data against cluster reboot |
US20050075911A1 (en) | 2003-10-03 | 2005-04-07 | Affiliated Flood Group, L.L.C. | Method for producing, selling, and delivering data required by mortgage lenders and servicers to comply with flood insurance monitoring requirements |
US20060015495A1 (en) | 2003-11-26 | 2006-01-19 | Keating Brett M | Use of image similarity in image searching via a network of computational apparatus |
US7231475B1 (en) | 2004-01-30 | 2007-06-12 | Cisco Technology, Inc. | Advanced bandwidth allocation in PCI bus architecture |
US7773521B2 (en) | 2004-04-30 | 2010-08-10 | Emc Corporation | Storage switch traffic bandwidth control |
US8108429B2 (en) | 2004-05-07 | 2012-01-31 | Quest Software, Inc. | System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services |
US7657530B2 (en) | 2004-06-07 | 2010-02-02 | Symantec Operating Corporation | System and method for file system content processing |
US7657581B2 (en) | 2004-07-29 | 2010-02-02 | Archivas, Inc. | Metadata management for fixed content distributed data storage |
US20060074946A1 (en) | 2004-09-27 | 2006-04-06 | Performance It | Point of view distributed agent methodology for network management |
US20060129614A1 (en) | 2004-12-14 | 2006-06-15 | Kim Hong Y | Crash recovery system and method for distributed file server using object based storage |
US7756826B2 (en) | 2006-06-30 | 2010-07-13 | Citrix Systems, Inc. | Method and systems for efficient delivery of previously stored content |
JP4736549B2 (ja) | 2005-06-10 | 2011-07-27 | 日本電気株式会社 | 帯域制御装置、帯域制御方法、帯域制御プログラム及び帯域制御システム |
US20070025381A1 (en) | 2005-07-29 | 2007-02-01 | Jay Feng | Method and apparatus for allocating processing in a network |
WO2007029633A1 (ja) | 2005-09-06 | 2007-03-15 | Nec Corporation | 音声合成装置及び方法とプログラム |
US8010829B1 (en) | 2005-10-20 | 2011-08-30 | American Megatrends, Inc. | Distributed hot-spare storage in a storage cluster |
US7716180B2 (en) | 2005-12-29 | 2010-05-11 | Amazon Technologies, Inc. | Distributed storage system with web services client interface |
US20070204028A1 (en) * | 2006-02-24 | 2007-08-30 | Hyun Lee | Method of maximizing the information access rate from/to storage units in wired/wireless networks |
US7908389B2 (en) | 2006-06-20 | 2011-03-15 | Patentvc Ltd. | Methods and systems for retrieving fragments from peer clients and servers |
US7930595B2 (en) * | 2006-06-22 | 2011-04-19 | International Business Machines Corporation | Method and apparatus for analyzing error conditions in a massively parallel computer system by identifying anomalous nodes within a communicator set |
KR20080004773A (ko) | 2006-07-06 | 2008-01-10 | 삼성전자주식회사 | 하드 디스크의 액세스 타임 자동 설정 방법 및 그 장치 |
US7769843B2 (en) | 2006-09-22 | 2010-08-03 | Hy Performix, Inc. | Apparatus and method for capacity planning for data center server consolidation and workload reassignment |
US7797453B2 (en) | 2006-09-29 | 2010-09-14 | Microsoft Corporation | Resource standardization in an off-premise environment |
US7793101B2 (en) | 2006-10-19 | 2010-09-07 | Novell, Inc. | Verifiable virtualized storage port assignments for virtual machines |
US7917469B2 (en) | 2006-11-08 | 2011-03-29 | Hitachi Data Systems Corporation | Fast primary cluster recovery |
US7685227B2 (en) | 2006-11-10 | 2010-03-23 | Gerber Robert H | Message forwarding backup manager in a distributed server system |
US7805580B2 (en) | 2007-01-08 | 2010-09-28 | International Business Machines Corporation | Method and system for determining optimal data layout using blind justice |
US8131723B2 (en) * | 2007-03-30 | 2012-03-06 | Quest Software, Inc. | Recovering a file system to any point-in-time in the past with guaranteed structure, content consistency and integrity |
US8001352B1 (en) | 2007-04-17 | 2011-08-16 | American Megatrends, Inc. | Networked raid in a virtualized cluster |
US7725437B2 (en) | 2007-07-31 | 2010-05-25 | Hewlett-Packard Development Company, L.P. | Providing an index for a data store |
US20090112921A1 (en) | 2007-10-31 | 2009-04-30 | Fernando Oliveira | Managing files using layout storage objects |
AT504798B1 (de) | 2007-10-24 | 2008-08-15 | Data Noah Gmbh | Verfahren und vorrichtung zur selbsttätigen erstellung von sicherungskopien |
US20090113323A1 (en) | 2007-10-31 | 2009-04-30 | Microsoft Corporation | Data center operation optimization |
US20110246471A1 (en) | 2010-04-06 | 2011-10-06 | Selim Shlomo Rakib | Retrieving video annotation metadata using a p2p network |
US7801994B2 (en) | 2007-11-29 | 2010-09-21 | Hitachi, Ltd. | Method and apparatus for locating candidate data centers for application migration |
US8103628B2 (en) | 2008-04-09 | 2012-01-24 | Harmonic Inc. | Directed placement of data in a redundant data storage system |
US8301497B2 (en) | 2008-04-17 | 2012-10-30 | Aol Advertising Inc. | Method and system for media initialization via data sharing |
US7801046B2 (en) | 2008-04-28 | 2010-09-21 | Oracle America, Inc. | Method and system for bandwidth control on a network interface card |
WO2009134772A2 (en) | 2008-04-29 | 2009-11-05 | Maxiscale, Inc | Peer-to-peer redundant file server system and methods |
US8065559B2 (en) | 2008-05-29 | 2011-11-22 | Citrix Systems, Inc. | Systems and methods for load balancing via a plurality of virtual servers upon failover using metrics from a backup virtual server |
US20090307329A1 (en) | 2008-06-06 | 2009-12-10 | Chris Olston | Adaptive file placement in a distributed file system |
US8160063B2 (en) | 2008-06-09 | 2012-04-17 | Microsoft Corporation | Data center interconnect and traffic engineering |
US8737229B2 (en) | 2008-07-11 | 2014-05-27 | Qualcomm Incorporated | Access mechanisms for base stations in heterogeneous access point networks |
US8102822B2 (en) | 2008-07-14 | 2012-01-24 | Samsung Electronics Co., Ltd. | System and method for random access scheme in a wireless ad-hoc network |
US8706694B2 (en) * | 2008-07-15 | 2014-04-22 | American Megatrends, Inc. | Continuous data protection of files stored on a remote storage device |
US7840680B2 (en) | 2008-10-15 | 2010-11-23 | Patentvc Ltd. | Methods and systems for broadcast-like effect using fractional-storage servers |
US8412677B2 (en) * | 2008-11-26 | 2013-04-02 | Commvault Systems, Inc. | Systems and methods for byte-level or quasi byte-level single instancing |
KR101453425B1 (ko) | 2008-12-18 | 2014-10-23 | 한국전자통신연구원 | 메타데이터 서버 및 메타데이터 관리 방법 |
US8347050B2 (en) | 2009-01-27 | 2013-01-01 | Microsoft Corporation | Append-based shared persistent storage |
US8832023B2 (en) | 2009-01-30 | 2014-09-09 | Apple Inc. | System for managing distributed assets and metadata |
US8775544B2 (en) | 2009-02-04 | 2014-07-08 | Citrix Systems, Inc. | Methods and systems for dynamically switching between communications protocols |
CN101520805B (zh) | 2009-03-25 | 2011-05-11 | 中兴通讯股份有限公司 | 一种分布式文件系统及其文件处理方法 |
US20100250746A1 (en) | 2009-03-30 | 2010-09-30 | Hitachi, Ltd. | Information technology source migration |
US8261033B1 (en) | 2009-06-04 | 2012-09-04 | Bycast Inc. | Time optimized secure traceable migration of massive quantities of data in a distributed storage system |
US8612439B2 (en) | 2009-06-30 | 2013-12-17 | Commvault Systems, Inc. | Performing data storage operations in a cloud storage environment, including searching, encryption and indexing |
US8234518B2 (en) | 2009-07-21 | 2012-07-31 | Vmware, Inc. | Method for voting with secret shares in a distributed system |
US8352482B2 (en) | 2009-07-21 | 2013-01-08 | Vmware, Inc. | System and method for replicating disk images in a cloud computing based virtual machine file system |
US8074107B2 (en) | 2009-10-26 | 2011-12-06 | Amazon Technologies, Inc. | Failover and recovery for replicated data instances |
US8898663B2 (en) | 2009-12-16 | 2014-11-25 | Symantec Corporation | Storage visibility in virtual environments |
US8949436B2 (en) | 2009-12-18 | 2015-02-03 | Alcatel Lucent | System and method for controlling peer-to-peer connections |
US9501365B2 (en) | 2009-12-28 | 2016-11-22 | Netapp, Inc. | Cloud-based disaster recovery of backup data and metadata |
US9081501B2 (en) * | 2010-01-08 | 2015-07-14 | International Business Machines Corporation | Multi-petascale highly efficient parallel supercomputer |
US8601097B2 (en) | 2010-02-22 | 2013-12-03 | Ncomputing Inc. | Method and system for data communications in cloud computing architecture |
WO2011126902A2 (en) | 2010-03-30 | 2011-10-13 | Exoprise Systems Inc. | Systems and methods for selecting an alternative computing infrastructure and facilitating the migration and adoption thereto |
US8412899B2 (en) | 2010-04-01 | 2013-04-02 | Autonomy, Inc. | Real time backup storage node assignment |
US8533299B2 (en) | 2010-04-19 | 2013-09-10 | Microsoft Corporation | Locator table and client library for datacenters |
US8181061B2 (en) | 2010-04-19 | 2012-05-15 | Microsoft Corporation | Memory management and recovery for datacenters |
US9170892B2 (en) | 2010-04-19 | 2015-10-27 | Microsoft Technology Licensing, Llc | Server failure recovery |
US8996611B2 (en) | 2011-01-31 | 2015-03-31 | Microsoft Technology Licensing, Llc | Parallel serialization of request processing |
US8438244B2 (en) | 2010-04-19 | 2013-05-07 | Microsoft Corporation | Bandwidth-proportioned datacenters |
US9047136B2 (en) | 2010-06-11 | 2015-06-02 | Oracle International Corporation | Method and system for migrating the state of a virtual cluster |
US8769269B2 (en) | 2010-08-12 | 2014-07-01 | International Business Machines Corporation | Cloud data management |
US8812627B2 (en) | 2010-08-20 | 2014-08-19 | Adobe Systems Incorporated | System and method for installation and management of cloud-independent multi-tenant applications |
US8762793B2 (en) | 2010-08-26 | 2014-06-24 | Cleversafe, Inc. | Migrating encoded data slices from a re-provisioned memory device of a dispersed storage network memory |
US20120036146A1 (en) | 2010-10-26 | 2012-02-09 | ParElastic Corporation | Apparatus for elastic database processing with heterogeneous data |
-
2012
- 2012-08-30 US US13/598,990 patent/US9778856B2/en active Active
-
2013
- 2013-08-22 WO PCT/US2013/056070 patent/WO2014035772A1/en unknown
- 2013-08-22 EP EP13759363.8A patent/EP2891051B1/en active Active
- 2013-08-22 CN CN201380045740.0A patent/CN104603739B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778384A (en) * | 1995-12-22 | 1998-07-07 | Sun Microsystems, Inc. | System and method for automounting and accessing remote file systems in Microsoft Windows in a networking environment |
CN1664791A (zh) * | 2004-03-05 | 2005-09-07 | 中国科学院计算技术研究所 | 一种虚拟存储模型及其方法 |
CN1975679A (zh) * | 2005-10-27 | 2007-06-06 | 国际商业机器公司 | 用于优化分段资源分配的方法和设备 |
CN102057366A (zh) * | 2008-06-12 | 2011-05-11 | 微软公司 | 分布式高速缓存安排 |
Non-Patent Citations (1)
Title |
---|
The Vesta Parallel File System;PETER F. CORBETT and DROR G. FEITELSON;《ACM Transactions on Computer Systems (TOCS)》;19960831;225-264 * |
Also Published As
Publication number | Publication date |
---|---|
CN104603739A (zh) | 2015-05-06 |
US9778856B2 (en) | 2017-10-03 |
BR112015003406A8 (pt) | 2018-05-29 |
EP2891051A1 (en) | 2015-07-08 |
WO2014035772A1 (en) | 2014-03-06 |
US20140068224A1 (en) | 2014-03-06 |
EP2891051B1 (en) | 2019-04-17 |
BR112015003406A2 (pt) | 2017-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104603739B (zh) | 对并行存储的块级访问 | |
US11581943B2 (en) | Queues reserved for direct access via a user application | |
US10671408B1 (en) | Automatic storage system configuration for mediation services | |
US11138103B1 (en) | Resiliency groups | |
US11093146B2 (en) | Automatic load rebalancing of a write group | |
US11714728B2 (en) | Creating a highly available data analytics pipeline without replicas | |
US10001944B2 (en) | Systems and methods for data organization in storage systems using large erasure codes | |
US20180356989A1 (en) | Portable snapshot replication between storage systems | |
US9590915B2 (en) | Transmission of Map/Reduce data in a data center | |
US9304704B2 (en) | Communication with two or more storage devices via one SAS communication port | |
WO2019231634A1 (en) | Mechanism for updating host file system and flash translation layer based on underlying nand technology | |
US11675499B2 (en) | Synchronous discovery logs in a fabric storage system | |
CN104160397B (zh) | 位置独立文件 | |
CA2953608A1 (en) | Converting luns into files or files into luns in real time | |
US20200133492A1 (en) | Dynamically selecting segment heights in a heterogeneous raid group | |
CN104050248A (zh) | 一种文件存储系统及存储方法 | |
US11416176B2 (en) | Function processing using storage controllers for load sharing | |
JP2004192174A (ja) | ディスクアレイ制御装置 | |
CN105739930A (zh) | 一种存储架构及其初始化方法和数据存储方法及管理装置 | |
JP2008016024A (ja) | キャッシュされたデータのダイナミック適応フラッシング | |
CN101212490A (zh) | 储存装置控制器 | |
US11625192B2 (en) | Peer storage compute sharing using memory buffer | |
WO2012171363A1 (zh) | 分布式缓存系统中的数据操作方法和装置 | |
KR101470857B1 (ko) | iSCSI 스토리지 시스템을 이용한 네트워크 분산 파일 시스템 및 방법 | |
US11966841B2 (en) | Search acceleration for artificial intelligence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20171020 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |