CN106716334A - 文件系统卷内的高效数据移动 - Google Patents
文件系统卷内的高效数据移动 Download PDFInfo
- Publication number
- CN106716334A CN106716334A CN201580049767.6A CN201580049767A CN106716334A CN 106716334 A CN106716334 A CN 106716334A CN 201580049767 A CN201580049767 A CN 201580049767A CN 106716334 A CN106716334 A CN 106716334A
- Authority
- CN
- China
- Prior art keywords
- data
- container
- data storage
- storage section
- storage
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- 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/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- 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/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
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 Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
实施例是针对高效地管理数据存储以及高效地存储数据。在一个情况中,计算机系统接收寻址到数据仓库内的一个数据存储部分的写入请求。计算机系统将所接收的写入请求再定向到包括存储容器的另一数据存储部分,每一个存储容器是数据仓库的逻辑地指定的部分。计算机系统确定写入请求要向哪个存储容器写入,并且标识要从第二数据存储部分离台到第一数据存储部分的存储容器。计算机系统然后使所标识的存储容器离台到第一数据存储部分,被离台的容器的数据以与离台之前数据在所标识的存储容器中被存储的次序相同的次序在第一数据存储部分上。
Description
背景技术
计算系统已经变得无处不在,其范围从小型嵌入式设备到电话和平板电脑到PC以及后端服务器。这些计算系统中的每一个包括某种类型的数据存储,以及典型地,许多不同类型的数据存储。例如,计算系统可以包括固态存储和硬驱动或者硬驱动的集合。固态存储可以能够比硬驱动更快速地处置读取和写入I/O请求,而可以具有硬驱动的存储容量。在读取、写入和存储数据时,其它介质,诸如带驱动、DVD(或其它光学介质)或其它类型的介质,可以具有不同优点和缺点。
发明内容
本文描述的实施例是针对高效地管理数据存储以及高效地存储数据。在一个实施例中,计算机系统接收寻址到数据仓库内的一个数据存储部分的写入请求。计算机系统将所接收的写入请求再定向到数据仓库内的另一个数据存储部分。该第二数据存储部分包括存储容器,其中每个存储容器是数据仓库的逻辑地指定的部分。计算机系统确定所接收的写入请求要向第二数据存储部分上的哪个存储容器进行写入,并且标识要从第二数据存储部分离台(de-stage)到第一数据存储部分的存储容器。计算机系统然后使所标识的存储容器离台到第一数据存储部分,被离台的容器的数据以与离台之前数据在所标识的存储容器中被存储的次序相同的次序存储在第一数据存储部分上。
在另一实施例中,计算机系统访问针对存储容器的集合的使用信息,其中每一个存储容器是数据仓库的逻辑部分。计算机系统确定存储在至少一个存储容器中的数据包括具有满足某些准则的指定特性的数据。基于这些准则,计算机系统确定要在与容器相关联的数据上执行哪些操作,并且在容器的数据上执行那些操作。这样的操作可以包括标识频繁使用或不频繁使用的数据并且将其移动到较低速度、较高容量的存储,压缩数据,或者其它操作。
提供该发明内容来以简化形式引入以下在具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用作帮助确定所要求保护的主题的范围。
附加的特征和优点将在接下来的描述中被阐述,并且从该描述,附加的特征和优点在某种程度上对于本领域普通技术人员将是显然的,或者其可以通过本文中的教导的实践而被了解。本文描述的实施例的特征和优点可以借助于在随附权利要求中特别指出的手段和组合而实现和获得。从以下的描述和随附权利要求,本文描述的实施例的特征将变得更加完全地显现。
附图说明
为了进一步澄清本文描述的实施例的上述和其它特征,将通过参照附图来再现更具体的描述。领会到的是,这些图仅描绘了本文描述的实施例的示例并且因此不应视为限制其范围。通过使用随附各图,将以附加的特异性和细节来描述和解释实施例,在附图中:
图1图示了本文描述的实施例可以在其中操作的计算机架构,所述操作包括高效地管理数据存储以及高效地存储数据。
图2图示了用于高效地管理数据存储的示例方法的流程图。
图3图示了用于高效地存储数据的示例方法的流程图。
图4图示了本文描述的实施例可以在其中操作的计算机架构,所述操作包括高效地存储数据。
图5图示了其中将一个数据仓库中的存储容器移动到另一个数据仓库的实施例。
图6图示了其中将数据I/O请求被再定向到数据仓库的不同部分并且其中从数据仓库的一些部分向其它部分返回数据的实施例。
具体实施方式
本文描述的实施例是针对高效地管理数据存储以及高效地存储数据。在一个实施例中,计算机系统接收寻址到数据仓库内的一个数据存储部分的写入请求。计算机系统将所接收的写入请求再定向到数据仓库内的另一数据存储部分。该第二数据存储部分包括存储容器,每个存储容器是数据仓库的逻辑地指定的部分。计算机系统确定所接收的写入请求要向第二数据存储部分上的哪个存储容器进行写入,并且标识要从第二数据存储部分被离台到第一数据存储部分的存储容器。计算机系统然后使所标识的存储容器离台到第一数据存储部分,被离台的容器的数据以与离台之前数据在所标识的存储容器中被存储的次序相同的次序存储在第一数据存储部分上。
在另一个实施例中,计算机系统访问针对存储容器的集合的使用信息,其中每一个存储容器是数据仓库的逻辑部分。计算机系统确定存储在至少一个存储容器中的数据包括具有满足某些准则的指定特性的数据。基于这些准则,计算机系统确定要在与容器相关联的数据上执行哪些操作,并且在容器的数据上执行那些操作。这样的操作可以包括标识频繁使用或不频繁使用的数据并且将其移动到较低速度、较高容量的存储,压缩数据,或者其它操作。
现在,接下来的讨论参照可以被执行的数个方法和方法动作。应当指出,尽管方法动作可以以某一次序进行讨论或者在流程图中被图示为以特定次序发生,但是并不必然地要求特定的排序,除非有特别地陈述,或者由于一个动作依赖于在执行该动作之前完成另一动作而要求。
本文描述的实施例可以实现各种类型的计算系统。这些计算系统现在越来越多地采取各种各样的形式。计算系统可以例如是手持式设备,诸如智能电话或特色电话机、电器、膝上型计算机、可穿戴设备、桌上型计算机、大型计算机、分布式计算系统、或者甚至常规地尚未被视为计算系统的设备。在该描述中,以及在权利要求中,术语“计算系统”广义地被定义为包括任何的设备或系统(或其组合),所述设备或系统包括至少一个物理且有形的处理器,以及能够在其上具有计算机可执行指令的物理且有形的存储器,计算机可执行指令可以由处理器执行。计算系统可以分布在网络环境之上并且可以包括多个组成计算系统。
如图1中所图示,计算系统101典型地包括至少一个处理单元102和存储器103。存储器103可以是物理系统存储器,其可以是易失性的、非易失性的、或者二者的某种组合。术语“存储器”还可以在本文中被用于指代非易失性大容量存储装置,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储容量也可以是分布式的。
如本文中所使用的,术语“可执行模块”或“可执行组件”可以是指可以在计算系统上执行的软件对象、例程或方法。本文描述的不同的组件、模块、引擎和服务可以实现为在计算系统上执行的对象或过程(例如,作为分离的线程)。
在接下来的描述中,参照由一个或多个计算系统执行的动作来描述实施例。如果这样的动作实现在软件中,则执行动作的相关联的计算系统的一个或多个处理器响应于已经执行了计算机可执行指令而引导计算系统的操作。例如,这样的计算机可执行指令可以体现在形成计算机程序产品的一个或多个计算机可读介质上。这样的操作的示例牵涉到数据的操控。计算机可执行指令(以及所操控的数据)可以存储在计算系统101的存储器103中。计算系统101还可以包含通信信道,其允许计算系统101经由有线或无线网络与其它消息处理器通信。
本文描述的实施例可以包括或者利用专用或通用计算机系统,该计算机系统包括计算机硬件,诸如例如一个或多个处理器和系统存储器,如在下文更加详细地讨论的。系统存储器可以包括在总存储器103内。系统存储器还可以被称为“主存储器”,并且包括由至少一个处理单元102经由存储器总线可寻址的存储器位置,在该情况下,在存储器总线自身上断言(assert)地址位置。系统存储器传统上已经是易失性的,但是本文描述的原理在其中系统存储器部分地或者甚至完全地是非易失性的情况下也适用。
本发明的范围内的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理的和其它计算机可读介质。这样的计算机可读介质可以是任何可获得的介质,其可以由通用或专用计算机系统访问。存储计算机可执行指令和/或数据结构的计算机可读介质是计算机存储介质。承载计算机可执行指令和/或数据结构的计算机可读介质是传输介质。因而,作为示例而非限制,本发明的实施例可以包括至少两种明显不同类型的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质是存储计算机可执行指令和/或数据结构的物理硬件存储介质。物理硬件存储介质包括计算机硬件,诸如RAM、ROM、EEPROM、固态驱动(“SSD”)、闪速存储器、相变存储器(“PCM”)、光盘存储装置、磁盘存储装置或其它磁性存储设备、或者可以用于以计算机可执行指令或数据结构的形式存储程序代码的任何其它(多个)硬件存储设备,所述程序代码可以由通用或专用计算机系统访问和执行以实现所公开的本发明的功能性。
传输介质可以包括网络和/或数据链路,其可以用于以计算机可执行指令或数据结构的形式承载程序代码,并且其可以由通用或专用计算机系统访问。“网络”被定义为能够实现电子数据在计算机系统和/或模块和/或其它电子设备之间的输运的一个或多个数据链路。当经由网络或另一个通信连接(硬布线、无线、或者硬布线或无线的组合)向计算机系统提供或转移信息时,计算机系统可以将该连接视为传输介质。以上的组合也应当包括在计算机可读介质的范围内。
另外,在到达各种计算机系统组件时,计算机可执行指令或数据结构形式的程序代码可以自动地从传输介质转移到计算机存储介质(或者反之亦然)。例如,经由网络或数据链路接收的计算机可执行指令或数据结构可以缓冲在网络接口模块(例如,“NIC”)内的RAM中,并且然后最终转移到计算机系统RAM和/或计算机系统处的较不易失的计算机存储介质。因而,应当理解到,计算机存储介质可以包括在还(或者甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令包括例如指令和数据,当指令和数据在一个或多个处理器处被执行时使通用计算机系统、专用计算机系统或者专用处理设备实施某一功能或者功能组。计算机可执行指令可以例如是二进制、中间格式指令,诸如汇编语言或者甚至源代码。
本领域技术人员将领会到,本文描述的原理可以在具有许多类型的计算机系统配置的网络计算环境中被实践,许多类型的计算机系统配置包括个人计算机、桌上型计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器或者可编程的消费者电子产品、网络PC、微型计算机、大型计算机、移动电话、PDA、平板电脑、寻呼机、路由器、交换机等。本发明还可以在分布式系统环境中实践,其中通过网络链接(通过硬布线数据链路、无线数据链路,或者通过硬布线和无线数据链路的组合)的本地和远程计算机系统二者执行任务。照此,在分布式系统环境中,计算机系统可以包括多个组成计算机系统。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
本领域技术人员将领会到,本发明可以在云计算环境中实践。云计算环境可以是分布式的,尽管并不要求如此。当为分布式时,云计算环境可以跨国界地分布在组织内和/或具有跨多个组织所占有的组件。在该描述和以下权利要求中,“云计算”被定义为用于使得能够实现对可配置计算资源(例如,网络、服务器、存储装置、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于在恰当部署时可以从这样的模型获得的其它众多优点中的任一个。
更进一步,本文描述的系统架构可以包括多个独立组件,每个独立组件对于作为整体的系统的功能性有贡献。当对付平台可扩缩性问题时,该模块化允许增大的灵活性,并且为此目的,提供各种优点。系统复杂性和增长可以通过使用具有有限功能范围的较小规模的部件而更加容易地被管理。平台默认公差通过使用这些松散耦合的模块而增强。各个组件可以随商业需要支配而以增量方式增长。模块化发展还转化成针对新功能性进行市场推广的减少时间。可以在没有冲击核心系统的情况下添加或减除新功能性。
图1图示了其中可以采用至少一个实施例的计算机架构100。计算机架构100包括计算机系统101。计算机系统101可以是任何类型的本地或分布式计算机系统,包括云计算系统。计算机系统101包括用于执行各种不同功能的模块。例如,通信模块104可以配置成与其它计算系统通信。通信模块104可以包括能够从其它计算系统接收数据和/或向其它计算系统传送数据的任何有线或无线通信构件。通信模块104可以配置成与数据库、移动计算设备(诸如移动电话或平板电脑)、嵌入式或其它类型的计算系统交互。
计算机系统101还包括应用105。这些可以是任何类型的软件应用、服务或者软件代码功能性的其它部分。应用105可以向数据仓库发送读取和/或写入请求106。附加地或者可替换地,应当指出的是,读取/写入输入/输出(I/O)请求可以来自于另一个计算系统或者计算系统101外部的另一个应用。向其发送I/O请求的数据仓库可以包括来自各种不同数据类型中的任一个的任何量的数据。实际上,数据仓库107可以包括第一数据存储部分108A和第二数据存储部分108B,但是可以包括基本上任何数目或类型的数据仓库。数据仓库可以是独个的存储设备,诸如硬驱动、固态驱动(诸如闪速驱动)、光学驱动(诸如DVD或蓝光盘)、混合型驱动或其它数据存储设备。数据存储部分还可以包括临时存储装置,诸如随机存取存储器(RAM)、物理缓存器(诸如处理器缓存器)、或者可以临时地或者永久性地存储
数据的任何其它类型的数据仓库。
数据仓库107可以由应用作为单个的数据仓库来寻址,即便数据仓库本身包括不同逻辑部分和/或不同物理部分。例如,在一些情况下,数据仓库107可以是硬驱动的阵列,其中第一和第二数据存储部分108A和108B是硬驱动(盘)阵列的不同逻辑部分,其中逻辑部分可以跨越多个物理驱动,或者可以是相同驱动的不同逻辑部分。在其它情况下,第一数据存储部分108A可以是某种类型的数据存储装置(例如,固态驱动(SSD)),并且第二数据存储部分108B可以是硬驱动(或硬盘驱动(HDD))。许多其它实施例因而是可能的,并且照此此,将第一数据存储部分108A描述为SSD并且将第二数据存储部分108B描述为硬驱动的实施例仅仅是示例,并且不应当被解读为限制如上文描述的一般数据仓库107的存储类型、存储部分数目或者其它特性。
每一个数据存储部分可以包括存储容器109A/109B。存储容器可以是数据仓库的逻辑或物理分区,并且每个数据存储部分可以包括基本上任何数目的存储容器。这些存储容器可以是相同的大小或不同的大小,并且针对每一个容器的大小制定可以改变。存储容器可以在数据存储部分之间以及甚至在数据仓库之间移动,如将在下文进一步描述的。
本文中的实施例可以实现成作为单个的存储器分级体系而管理存储硬件,诸如闪存和HDD。这样的实施例可以产生具有比闪存更大的容量以及比HDD更好的性能的存储装置。实施例可以描述方法或系统,其中写入以低延时被持久地提交,写入具有与随机读取的最小干扰,数据和元数据二者被高效地移动到云存储装置,作为近乎线性的HDD配置而提供对于奇偶校验(parity)的支持,并且数据校验和基于每一文件是可配置的。这样的系统可以实现许多不同的数据存储部分,如上文所概述的。可以将随机I/O请求(诸如写入)再定向到第一数据存储部分(例如,108A)中。该数据存储部分可以是用于处理随机数据写入的最快的层级。这样的数据存储硬件的示例可以包括闪速或非易失性双列直插存储器模块(NVDIMM)。系统可以使用顺序写入将传入的写入批量地离台到HDD层级(例如,108B)。顺序写入允许奇偶校验弹性(resilience)实现方面的奇偶校验写入的优化。
在一些实施例中,将随机写入发送给闪速存储器并且然后使其离台到HDD。因为硬驱动擅长顺序IO,并且因为闪速存储器可以非常快速地执行随机I/O,所以I/O吞吐量可以增加。当随机写入被再定向到闪存(或者某种其它类型的数据存储装置)时,构建顺序数据片段以用于离台到硬驱动、带、光学或其它数据存储装置上。
在回写缓存和类似的缓存方法中,在更快速的层级中重新布置数据使得其可以作为较高容量层级中的一个邻近单元而离台。向顺序模式中的重新布置甚至在高容量层级中也留存重新布置。传统的回写缓存方案将把所缓存的写入放“回到它们所属的地方”,这是它们最终变为它们向其中离台的层级中的随机写入的成本的制约的原因。
在本文的实施例中,所缓存的写入片段以其整体进行离台。该方案的一个益处在于,其允许以几乎与高容量存储层级可以向最终的存储层级顺序地写入的相同速度来执行数据写入。然而,如果在快速层级中分段,则数据将在高容量层级中保持在分段状态。暂存(staging)区域可以被实现为(1)确保被再定向到闪存的数据写入在暂存区域中被持久地提交使得它们可以组装成顺序流以用于离台并且以低的延时被确认。暂存区域还可以(2)在某一时间段内收集写入以便吸收块覆写,抑制离台的吞吐量要求,并且进一步(3)吸收爆发写入(例如,其中写入负载不一致的工作负荷)。
对于(1),将暂存区域实现为持久地组装块使得它们可以顺序地离台。暂存区域不需要到I/O模式中的额外可见性以优化离台,因为用于向前进展的离台是最低限度地完全可预测的。所要求的闪速或其它存储器的部分是HDD数目、冗余性方案以及那些HDD的顺序写入吞吐量的函数。其主要不是HDD层级的大小的函数。在一个实施例中,对于每一盘的6008KB写入IOPS的目标,具有200个盘的配置可能实现最小1GB的写入级闪存以便达成(1)。许多其余的闪存(或其它的快速层级存储装置)可以专用于读取缓存。至少在一些实例中,可能合期望的是,相比于(1)严格要求的情况,具有专用于写入暂存的更多空间。实施例可以被设计成不会比系统能够继续维持某一数目的每秒输入/输出操作(IOPS)和延时目标的速度更快地离台。具有额外的存储容器(例如,109A/109B)可以允许更为智能的离台以及临时地处置非均匀的写入工作负荷的机会。
系统可以配置成制约小的随机写入使得其不需要使离台速率加速以便满足传入的写入。就以上(1)而言,离台区域的大小将确定用于制约的发言权(floor);(2)和(3)可以使用任何额外的写入级供应以改进超出该发言权。照此,系统可以解译用于卷的预期的理想写入工作负荷并且然后限制其写入离台以便在任何给定时间消耗不多于该数量。
如上文提及的存储容器是存储卷的逻辑分区。存储容器可以是量级为64MB(或者某种其它单位大小)的给定卷的范围。容器可以但不要求全部具有相同大小,并且容器大小可以是固定的、可配置的、或者动态可变的。容器不会重叠,并且因此,给定的块一次存在于恰好一个的容器内。文件盘区(extent)表格追踪逻辑文件盘区在其处开始的逻辑块寻址(LBA)。在本文的实施例中,这些表格可以被修改成记录容器的身份(ID)以及该盘区在其中开始的该容器内的偏移。为了在块上执行I/O,系统查找盘区的存储容器的位置以找到实际位置。这是允许系统移动容器的位置而不咨询或者修改文件盘区表格的间接水平。以该方式,容器可以包括整个文件或者许多不同文件的片段。至少在一些实施例中,容器ID和偏移可以以使得容器ID和偏移对的大小与块偏移的大小相同的这种方式进行编码。编码可以确保两个不同的容器不会整理在一起——也就是说,在容器之间的地址空间中存在分离。
关于存储容器的元数据可以在每一卷的单个索引中被追踪,其中关键词是容器ID并且值是关于容器的信息,包括但不限于以下各项:容器的当前物理位置、是否可准许移动该容器、以及向容器写入的最后时间。实施例可以根据需要将数据写入再定向到闪速层级中的容器。当闪速容器填满时,从闪存向HDD(或者某种其它高容量存储装置)移动容器。来自HDD的容器然后可以被选择并且移动到闪存中以便利用随后的写入进行填充。
当在文件上做出写入请求时,系统可以执行以下过程:1)检查该文件块的当前位置。如果其由闪存支持,则系统将允许写入继续。2)如果用于该文件盘区的分配处于HDD上或者部分地处于HDD上,则其处于HDD上的部分将被重新分配到闪存。3)选择用于文件的闪存的部分将处在用于写入再定向的相对小数目的容器之一内。4)系统将允许继续向重新分配的空间写入。5)系统将生成日志记录以追踪文件盘区已经被重新分配的事实。6)如果写入请求是透写(如在一些数据共享中的情况那样),则系统将写入再做日志记录并且在确认请求之前等待其来自存储装置的确认。应当指出,校验和生成——完整性流——没有在以上步骤中提及。流是否具有用于其数据的校验和与是否重新分配文件的片段以使系统保持高效地运行无关。
当由系统接收并且确认写入时,闪速(或其它快速层级存储)容器开始填满。此时,系统可以从闪速层级选择用于写入的存储容器以向HDD层级中离台。系统可以与至该容器的并发IO请求同步。不再允许至该容器的覆写继续并且将其重新分配给不同的闪速容器。读取可以继续,但是将在完成移动之后不可准许。系统读取容器的内容并且选择向其中离台容器的HDD层级上的位置。系统将容器(例如,在大的顺序写入中)写入到HDD中。系统更新容器表格以指示容器已经移动并且写入陈述这一点的再做日志记录。系统完成与至容器的原始位置的并发I/O请求的同步。数据读取然后被排放并且再定向到新的位置。
系统将快速层级的某一小部分视为其正在填充的容器,其中意图是将容器离台到HDD层级。在连续的写入工作负荷中,系统从闪存向HDD中连续地移动容器。当盘填满和/或变成分段时,更少的可获得的存储容器存在于高容量层级上。此时,系统可以读取和重新写入高容量(例如,HDD)层级中的分段片段以便压缩/清除它们,或者系统可以从HDD向闪存旋转容器并且将新的写入装入该容器内的自由空间中。两种方案实现读取和写入。将新的写入装入现有的容器中保持写入工作负荷是可预测的:写入路径绝不在压缩/清除上受阻。装入新的写入不会引入无意中混合热(新的写入)和冷(很久以前写入的,仍然被分配的)数据的可能性。可以实现某种形式的按需清除/碎片整理以帮助补偿。这些概念将在下文分别关于图2和3的方法200和300进一步解释。
鉴于以上描述的系统和架构,将参照图2和3的流程图更好地领会可以依照所公开的主题实现的方法。出于简化解释的目的,将方法示出和描述为一系列的块。然而,应当理解和领会到,所要求保护的主题不受块的次序所限制,因为一些块可以以不同的次序发生和/或与来自本文所描绘和描述的那些的其它块并发地发生。此外,可能并不要求所有被图示的块来实现在下文中描述的方法。
图2图示了用于高效地管理数据存储的方法200的流程图。现在将频繁参照环境100的组件和数据来描述方法200。
方法200包括接收寻址到数据仓库内的第一数据存储部分的写入请求(210)。例如,数据仓库107可以从在计算机系统101上运行的应用105中的一个或多个接收写入请求106。数据仓库107可以包括多个不同的逻辑或物理存储区域108A/108B,其中每一个存储区域包括被称为存储容器109A/109B的逻辑或物理分区。数据仓库107对于在计算机系统上运行的应用105而言可能看起来是单个数据仓库,但是可以包括多个不同的存储类型,包括NVRAM、SSD、HDD、云、带、DVD、蓝光或其它类型的存储装置、存储阵列或存储网络。应当指出,尽管将数据仓库107描绘为计算机系统101的部分,但是数据仓库可以在计算机系统101的外部,或者可以包括在内部的一些存储组件以及在外部的一些存储组件。
方法200接下来包括将所接收的写入请求再定向到数据仓库内的第二部分数据存储,第二数据存储部分包括一个或多个存储容器,每一个存储容器包括数据仓库的逻辑地指定的部分(220)。所接收的写入请求106可以一般地定向到数据仓库107,或者可以定向到数据仓库的某一部分。例如,写入请求可以定向到第一数据存储部分108A,并且然后可以再定向到第二数据存储部分108B。每一个数据存储部分可以包括存储容器109A/109B,它们本身是在逻辑上被定义的顺序字节流。
在一些实施例中,数据仓库内的第二数据存储部分108B在执行输入/输出(I/O)操作时比第一数据存储部分108A更快速。在这样的实施例中,第一数据存储部分可以是高容量存储装置,诸如硬驱动、光盘或带驱动,而第二数据存储部分可以是快速层级存储装置,诸如SSD或缓存存储器。因此,在该实施例中,发送给第一(高容量)数据存储部分108A(或者仅仅在其处接收)的写入请求被再定向到第二、快速层级数据存储部分108B。以该方式,可以在更加能够快速写入数据并且更多地被定制用于快速写入数据的存储硬件上执行数据写入。这可降低可能在写入数据时不那么快的存储硬件(例如,高容量存储设备)上发生的瓶颈。
方法200还包括确定要将所接收的写入请求写入到第二数据存储部分上的哪个存储容器(230)并且标识要从第二数据存储部分向第一数据存储部分离台的至少一个存储容器(240)。存储容器可以包括对应于多个不同的数据文件的多个数据文件部分。因而,例如,第二数据存储部分108B中的给定存储容器109B可以包括各种整体文件以及文件的各种部分(即,部分文件)。然后,如果容器被移动,则仅用于该容器的元数据(例如,标识容器的大小、其身份以及其所位于的地方)将需要更新。文件元数据将不需要更新。
可以以各种方式来执行标识要离台的存储容器。一旦(通过确定模块110)确定要将写入请求106写入哪个存储容器109B,计算机系统101的标识模块111可以标识最近很少写入到哪个容器。然后,最近很少被写入的不管什么存储容器被选择为要离台并且移动到第一(例如,高容量)存储装置108A的容器。以该方式,具有“冷”数据(即,在某一时间段内未改变的数据)的快速层级存储装置上的容器被移动到高容量存储装置以在快速层级存储装置上为“热”数据(即,频繁改变的数据)腾出空间。在另一个示例中,标识要从第二数据存储部分向第一数据存储部分离台的存储容器可以包括确定哪个容器最接近装满数据。因而,标识模块111可以找到装满数据的那些容器并且将那些容器标记为准备用于离台到较低层级、较高容量的存储装置。
更进一步,在另一个示例中,标识要从快速层级数据存储装置向高容量数据存储装置离台的存储容器可以包括访问指示了哪些存储容器将不会在指定量的时间内使用的线索。例如,用户或者应用(例如,105)可以提供指示了特定容器或容器集合将不会在指定量的时间内使用的线索。标识模块111可以访问和解译该线索,并且把将不会被使用的那些容器标记为准备用于离台到高容量存储装置。线索可以进一步指定容器或文件是只读的,并且因此,容器或文件可以被读取或删除,但是不会被覆写。应当理解到,尽管在上文已经描述了标识可用于离台的存储容器的一些方法,但是许多其它算法和方法可以单独地或者与其它方法或算法组合地被使用,以确定哪些存储容器要离台以及使它们何时离台。例如,一些实施例可以将尚未装满但是快速填充的容器标识为准备用于离台,或者可以给予优胜于诸如充满冷数据或者包括冷数据的其它算法的所暗示的容器离台优先级。
方法200还包括使所标识的存储容器离台到第一数据存储部分,其中被离台的容器的数据以与离台之前数据在所标识的存储容器中被存储的次序相同的次序存储在第一数据存储部分上(250)。例如,离台模块112可以离台或者移动由标识模块111标识为准备用于离台的那些存储容器109B。当容器被移动时,被离台的容器中的数据可以从一个数据存储部分(例如,108B)移动到另一个数据存储部分(例如,108A)。
例如,如图5中所图示,数据仓库501可以包括两个数据存储部分502A和502B。尽管第一数据存储部分502A包括多个存储容器503,但是这些容器503D中的一个可以离台(例如,通过图1的模块112)并且移动到第二数据存储部分502B。容器包括存储在其内部的任何数据文件。这些数据文件可以是顺序的并且在空间上对准,或者可以是分段的并且没有空间对准。当容器从第一数据存储装置502A离台到第二数据存储装置502B时,数据文件和文件部分以它们当前被存储的形式一起移动。因而,容器内的数据分段地或者顺序地一起移动,并且在其新位置中重新扎营后没有被重新对准。相应地,被离台的容器的数据存储在第二数据存储装置502B上,例如以与离台之前数据在第一数据存储装置502A中被存储的次序相同的次序被存储在第二数据存储装置502B上。
当将离台的容器的数据写入到第二数据存储部分时,可以将数据顺序地写入存储设备。当向高容量存储设备或介质(诸如,HDD、带驱动或光盘)写入时,这可以具有显著益处。这样的高容量存储设备可以被优化用于顺序数据存储。例如,在一种情况下,存储容器可以离台到顺序约束的介质,诸如叠瓦式磁记录(SMR)。当其在高容量介质上顺序地写入时,其它类型的存储介质和设备,诸如硬驱动和DVD,也更加高效地写入数据。
一旦容器已经被离台,存储容器映射表格就可以被更新,存储容器映射表格指示了用于数据仓库中的每一个容器的身份和位置。因为存储容器映射表格存储数据仓库501中的每一个容器的身份和位置,所以图1的离台模块112在移动容器时不需要打开文件或者打开文件位置。相反,离台模块112可以只是标识容器的位置并且移动它,而没有修改文件元数据。一旦容器已经被移动,容器元数据就在存储容器映射表格中被更新。甚至对于其中数据仓库501是文件系统的卷或者以其它方式联结到文件系统的情况也是如此。
在一些实施例中,如在图6中所示,存储容器可以从第一数据存储部分离台到其它数据存储部分,诸如数据仓库601内的第三数据存储部分603C。在数据仓库601中,第一数据存储部分603A在随机写入方面可以最慢,并且因此可以将写入请求602再定向到第二数据存储部分603B(在再定向604中)或者第三数据存储部分603C(在再定向605中)。第二数据存储装置603B可以比第一个更快,但是比第三个更慢,并且第三个在写入数据方面可以最快。在第二和第三数据存储部分已经处置了写入请求之后,那些存储部分上的各种容器可以在返回数据606中离台并且返回到第一数据存储部分603A。如果写入已经处于存储系统的最快部分中的目标数据,则系统可以在该数据存储部分处(并且潜在地在相同容器中)执行写入并且不对写入请求602进行再定向。
数据写入因而可以由它们被寻址到的、它们可以被再定向的存储部分进行处置,或者如果它们没有被寻址到特定数据部分,则可以由最快的可获得的存储部分进行处置。在一个示例中,十个写入请求可以传入并且可去往十个不同的容器,或者去往相同的容器。如果十个写入针对相同文件而传入,则它们可以去往相同容器或者多个容器。如果数据为热,则它们可以移动到快速层级存储装置,或者如果该数据随后变冷,则其可以移动到较低层级存储装置。离台步骤可以瞄准与原始请求目标不同的数据存储部分。例如,如果硬驱动容器是写入请求的最初目标,则最初瞄准的HDD容器可以直接重新分配给SSD,从而绕过任何中间的存储类型,诸如云或带。
返回到图1,在一些实施例中,弹性实现(诸如镜像或奇偶校验)可以在第一数据存储部分108A中实现,并且第二、不同的弹性实现在数据仓库107内的第二数据存储部分108B中实现。数据写入将跨多个HDD进行写入,其中部分文件在一个驱动上,并且部分文件在另一个驱动上。数据然后可以被读取回来,可以计算奇偶校验,并且可以将数据写入到更快的数据存储层级。
现在转向图3,图示了用于高效地存储数据的方法300的流程图。现在将频繁参照图4的环境400的组件和数据来描述方法300。
方法300包括访问针对存储容器的集合的使用信息的一个或多个部分,存储容器包括数据仓库的逻辑部分;(310)。例如,计算机系统401的数据访问模块405可以访问存储在数据仓库413中的存储容器414的使用信息416。计算机系统401可以包括至少一个硬件处理器402(或处理核),连同存储器403和用于与其它计算系统通信的通信模块404。由计算机系统401的数据访问模块访问的使用信息416可以包括针对存储容器的集合的离台历史。离台历史可以指示哪些存储容器被移动、它们被移动到哪里以及它们何时被移动。
方法300包括确定存储在至少一个存储容器中的数据包括具有满足一个或多个准则的指定特性的数据(320)。计算机系统401的确定模块406可以确定存储在存储容器414中的数据415具有满足某些准则407的某些特性。准则可以例如包括数据至少在阈值量的时间内尚未被访问的指示。这样的数据可以被说成是冷数据。在其中数据存储部分是硬驱动的情况下,并且数据至少在阈值量的时间内尚未被访问时,以顺序方式将该数据写入到硬驱动的末尾。硬驱动的末尾可以是旋压板的内部并且可以是硬驱动的最不易可访问的部分(即,花费最长量的时间来访问的部分)。最冷的数据因而可以放置在硬驱动的最里面的部分上。在一些情况下,容器可以包括不可移动的数据(诸如,全局元数据)。在那些情况下,容器不被离台。
基于准则407,确定模块406确定要在与容器相关联的数据415上执行哪些操作408(330)。操作执行模块409然后在容器的数据上执行那些操作(340)。在一个示例中,要在与容器414相关联的数据415上执行的操作包括将至少一个容器从第一数据存储部分旋转到第二数据存储部分。随时间逝去,当数据被删除、移动或者以其它方式改变时,可以在存储容器中出现孔洞。通过旋转容器,孔洞可以在各种数据存储部分中被重新填充。操作可以包括将容器的数据移动到数据仓库的指定部分(例如,至用于冷数据的硬驱动的内侧,或者至用于热数据的硬驱动的外侧)。这被称为盘定区(regioning)412。其它操作包括将一个容器的数据411压缩成更小大小的容器。一旦已经将容器压缩成新的更小大小的容器,就可以释放旧的容器。
在一些实施例中,可以在数据存储部分上预留隐藏的容器以用于重新定位容器。这些隐藏的容器提供用于重新定位容器的额外空间。以该方式,可以引入、填充新的容器,并且新的容器可以被离台至较慢数据存储装置。存储容器的离台以及存储容器的压缩可以是基于数据使用,如由操作模块409在410中所确定的。以该方式,可以基于涉及数据的各种特性(诸如,使用信息416)而在该数据上执行许多不同操作。一旦已经确定要执行操作(诸如,从较快的存储装置向较慢的存储装置移动数据),操作执行模块409就可以执行操作。相应地,较快的数据存储部分可以用于临时地吸收较高的吞吐量操作(诸如,随机写入)并且数据可以在随后的时间离台到较慢的数据存储部分。
因而,提供了高效地管理数据存储的方法、系统和计算机程序产品。此外,提供了在数据仓库中高效地存储数据的方法、系统和计算机程序产品。
权利要求支持
实施例可以包括一种计算机系统,包括执行用于高效地管理数据存储的计算机实现的方法的至少一个处理器,其中方法包括:接收寻址到数据仓库107内的第一数据存储部分108A的写入请求106,将所接收的写入请求106再定向到数据仓库内的第二数据存储部分108B,第二数据存储部分包括一个或多个存储容器109B,每一个存储容器包括数据仓库107的逻辑地指定的部分,确定要将所接收的写入请求106写入到第二数据存储部分108B上的哪些存储容器,标识要从第二数据存储部分108B离台到第一数据存储部分108A的存储容器109B,以及使所标识的存储容器离台到第一数据存储部分108A,其中被离台的容器的数据以与离台之前数据在所标识的存储容器中被存储的次序相同的次序存储在第一数据存储部分上。
在一些实施例中,数据仓库内的第二数据存储部分在执行随机输入/输出(I/O)操作方面比第一数据存储部分更快。在一些实施例中,数据仓库还包括第三数据存储部分,第三数据存储部分在I/O操作方面比第一数据存储部分更快,但是在I/O操作方面比第二数据存储部分更慢。在一些实施例中,所标识的存储容器从第一数据存储部分离台到第三数据存储部分,并且随后从第三数据存储部分离台到第二数据存储部分。
提供了一种用于高效地存储数据的计算机实现的方法,其中方法包括:访问用于存储容器414的集合的使用信息416中的一个或多个部分,存储容器包括数据仓库413的逻辑部分,确定存储在至少一个存储容器中的数据415包括具有满足一个或多个准则407的指定特性的数据,基于该一个或多个准则来确定要在与容器相关联的数据上执行哪些操作408;以及在容器的数据上执行那些操作408。
在一些实施例中,用于数据的准则中的至少一个包括至少在阈值量的时间内尚未访问数据的指示,并且要在数据上执行的操作包括将容器的数据移动到数据仓库的指定部分。在一些实施例中,数据仓库包括硬驱动,并且将至少在阈值量的时间内尚未被访问的数据写入到硬驱动的末尾。在一些实施例中,要在与容器相关联的数据上执行的操作包括将至少一个容器从第一数据存储部分旋转到第二数据存储部分,使得容器中的孔洞在第一数据存储部分上被重新填充。
提供了一种计算机系统,包括以下各项:一个或多个处理器;用于接收寻址到数据仓库107内的第一数据存储部分108A的写入请求106的接收器104,用于将所接收的写入请求106再定向到数据仓库内的第二数据存储部分108B的再定向模块,第二数据存储部分包括一个或多个存储容器109B,每一个存储容器包括数据仓库107的逻辑地指定的部分,用于确定要将所接收的写入请求106写入到第二数据存储部分108B上的哪个存储容器的确定模块110,用于标识要从第二数据存储部分108B离台到第一数据存储部分108A的至少一个存储容器的标识模块111,以及用于将所标识的存储容器离台到第一数据存储部分108A的离台模块112,其中被离台的容器的数据被顺序地存储在第一数据存储部分上。
在一些实施例中,标识要从第二数据存储部分离台到第一数据存储部分的至少一个存储容器包括访问指示了哪些存储容器将不会在指定量的时间内被使用的线索。在一些实施例中,所述至少一个存储容器包括对应于多个不同数据文件的多个数据文件部分。一些实施例还包括更新指示了针对数据仓库中的每一个容器的身份和位置的容器映射表格。在一些实施例中,第一弹性实现在第一数据存储部分中实现,并且第二、不同的弹性实现在数据仓库内的第二数据存储部分中实现。在一些实施例中,标识要从第二数据存储部分离台到第一数据存储部分的存储容器包括确定哪个容器最近很少被写入。在一些实施例中,标识要从第二数据存储部分离台到第一数据存储部分的存储容器包括确定哪个容器填满数据,使得填满的容器从第二数据存储部分离台并且移动到第一数据存储部分。
本文描述的概念和特征可以体现在其它具体形式中而不脱离其精神或描述特性。所描述的实施例要在所有的方面中被视为仅说明性而非限制性的。本公开的范围因此由随附权利要求而不是前面的描述所指示。落入权利要求的等同方案的含义和范围内的所有改变都被包含在其范围内。
Claims (10)
1.一种用于高效地管理数据存储的计算机实现的方法,该计算机实现的方法由一个或多个处理器执行针对计算机实现的方法的计算机可执行指令而实施,并且该计算机实现的方法包括:
接收寻址到数据仓库内的第一数据存储部分的写入请求;
将所接收的写入请求再定向到数据仓库内的第二数据存储部分,第二数据存储部分包括一个或多个存储容器,每一个存储容器包括数据仓库的逻辑地指定的部分;
确定要将所接收的写入请求写入到第二数据存储部分上的哪个存储容器;
标识要从第二数据存储部分离台到第一数据存储部分的存储容器;以及
使所标识的存储容器离台到第一数据存储部分,其中被离台的容器的数据以与离台之前数据在所标识的存储容器中被存储的次序相同的次序存储在第一数据存储部分上。
2.权利要求1所述的计算机实现的方法,其中数据仓库内的第二数据存储部分在执行随机输入/输出(I/O)操作方面比第一数据存储部分更快。
3.权利要求2所述的计算机实现的方法,其中数据仓库还包括第三数据存储部分,第三数据存储部分在I/O操作方面比第一数据存储部分更快,但是在I/O操作方面比第二数据存储部分更慢。
4.权利要求3所述的计算机实现的方法,其中所标识的存储容器从第一数据存储部分离台到第三数据存储部分,并且随后从第三数据存储部分离台到第二数据存储部分。
5.一种用于高效地存储数据的计算机实现的方法,计算机实现的方法由一个或多个处理器执行针对计算机实现的方法的计算机可执行指令而实施,并且该计算机实现的方法包括:
访问针对存储容器的集合的使用信息中的一个或多个部分,存储容器包括数据仓库的逻辑部分;
确定存储在至少一个存储容器中的数据包括具有满足一个或多个准则的指定特性的数据;
基于该一个或多个准则,确定要在与容器相关联的数据上执行哪些操作;以及
在容器的数据上执行那些操作。
6.权利要求5所述的计算机实现的方法,其中用于数据的准则中的至少一个包括数据至少在阈值量的时间内尚未被访问的指示,并且其中要在数据上执行的操作包括将容器的数据移动到数据仓库的指定部分。
7.权利要求5所述的计算机实现的方法,其中数据仓库包括硬驱动,并且其中至少在阈值量的时间内尚未被访问的数据被写入到硬驱动的末尾。
8.权利要求5所述的计算机实现的方法,其中要在与容器相关联的数据上执行的操作包括将至少一个容器从第一数据存储部分旋转到第二数据存储部分,使得容器中的孔洞在第一数据存储部分上被重新填充。
9.一种计算机系统,包括:
一个或多个处理器;
包括计算机可执行指令的一个或多个计算机可读介质,当所述计算机可执行指令由所述一个或多个处理器执行时,利用用于实施高效地存储数据的计算机实现的方法的架构来配置计算机系统,并且用于实施计算机实现的方法的架构包括:
用于接收寻址到数据仓库内的第一数据存储部分的写入请求的接收器;
用于将所接收的写入请求再定向到数据仓库内的第二数据存储部分的再定向模块,第二数据存储部分包括一个或多个存储容器,每一个存储容器包括数据仓库的逻辑地指定的部分;
用于确定要将所接收的写入请求写入到第二数据存储部分上的哪个存储容器的确定模块;
用于标识要从第二数据存储部分离台到第一数据存储部分的至少一个存储容器的标识模块;以及
用于将所标识的存储容器离台到第一数据存储部分的离台模块,其中被离台的容器的数据顺序地存储在第一数据存储部分上。
10.权利要求9所述的计算机系统,其中标识要从第二数据存储部分离台到第一数据存储部分的至少一个存储容器包括访问指示了哪些存储容器将不会在指定量的时间内被使用的线索。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/486202 | 2014-09-15 | ||
US14/486,202 US9836419B2 (en) | 2014-09-15 | 2014-09-15 | Efficient data movement within file system volumes |
PCT/US2015/049874 WO2016044112A2 (en) | 2014-09-15 | 2015-09-14 | Efficient data movement within file system volumes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106716334A true CN106716334A (zh) | 2017-05-24 |
CN106716334B CN106716334B (zh) | 2020-03-13 |
Family
ID=54251729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580049767.6A Active CN106716334B (zh) | 2014-09-15 | 2015-09-14 | 文件系统卷内的高效数据移动 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9836419B2 (zh) |
EP (1) | EP3195104B1 (zh) |
CN (1) | CN106716334B (zh) |
WO (1) | WO2016044112A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107632783A (zh) * | 2017-09-14 | 2018-01-26 | 快云信息科技有限公司 | 将分布式存储系统接入容器的方法、装置、可读存储介质 |
CN109491589A (zh) * | 2017-09-13 | 2019-03-19 | 北京易华录信息技术股份有限公司 | 一种基于文件内容的分层处理方法及装置 |
WO2020113549A1 (en) * | 2018-12-07 | 2020-06-11 | Alibaba Group Holding Limited | External staging storage cluster mechanism to optimize archival data storage system on shingled magnetic recording hard disk drives |
CN112087493A (zh) * | 2017-09-05 | 2020-12-15 | 华为技术有限公司 | 对请求处理的方法、片上系统和公有云管理组件 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9483191B2 (en) * | 2013-03-15 | 2016-11-01 | Arris Enterprises, Inc. | Multi-tier storage for delivery of services |
US9891863B2 (en) * | 2015-07-31 | 2018-02-13 | Dell Products, L.P. | Handling shingled magnetic recording (SMR) drives in a tiered storage system |
JP6365454B2 (ja) * | 2015-08-03 | 2018-08-01 | 京セラドキュメントソリューションズ株式会社 | 画像形成装置 |
US10095506B2 (en) | 2016-02-12 | 2018-10-09 | Nutanix, Inc. | Virtualized file server data sharing |
US10031675B1 (en) * | 2016-03-31 | 2018-07-24 | Emc Corporation | Method and system for tiering data |
US11218418B2 (en) | 2016-05-20 | 2022-01-04 | Nutanix, Inc. | Scalable leadership election in a multi-processing computing environment |
US11204895B1 (en) * | 2016-09-28 | 2021-12-21 | Amazon Technologies, Inc. | Data payload clustering for data storage systems |
US11281624B1 (en) | 2016-09-28 | 2022-03-22 | Amazon Technologies, Inc. | Client-based batching of data payload |
US11562034B2 (en) | 2016-12-02 | 2023-01-24 | Nutanix, Inc. | Transparent referrals for distributed file servers |
US11568073B2 (en) | 2016-12-02 | 2023-01-31 | Nutanix, Inc. | Handling permissions for virtualized file servers |
US11294777B2 (en) | 2016-12-05 | 2022-04-05 | Nutanix, Inc. | Disaster recovery for distributed file servers, including metadata fixers |
US11288239B2 (en) | 2016-12-06 | 2022-03-29 | Nutanix, Inc. | Cloning virtualized file servers |
US11281484B2 (en) | 2016-12-06 | 2022-03-22 | Nutanix, Inc. | Virtualized server systems and methods including scaling of file system virtual machines |
US10446174B2 (en) | 2017-05-26 | 2019-10-15 | Microsoft Technology Licensing, Llc | File system for shingled magnetic recording (SMR) |
US10474368B1 (en) | 2018-04-24 | 2019-11-12 | Western Digital Technologies, Inc | Fast read operation utilizing reduced storage of metadata in a distributed encoded storage system |
US10749958B2 (en) | 2018-04-24 | 2020-08-18 | Western Digital Technologies, Inc. | Reduced storage of metadata in a distributed encoded storage system |
US10216424B1 (en) | 2018-04-25 | 2019-02-26 | Western Digital Technologies, Inc. | Staging of write operations for container-based storage for sequential media |
US11086826B2 (en) | 2018-04-30 | 2021-08-10 | Nutanix, Inc. | Virtualized server systems and methods including domain joining techniques |
US11770447B2 (en) | 2018-10-31 | 2023-09-26 | Nutanix, Inc. | Managing high-availability file servers |
CN111566611B (zh) * | 2019-09-12 | 2023-08-04 | 创新先进技术有限公司 | 日志结构存储系统 |
WO2019228572A2 (en) | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
WO2019228574A2 (en) | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
US10942852B1 (en) | 2019-09-12 | 2021-03-09 | Advanced New Technologies Co., Ltd. | Log-structured storage systems |
CN115398874A (zh) | 2019-09-12 | 2022-11-25 | 创新先进技术有限公司 | 日志结构存储系统 |
EP3682340A4 (en) | 2019-09-12 | 2020-12-02 | Advanced New Technologies Co., Ltd. | LOG-STRUCTURED STORAGE SYSTEMS |
SG11202002614XA (en) | 2019-09-12 | 2020-04-29 | Alibaba Group Holding Ltd | Log-structured storage systems |
CN111886591A (zh) | 2019-09-12 | 2020-11-03 | 创新先进技术有限公司 | 日志结构存储系统 |
CN111183450B (zh) | 2019-09-12 | 2024-04-19 | 创新先进技术有限公司 | 日志结构存储系统 |
KR20210034897A (ko) * | 2019-09-23 | 2021-03-31 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
US11372547B2 (en) * | 2020-02-13 | 2022-06-28 | International Business Machines Corporation | Compression of aging data during compaction |
US11768809B2 (en) | 2020-05-08 | 2023-09-26 | Nutanix, Inc. | Managing incremental snapshots for fast leader node bring-up |
KR20220124318A (ko) | 2021-03-02 | 2022-09-14 | 삼성전자주식회사 | 쓰기 동작을 리디렉션하는 스토리지 컨트롤러 및 이의 동작 방법 |
US12131192B2 (en) | 2021-03-18 | 2024-10-29 | Nutanix, Inc. | Scope-based distributed lock infrastructure for virtualized file server |
US20230066137A1 (en) | 2021-08-19 | 2023-03-02 | Nutanix, Inc. | User interfaces for disaster recovery of distributed file servers |
US12117972B2 (en) | 2021-08-19 | 2024-10-15 | Nutanix, Inc. | File server managers and systems for managing virtualized file servers |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005475A1 (en) * | 2006-06-30 | 2008-01-03 | Seagate Technology Llc | Hot data zones |
US20110258391A1 (en) * | 2007-12-06 | 2011-10-20 | Fusion-Io, Inc. | Apparatus, system, and method for destaging cached data |
US20130054927A1 (en) * | 2011-08-30 | 2013-02-28 | Bipul Raj | System and method for retaining deduplication in a storage object after a clone split operation |
CN103942157A (zh) * | 2013-01-22 | 2014-07-23 | 国际商业机器公司 | 用于计算存储环境中的数据处理的方法和系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136974B2 (en) * | 2003-06-19 | 2006-11-14 | Pillar Data Systems, Inc. | Systems and methods of data migration in snapshot operations |
GB0514529D0 (en) * | 2005-07-15 | 2005-08-24 | Ibm | Virtualisation engine and method, system, and computer program product for managing the storage of data |
US20070179981A1 (en) | 2006-01-31 | 2007-08-02 | International Business Machines Corporation | Efficient data management in a cluster file system |
JP5052278B2 (ja) | 2007-09-28 | 2012-10-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 記憶装置を制御する装置及び方法 |
WO2010035124A1 (en) | 2008-09-29 | 2010-04-01 | Sandisk Il Ltd. | File system for storage device which uses different cluster sizes |
US9021229B2 (en) | 2010-04-14 | 2015-04-28 | International Business Machines Corporation | Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity |
US9003149B2 (en) | 2011-05-26 | 2015-04-07 | International Business Machines Corporation | Transparent file system migration to a new physical location |
US8645662B2 (en) | 2011-12-23 | 2014-02-04 | Oracle International Corporation | Sub-lun auto-tiering |
US11347443B2 (en) | 2012-04-13 | 2022-05-31 | Veritas Technologies Llc | Multi-tier storage using multiple file sets |
JP6011153B2 (ja) * | 2012-08-22 | 2016-10-19 | 富士通株式会社 | ストレージシステム、ストレージ制御方法およびストレージ制御プログラム |
US9529546B2 (en) * | 2014-01-08 | 2016-12-27 | Netapp, Inc. | Global in-line extent-based deduplication |
-
2014
- 2014-09-15 US US14/486,202 patent/US9836419B2/en active Active
-
2015
- 2015-09-14 EP EP15775034.0A patent/EP3195104B1/en active Active
- 2015-09-14 CN CN201580049767.6A patent/CN106716334B/zh active Active
- 2015-09-14 WO PCT/US2015/049874 patent/WO2016044112A2/en active Application Filing
-
2017
- 2017-10-30 US US15/797,214 patent/US20180150422A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005475A1 (en) * | 2006-06-30 | 2008-01-03 | Seagate Technology Llc | Hot data zones |
US20110258391A1 (en) * | 2007-12-06 | 2011-10-20 | Fusion-Io, Inc. | Apparatus, system, and method for destaging cached data |
US20130054927A1 (en) * | 2011-08-30 | 2013-02-28 | Bipul Raj | System and method for retaining deduplication in a storage object after a clone split operation |
CN103942157A (zh) * | 2013-01-22 | 2014-07-23 | 国际商业机器公司 | 用于计算存储环境中的数据处理的方法和系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112087493A (zh) * | 2017-09-05 | 2020-12-15 | 华为技术有限公司 | 对请求处理的方法、片上系统和公有云管理组件 |
CN112087493B (zh) * | 2017-09-05 | 2022-02-22 | 华为技术有限公司 | 对请求处理的方法、片上系统和公有云管理组件 |
US11775316B2 (en) | 2017-09-05 | 2023-10-03 | Huawei Technologies Co., Ltd. | Request processing method, system on chip, and public cloud management component |
US11847470B2 (en) | 2017-09-05 | 2023-12-19 | Huawei Technologies Co., Ltd. | Request processing method, system on chip, and public cloud management component |
CN109491589A (zh) * | 2017-09-13 | 2019-03-19 | 北京易华录信息技术股份有限公司 | 一种基于文件内容的分层处理方法及装置 |
CN107632783A (zh) * | 2017-09-14 | 2018-01-26 | 快云信息科技有限公司 | 将分布式存储系统接入容器的方法、装置、可读存储介质 |
CN107632783B (zh) * | 2017-09-14 | 2020-07-03 | 快云信息科技有限公司 | 将分布式存储系统接入容器的方法、装置、可读存储介质 |
WO2020113549A1 (en) * | 2018-12-07 | 2020-06-11 | Alibaba Group Holding Limited | External staging storage cluster mechanism to optimize archival data storage system on shingled magnetic recording hard disk drives |
Also Published As
Publication number | Publication date |
---|---|
US9836419B2 (en) | 2017-12-05 |
CN106716334B (zh) | 2020-03-13 |
US20180150422A1 (en) | 2018-05-31 |
WO2016044112A3 (en) | 2016-05-06 |
EP3195104B1 (en) | 2020-07-22 |
EP3195104A2 (en) | 2017-07-26 |
WO2016044112A2 (en) | 2016-03-24 |
US20160077988A1 (en) | 2016-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106716334A (zh) | 文件系统卷内的高效数据移动 | |
KR102137761B1 (ko) | 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법 | |
KR102584018B1 (ko) | 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법 | |
US20230409473A1 (en) | Namespace change propagation in non-volatile memory devices | |
US9304904B2 (en) | Hierarchical flash translation layer | |
CN107066393B (zh) | 提高地址映射表中映射信息密度的方法 | |
US9274950B2 (en) | Data restructuring in multi-level memory hierarchies | |
Lee et al. | FAST: An efficient flash translation layer for flash memory | |
US8615640B2 (en) | System and method to efficiently schedule and/or commit write data to flash based SSDs attached to an array controller | |
CN104765575B (zh) | 信息存储处理方法 | |
KR102462305B1 (ko) | 고체 상태 드라이브의 판독 성능을 개선시키는 방법 및 장치 | |
US9507705B2 (en) | Write cache sorting | |
US20100174864A1 (en) | Performance in a data storage system | |
CN105339910B (zh) | 在混合驱动器中的虚拟nand容量扩展 | |
KR20100021868A (ko) | 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법 | |
CN103314363A (zh) | 用于设计分级存储器系统的高速存储器系统和方法 | |
CN103562843A (zh) | 在具有多个高速缓存的存储系统中高速缓存数据 | |
CN102841854A (zh) | 根据动态分级存储器缓存认知执行数据读取的方法和系统 | |
CN104866428A (zh) | 数据存取方法和数据存取装置 | |
CN103890856A (zh) | 支持内存储数据结构的可移位存储器 | |
CN104778100A (zh) | 一种安全备份数据的方法 | |
Park et al. | A pattern adaptive NAND flash memory storage structure | |
KR100847021B1 (ko) | 데이터 저장 장치, 데이터 저장 방법 및 그 방법이 기록된컴퓨터로 읽을 수 있는 기록매체 | |
KR20130089324A (ko) | 데이터 입출력 컨트롤러 및 이를 포함하는 시스템 | |
KR101022001B1 (ko) | 플래시 메모리 시스템 및 플래시 메모리의 관리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |