CN105378641B - 在异构数据卷中配置多个层 - Google Patents
在异构数据卷中配置多个层 Download PDFInfo
- Publication number
- CN105378641B CN105378641B CN201480015258.7A CN201480015258A CN105378641B CN 105378641 B CN105378641 B CN 105378641B CN 201480015258 A CN201480015258 A CN 201480015258A CN 105378641 B CN105378641 B CN 105378641B
- Authority
- CN
- China
- Prior art keywords
- volume
- layer
- storage
- configuration
- movement
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
配置具有对应于不同特性集合的多层的卷。将被配置的卷随将位于该卷中的多层一起被标识。对于将在所述卷内被配置的每层,对应的特性集合被标识,以便被应用于每层。该对应的特征集合可以是基于在配置时可用或预期可用的底层存储***。然后使得采用具有对应的特性集合的对应层对所述卷进行配置。同样,配置被确定为具有一个或者多个存储特性的文件。基于这些存储特性,然后使得所述文件被指派给合适的层。
Description
背景技术
计算***通过执行软件程序获得高度的功能性。计算***使用存储分层以便存储这样的软件程序和其他文件。本地存储分层的最低级别可以是诸如机械盘、光盘等的盘。存储分层中的更高层可以是诸如固态盘或非易失性存储器等的设备。
当最需要的数据块被位于存储分层中的高处时,计算***最高效地操作,其中,较不需要的数据块可以位于存储分层中的较低处。对于在存储分层内的何处放置数据块的决策常规上在文件***之下发生。
文件***自身通常不可见该存储分层,但代替地,以卷的形式看待存储。卷是对文件***可见的单个逻辑命名空间。卷可以被配置为特定大小,并且通常对应于底层存储设备的边界。例如,盘可以是单个卷,或者可能被分区为多个卷。此外,一个卷可以由多个盘组成。文件***然后可以在卷内构成目录,并且将文件保存到命名空间中(或是在命名空间的根目录处,或是在命名空间的目录中的一个目录内)。
单个卷可以具有特定特性。例如,卷可以被设置为成镜像的,并且由此具有特定级别的内置冗余。卷还可以被设置为加密或压缩的。常规上,这些特性在每卷的基础上被设置。由此,文件***自身将该卷内的任何存储块看作具有与该卷内的任何其他存储块相同的特性,并且移交任何从文件***的角度概括的、关于块如何被放置到存储***中的决策。
发明内容
本文中描述的至少一些实施例涉及配置具有对应于不同特性集合的多个层的卷。将被配置的卷随将位于该卷中的多个层一起被标识。对于将配置在所述卷内的每层而言,对应的特性集合被标识为将应用于每层。在厚配置(thick provisioning)的情况下,该对应的特性集合基于在配置时可用的底层存储***。在精简配置的情况下,该对应的特性集合是基于预期其至少一些在所述配置之后的某一时刻变得可用的底层存储***。在任一种情况下,作为所述配置过程的一部分,使得向所述卷配置具有对应特性集合的对应层。
本文中描述的至少一些实施例涉及配置文件,其中,已确定所述文件具有一个或多个存储特性。基于这些存储特性,然后使得所述文件被指派给由具有合适特性存储的底层存储***支持的合适层。所述配置还可以包括预期未来的失败状况,以及检测当前的失败状况,并且允许在不必影响所述卷的剩余部分的情况下基于每层做出合适的响应。
本摘要不旨在标识所要求保护的主题的关键特征或本质特征,其也不旨在被用作在确定所要求保护的主题的范围时的辅助。
附图说明
为了描述可以获得上面记载的和其他的优点和特征的方式,将参考附图展现对各种实施例的更特定描述。应当理解,这些图仅描绘了样本实施例,并且因此将不被认为限制本发明的范围,通过使用附图,将使用附加的特殊性和细节来描述和阐释实施例,其中:
图1抽象地图示出了本文中描述的某些实施例可以在其中被采用的计算***;
图2图示出了一个***,该***包括生成并向文件***暴露具有多层的异构卷的卷***,以及包括配置和监测***;
图3图示出了一个计算环境,在其中,卷***使用卷暴露***来将卷向上暴露给文件***,所述卷具有多个具有不同特性的存储层;
图4图示出了一个计算环境,除了在图3中被精简配置的卷长字节(slab)现在进行了厚配置以及该计算***对卷进行了扩展之外,该计算环境与图3的计算环境类似;
图5A图示出了用于使得文件***操作以将文件***命名空间放置到卷中的方法的流程图;
图5B图示出了用于使得文件***操作以在卷内移动文件***命名空间(或其片段)的方法的流程图;
图6图示出了用于使得层引擎基于文件***命名空间或其片段的动态改变的特性来移动该文件***命名空间(或其片段)的方法的流程图;
图7图示出了用于配置具有对应于不同特性集合的多层的卷的方法的流程图,所述方法可以由图2的卷配置部件执行;
图8图示出了可以由图2的文件***命名空间配置部件执行的、用于对配置文件***命名空间的请求做出响应的方法的流程图;
图9图示出了可以由图2的监测部件执行的、用于在配置之后对卷的使用进行监测的方法的流程图;
图10图示出了可以例如由图2的扩展部件执行的、用于配置对异构卷的特定层的扩展的方法的流程图;
图11图示出了用于在其中不存在用于支持扩展的底层存储***的情况下对异构卷的特定层的扩展进行厚配置的方法的流程图;以及
图12图示出了用于向现有卷添加层的方法的流程图。
具体实施方式
根据本文中描述的实施例,描述了配置具有对应于不同特性集合的多层的卷。将被配置的卷随将位于该卷中的多层一起被标识。对于将在卷内被配置的每层而言,对应的特性集合被标识为将被应用于每层。该对应特性集合可以是基于在配置时可用或预期可用的底层存储***的。然后,采用具有对应特性集合的对应层对卷进行配置。还描述了配置文件,该文件已被确定为具有一个或多个存储特性。基于这些存储特性,然后使得该文件被指派给合适的层。所述提供还可以有助于对卷的使用进行监测,以及当潜在失败状况已发生或可能会发生时提出特定响应。
将关于图1描述对一个计算***的某种介绍性讨论。然后,将关于图2描述可以在其中被配置、向上供应和使用多层卷的***的概要视图。然后将关于图3和4描述一种用于创建和向上暴露多层卷的机制。然后将关于图5和6描述这样的多层卷的文件***的使用。最后,将关于图7直到12描述根据在本文中描述的原理的示例配置和监测操作。
计算***现在正日益采用多种多样的形式。计算***例如可以是手持式设备、器具、膝上计算机、台式计算机、大型机、分布式计算***或甚至是常规上还未被看作计算***的设备。在本说明书和权利要求中,术语“计算***”被宽泛地定义为包括任何如下这样的设备或***(或其组合),即:其包括至少一个物理和有形处理器,以及一个能够在其上具有可被该处理器执行的计算机可执行指令的物理和有形存储器。所述存储器可以采用任何形式,并且可以取决于计算***的性质和形式。计算***可以分布在网络环境上,并且可以包括多组成计算***。
如图1中所图示的,在其最基础的配置中,计算***100通常包括至少一个处理单元102和存储器104。存储器104可以是物理***存储器,其可以是易失性的、非易失性的或这两者的某种组合。术语“存储器”在本文中还可以用于指诸如物理存储介质之类的非易失性大容量存储。如果计算***是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如本文中使用的,术语“可执行模块”或“可执行部件”可以指软件对象、例程或可以在计算***上执行的方法。本文中描述的不同部件、模块、引擎和服务可以被实现为在计算***上执行的对象或过程(例如作为单独的线程)。
在随后的描述中,参考由一个或多个计算***执行的动作来描述实施例。如果这样的动作是以软件实现的,则执行该动作的关联计算***的一个或多个处理器响应于已执行了计算机可执行指令而指导该计算***的操作。例如,这样的计算机可执行指令可以被体现在形成计算机程序产品的一个或多个计算机可读介质中。这样的操作示例涉及操纵数据。计算机可执行指令(以及所操纵的数据)可以被存储在计算***100的存储器104中。计算***100还可以包含通信信道108,该通信信道108允许计算***100例如通过网络110与其他消息处理器进行通信。
如将在下面更详细讨论的,在本文中描述的实施例可以包括或利用专用或通用计算机,所述专用或通用计算机包括诸如例如一个或多个处理器和***存储器之类的计算机硬件。在本文中描述的实施例还包括用于运载或存储计算机可执行指令和/或数据结构的物理的和其他的计算机可读介质。这样的计算机可读介质可以是任何可被通用或专用计算机***访问的可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。运载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例并且不作为限制,本发明的实施例可以包括至少两个明显不同种类的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括:RAM、ROM、EEPROM、CD-ROM或其他光盘存储装置,磁盘存储装置或其他磁存储设备,或者可用于存储采用计算机可执行指令或数据结构的形式的所期望的程序代码装置并可被通用或专用计算机访问的任何其他有形介质。
“网络”被定义为使得能进行计算机***和/或模块和/或其他电子设备之间的电子数据传输的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线的、无线的或者是硬连线或无线的组合的)被传递或提供给计算机时,该计算机恰当地将该连接看作传输介质。传输介质可以包括可用于运载采用计算机可执行指令或数据结构的形式的所期望的程序代码装置并可被通用或专用计算机访问的网络和/或数据链路。以上的组合也应当被包括在计算机可读介质的范围内。
进一步地,当到达各种计算机***部件时,采用计算机可执行指令或数据结构形式的程序代码装置可以自动从传输介质传递到计算机存储介质(或者反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓存在网络接口模块(例如“NIC”)内的RAM中,并且然后最终被传递给计算机***RAM和/或计算机***处的较不易失的计算机存储介质。由此,应当理解,计算机存储介质可以被包括在也(或甚至主要地)利用传输介质的计算机***部件中。
计算机可执行指令例如包括指令和数据,当所述指令和数据在处理器处执行时,其使得通用计算机、专用计算机或专用处理设备执行特定功能或功能组。计算机可执行指令例如可以是二进制的中间格式指令(诸如汇编语言)或甚至是源代码。尽管以特定于结构特征和/或方法动作的语言描述了主题,但应当理解,在所附权利要求中限定的主题不一定限于所描述特征或上面描述的动作。而是,所描述的特征和动作作为实现权利要求的示例形式被公开。
本领域的技术人员应当领会到,本发明可以在具有许多类型的计算机***配置的网络计算环境中被实践,所述许多类型的计算机***配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器***、基于微处理器的或可编程的消费电子产品、网络PC、微型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换装置等。本发明还可以在分布式***环境中被实践,在所述分布式***环境中,通过网络来链接(经由硬连线的数据链路、无线数据链路或经由硬连线和无线数据链路的组合)的本地和远程计算机***两者都执行任务。在分布式***环境中,程序模块可以位于本地和远程存储器存储设备两者中。
现在将关于图2描述可以在其中被配置、向上供应和使用多层卷的***的概要视图。此后,将关于图3和4描述用于创建多层卷的机制。然后将关于图5和6描述这样的多层卷的文件***的使用。最后,将关于图7直到12描述根据在本文中描述的原理的示例配置和监测操作。
图2图示出了包括文件***201、卷***202和配置***203的***200。卷***202以如下这样的方式将卷211向上暴露给文件***201,即:该卷具有多个层,每个层对应于不同的存储特性集合。由此,卷211是由不同存储类型的不同层组成的异构卷。例如,卷211被图示为具有层212A、212B、212C和212D。
***200例如可以在图1的计算***100中实现。如果是这种情况,则文件***201、卷***202和配置***203可以响应于计算***100的(一个或者多个)处理器102执行计算机可执行指令而被创建和/或操作。例如,这样的计算机可执行指令可以存储在计算机可读介质上,所述计算机可读介质诸如是被包括在计算机程序产品内的计算机可读存储介质。
文件***201基于将被应用于文件***命名空间项的存储特性,将文件***命名空间(诸如文件和目录)存储在异构卷211的特定层中。卷***202包括映射***212,该映射***212以支持异构卷的每层的特性集合的方式,将卷的逻辑存储地址映射到底层存储***213的物理地址位置。
***200还包括提供若干提供和监测功能的配置***203。例如,配置***203包括卷配置部件221,其促进将卷(例如卷211)配置为具有多个层(例如层212 A、212B、212C和212D)。与卷***202进行的通信231用于完成卷的配置。
配置***203还可以包括文件***命名空间配置部件222,该文件***命名空间配置部件222使用通信232与文件***进行通信,以便在文件或目录被创建时对其进行配置。特别地,所述配置有助于确定将被应用于文件***命名空间的存储特性集合。
配置***203还包括层扩展部件223,该层扩展部件223有助于经由通信231对层进行扩展。监测部件224对卷的性能和/或使用进行监测,并且如果性能恶化或遭遇失败状况或正在逼近失败状况,则采取合适的行动。
首先将关于图3和4描述示例卷***202。然后,将关于图5和6描述示例文件***201。最后,将关于图7到12描述配置***203的示例操作。
图3图示出了计算环境300,在其中,卷***302使用卷暴露***310将卷311向上暴露给文件***301。图3的文件***301、卷***302和卷311分别是图2的文件***201、卷***202和卷211的示例。
卷311由以优选连续的逻辑地址区段(extent)的形式表示的存储构成。在本说明书和权利要求中,“卷”被定义为以单个命名空间的形式呈现给文件***的、一个或多个逻辑地址区段的任何组。当文件***301向卷***302发出读或写请求时,该文件***请求包括逻辑地址。卷***302被配置为使用由文件***301提供的逻辑地址来识别正被寻址的卷311的部分。由此,从文件***301的角度,文件***301可以访问遍及卷311的整个区段逻辑上可寻址的整个卷311。
然而,与常规卷不同,并非卷311中的全部存储位置都具有相同的特性。由此,卷311可以被看作由具有不同特性的部分组成的异构卷。该异构特征由映射***320支持,所述映射***320将卷311的逻辑存储位置中的至少一些逻辑存储位置的每个逻辑存储位置映射到底层存储***330中的对应物理存储位置。图3的映射***320和存储***330分别是图2的映射***212和存储***213的示例。在图3中,底层存储***330的每个被图示为具有特定形状,其象征由对应底层存储***供应的存储的有区别的特性集合。
例如,存储***330A和330C两者都被图示为圆形,这表示这些存储***提供具有共同特性集合的存储。存储***330B和330E被图示为三角形,这表示这些存储***提供具有彼此共同的特性集合的存储,所述特性集合与存储***330A和330C的特性集合不同。存储***330D被示为梯形,这表示该存储***提供如下这样的存储,即:所述存储具有与其他存储***中的任何存储***都不同的特性集合。存储***330F被示为正方形,这表示该存储***提供如下这样的存储,即:所述存储具有与其他存储***中的任何存储***都不同的另外的不同的特性集合。
底层存储***330被图示为包括具有四个不同特性集合(由圆形、三角形、梯形和正方形象征性地表示)的六个存储***330A到330F。然而,省略号330G表示:只要存在共同地供应具有不同特性集合的存储的至少两个存储***,则底层存储***330可以包括任何数量的存储***,不论其多于、还是等于或者还是少于图3中所图示的存储***数量。映射***320利用不同特性集合,以便将异构卷311向上提供给文件***。
此时,将描述一些术语。在本说明书和权利要求中,“特性集合”被描述为一个或多个特性的集合。由此,单个特性可以被看作其自身是一个“特性集合”。下面将进一步深入描述存储的特性的示例。此外,当存储***被描述为供应具有特性集合的存储时,这并不是说在由存储所供应的特性中不存在超过该特性集合的更多特性。同样,如果给定特性集合(称为“第一特性集合”)包括至少一个不被包括在另一特性集合(称为“第二特性集合”)中的特性,或者如果第二特性集合包括至少一个不被包括在第一特性集合中的特性,则第一特性集合“不同于”第二特性集合。由此,存在这样的情况,其中,第一特性集合和第二特性集合共享一个或多个共同特性,但根据该定义,它们仍然可以是不同的特性集合。
术语“物理”存储位置或“物理”地址通常将用于分别指底层存储***330中的存储位置或地址。这样做仅用于将由文件***301在对异构卷311进行寻址时使用的寻址方案(即“逻辑寻址方案”)与由底层存储***330用于访问由对应的底层存储***供应的存储时使用的寻址方案(即“物理寻址方案”)区分开。例如,文件***301使用“逻辑”地址来对卷311内的存储进行寻址。然而,存储***330A到330F使用“物理”地址来访问相应的存储位置331A到331F。
然而,这不暗示底层存储***自身必须是物理设备或***,尽管可能是这种情况。例如,可以存在甚至将底层存储***与实际物理存储介质区别开的一个或多个另外的映射抽象级别。作为示例,底层存储***可以是诸如闪存器、固态盘、机械盘等的物理存储***。然而,存储***还可以是某种类型的合并的存储***,其向上供应被映射到另外的底层存储***的地址。此外,可以存在存储***在将数据存储到给定存储位置之前对所述数据应用的一个或多个变换(诸如加密或压缩),以及存储***从给定存储位置读取数据之后对所述数据应用的一个或多个逆变换(诸如解密或解压缩)。
对定义的澄清现在将转向存储位置的大小的粒度。在图3中,最精细图示的存储位置粒度(在下文中称为“长字节”)表示映射***320采用其进行工作以便映射存储位置的基本单位。每个长字节表示由文件***301识别的逻辑寻址方案中的连续地址位置(例如,连续逻辑块)。为简化映射320,尽管不是严格必需,但每个长字节还可以表示物理寻址方案中的连续地址位置。
例如,在图3中,卷311被图示为包括被标记为“A”到“Q” 的17个长字节。卷中的长字节的准确数量和大小对于在本文中描述的原理不是至关重要的。较小的长字节具有对卷中的不同特性集合的存储之间的边界有更精细粒度的控制的优点,但具有增加了映射***320跟踪的映射数量的缺点。由此,长字节的大小将是设计的选择,其取决于在卷***310的特定实现方式的上下文中对这些优点和缺点的平衡。在一个实施例中,长字节超过一百兆字节。这可能看起来相当大,但如果卷被提供在太字节(terabyte)的范围内的话,则映射***320仍将跟踪许多数以千计的长字节映射。由此,为了清楚解释在本文中描述的原理起见,图3表示了简化的***。尽管不是必需,但对长字节大小的其他选择可以是一兆字节或以上。
使长字节具有固定大小简化了映射操作,尽管在本文中描述的宽泛方面下,这不是必需的。例如,给定的长字节可以在大小上具有某个常数的二进制倍数。例如,假设最小的长字节(以及因此常数)为100兆字节。映射***可以跟踪那些还为200兆字节、400兆字节、800兆字节、1.6千兆字节等的长字节。尽管这确实增加了映射算法的复杂度,但它也可以减少需要被跟踪的实际映射的数量,而同时仍然允许对区域边界位置的精细粒度的控制。
物理存储位置331A到331F中的每个还具有表示映射的基本单元的长字节。例如,在本示例中,物理存储位置331A包括长字节 a1到a4,物理存储位置331B包括长字节 b1到b3,物理存储位置331C包括长字节 c1到c4,物理存储位置331D包括长字节 d1到d6,物理存储位置331E包括长字节 e1到e3,并且物理存储位置331F包括长字节 f1到f4。当然,本示例为了读者的利益而被大大地简化了。取决于长字节大小,每个底层存储***330可以更有益地包括数以百计、数以千计或甚至数以百万计的长字节。在下文中,卷311中的长字节也可以称为“卷长字节”,而底层存储***中的长字节也可以称为“存储长字节”。
如果映射***320将卷长字节映射到底层存储***中的特定存储长字节,则卷长字节是“厚配置”的。例如,卷长字节 A到G被厚配置,因为映射***320将它们映射到在底层存储***330中的相应存储长字节 a1、a3、a4、c2、b1、b3和e3。同样,卷长字节 L到Q被厚配置,因为为映射***320将它们映射到在底层存储***330中的相应长字节 d3、d1、d2、d4、d5和d6。
如果映射***320直到卷长字节被文件***需要之前没有把该卷长字节映射到底层存储***中的特定存储长字节,则卷长字节是“精简配置”的。例如,卷长字节 H到K未被映射***320映射到任何底层存储,尽管一旦卷长字节 H到K中的任一个被实际用于存储数据,映射***320可以知道存储***330F的存储长字节 f1到f4可用于进行正确映射。
在本说明书和权利要求中,“区域”被定义为在呈现给文件***(例如文件***301)的卷(例如卷311)的逻辑寻址方案中连续的一个或多个长字节的集合。例如,卷311被图示为包括第一区域312A、第二区域312B、第三区域312C和第四区域312D。然而,在本文中描述的原理不限于卷内的区域数量,以及下面甚至将进一步描述增加了区域数量的示例。
每个区域对应于一个共同特性集合(也称为“区域特性集合”),该共同特性集合与由该组成卷长字节被映射到的(一个或者多个)底层存储***所供应的特性集合“一致”。例如,第一区域312A具有一个如下这样的特性集合(在下文中称为“第一区域特性集合”),即:该特性集合与支持由具有被映射到组成卷长字节 A到D的长字节的存储***(例如被表示为圆形的330A和330C)供应的存储的特性集合一致。如果区域特性集合1)与存储特性集合相同,或者2)为存储特性集合的子集,其具有由底层存储供应的、不会与区域特性集合内的任何特性不兼容的任何额外特性(超过区域特性集合中的那些),则区域特性集合与存储特性集合“一致”。
第二区域312B具有第二区域特性集合,该第二区域特性集合与由具有被映射到组成卷长字节 E到G的长字节的存储***(例如由三角形表示的330B和330E)供应的支持存储的特性集合一致。第三区域312C具有第三区域特性集合,该第三区域特性集合与由存储***330F供应的存储的特性集合一致。相应地,一旦在卷长字节 H到K上检测到写操作,则映射***320已经准备好将把区域312C的卷长字节 H到K中的任一卷映射到存储***330F(由正方形表示)的存储长字节 f1到f4中的任一个。第四区域312D具有第四区域特性集合,该第四区域特性集合与由具有被映射到组成卷长字节 L到Q的长字节的存储***(例如由梯形表示的330D)供应的支持存储的特性集合一致。
如果某个区域的组成卷长字节全部都是厚配置的,则该区域被定义为“厚配置”。如果某个区域的组成卷长字节全部都是精简配置的,则该区域被定义为“精简配置”。由此,在图3中,区域312A、312B和312D是厚配置的,而区域312C是精简配置的。
“层”被定义为具有共同区域特性集合的一个或多个区域的集合。层中的给定区域不需要与该层内的任何其他区域连续。在图3的情况下,区域312A到312D的每个具有不同的区域特性集合。图3中不存在具有多于一个区域的层。相应地,图3中也存在四层。第一层仅包括第一区域312A,并且具有与第一区域特性集合相同的特性集合(在下文中称为“第一层特性集合”)。第二层仅包括第二区域312B,并且具有与第二区域特性集合相同的特性集合(在下文中称为“第二层特性集合”)。第三层仅包括第三区域312C,并且具有与第三区域特性集合相同的特性集合(在下文中称为“第三层特性集合”)。第四层仅包括第四区域312D,并且具有与第四区域特性集合相同的特性集合(在下文中称为“第四层特性集合”)。在下面关于图4提供的示例中,添加第五区域(412E)以便扩展第一层。然而,对于图3的描述,第一到第四区域一对一地对应于第一到第四层。在本段中提到的第一、第二、第三和第四层是图2的层212A、212B、212C和212D的示例。
如果层的(一个或者多个)组成区域全部是厚配置的,则该层被定义为“厚配置”的。如果层的(一个或者多个)组成区域是精简配置的,则该层被定义为“精简配置”的。由此,在图3中,第一、第二和第四层是厚配置的,而第三区域是精简配置的。当响应于配置指令而初始设置时,层可以是厚配置的或精简配置的。
文件***301包括关于卷311的元数据305,所述元数据305诸如是卷的大小以及每层的大小和(一个或者多个)逻辑存储位置。元数据305还可以包括每层的层特性集合。元数据305例如可以持续存在。文件***301可以使用该元数据305来做出关于将文件***命名空间(诸如目录或文件)或其部分放置在卷311中的何处的决策。
省略号313表示卷暴露***310可以将更多卷向上供应给文件***。附加卷也可以是异构的,并且可以使用相同的底层存储***。例如,在图3中,在仅卷311被向上暴露的情况下,长字节 a2、b2、c1、c3、c4、e1、e2、f1、f2、f3和f4每个被图示为未映射。相应地,这些未映射的长字节可由卷暴露***310使用,以便通过使用关于构造第一卷311所描述的相同原理构造一个或多个附加卷(未示出)。
任何给定特性集合中的任何特性可以是可在确定在其中放置文件***命名空间(诸如目录或文件***)的有效层时与文件***或其他决策制定逻辑有任何相关性的任何特性。现在将提供示例,尽管这种示例枚举只是可能的相关特性的少量采样。
特性的一个示例可以是底层存储***的实际类型。例如,类型特性可以规定闪速存储器、盘设备、云存储或任何其他类型的存储***。类型特性还可以规定较宽泛的类别,诸如不涉及机械交互段的固态存储,或者具有一个或多个机械交互段的机械存储。
特性还可以是与存储的性能相关的性能特性。例如,读/写性能特性涉及当执行读/写操作时存储的性能。例如,读/写性能特性可以是等待时间(读和/或写)、数据传递速度(读和/或写)等的函数。
性能特性还可以是瞬态性能特性,该瞬态性能特性可以是任何给定比特将在给定时间段内在存储装置中翻转的可能性的函数。例如,瞬态性能特性可以指示出存储装置能够安全地存储数据达特定数量的天、周或年。瞬态性能特性可以是在随后的写被认为是不可靠或不可能的之前给定大小的存储装置可以预期耐受的预期写操作数量的函数。例如,存储装置可以具有最大10、100或1000个写操作。瞬态性能特性还可以规定存储装置是易失性还是非易失性的。
特性可以是与内置在存储中的冗余水平相关的弹性特性。例如,某些存储可以是双路镜像的,提供所述双路镜像以经受住单个物理存储设备故障。某些存储可以具有经受得住多于一个物理设备故障的较高冗余水平,以及弹性特性可以规定最小的冗余水平。
特性还可以指示出存储是否是远程复制的,所述远程复制涉及在远程位置中保留数据的副本。
特性还可以与加密属性相关。例如,存储***可以具有如下这样的硬件和/或软件,即:所述硬件和/或软件在存储之前对数据进行加密,以及在从存储中读取之后对数据进行解密,由此安全地存储数据,同时允许文件***不受阻碍地对数据进行操作。加密特性还可以规定加密的最小安全性,诸如是否必需128比特加密。
特性还可以是压缩特性,在该情况下,存储***具有如下这样的硬件和/或软件,即:所述硬件和/或软件在对存储进行写入之前对数据进行压缩,以及在从存储读取之后对数据进行解压缩,由此以压缩形式存储数据,同时允许文件***对未压缩数据进行操作。压缩特性还可以表示压缩是否必须是无损的,或者某种水平的有损压缩是否是可接受的,以及如果是,那么何种水平的有损压缩是可接受的。
特性还可以包括对于存储***的不寻求惩罚(seek penalty)的存在。如果寻求惩罚存在,则该特性还可以规定该寻求惩罚的特征。特性集合还可以包括底层存储装置的功率消耗属性。
针对给定层的属性集合可以包括这些已枚举特性或附加未枚举特性或其组合中的任何一个或多个。
图4图示出了环境400,该环境400对图3的示例进行扩展,并且图示出了自图3的情形之后的发生的若干事情。举例来说,映射***320现在图示出了卷长字节 J到存储长字节f1的映射。由此,在某一时刻,文件***301向长字节 J内的某个逻辑地址空间进行写入,从而使得映射***320通过制定对于支持区域312C的特性的底层存储长字节的实际映射来作出反应。由此,在图4的状态下,图4的第三区域312C、第三层和卷311’可以被看作“部分厚配置”的。如果存在包含在区域、层或卷中的至少一个厚配置的卷长字节和至少一个精简配置的卷长字节,则所述区域、层或卷是“部分厚配置”的。
发生的另一件事情是图3的卷311已被卷暴露***310扩展为形成了已扩展卷311’,其包括具有两个卷长字节 R和S的第五区域412E。第五区域412E扩展了之前仅包括第一区域312A的第一层。相应地,现在第一层包括两个区域312A和412E。如果执行了对附加区域的厚配置,则映射***320通过将附加长字节 R和S映射到存储***330C的相应存储长字节 c3和c4而对用于扩展第一层的指令做出响应,所述存储***330C提供具有与第一层特性集合一致的特性集合的存储。卷中的任何层由此可以通过厚配置而被扩展,只要存在可用于支持该扩展的兼容的底层存储。
该映射操作导致:对卷311’中的卷长字节内的逻辑地址的任何文件***写操作被转化为对对应的所映射的存储长字节中的对应物理地址的写请求。如果卷长字节仅仅是精简配置的,则写请求还导致该卷长字节到一致的存储长字节的映射。如果文件***对卷311’中的卷长字节内的逻辑地址发出读操作,则映射导致产生来自对应的所映射的存储长字节中的对应物理地址的读请求。
相应地,卷***302是一种有效机制,其用于向文件***提供异构的卷,允许用于在命名空间的合适层中恰当地放置文件***命名空间(诸如目录或文件)或甚至文件的部分的智能决策制定。针对给定文件***命名空间或其部分的合适特性集合可以响应于动态条件而改变,这导致只要针对该文件***命名空间的特性保证被尊重,则文件***将该文件***命名空间或其部分从一层移动到另一层。
已关于图3和4描述了卷***202的一个示例,现在将关于图5A、5B和6描述文件***201的示例操作。此后,将关于图7到12描述配置***203的示例操作。
图5A图示出了方法500A的流程图,方法500A用于操作文件***以基于将被应用于文件***命名空间的特性集合的当前状态而将文件***命名空间放置在底层卷中。例如,方法500A可以由图3的文件***301对图3的卷311和/或对图4的卷311’执行。
方法500A包括标识将被放置到卷中的文件***命名空间的动作(动作501A)。文件***命名空间例如可以是目录或文件。在某些实施例中,文件***命名空间的一部分可以被标识为将被放置在卷中。例如,该标识(动作501A)可以在文件***命名空间将被写入到卷中时发生。
方法500A还包括确定对应于文件***命名空间的存储特性集合(动作502A),或者换句话说,确定在将文件***命名空间放置到卷中时将被应用于文件***命名空间的存储特性集合。例如,在本文中提供的示例(在下文中称为“主题示例”)中,假设文件***命名空间是刚被创建的文件,并且文件将被加密。文件***将由此确定在存储时加密存储特性将被应用于该文件。
将被应用于任何给定文件***命名空间的存储特性集合可以由文件***201、由配置***203或者由文件***201和配置***203使用通信232的组合来确定。
存储特性集合可以响应于用户输入而被确定。例如,用户可以明确声明所期望的存储特性,以及可能声明所期望的存储特性是强制性的还是可选的。例如,在主题示例中,假设用户声明了文件将具有强制性的加密存储特性和可选的压缩存储特性。
用户还可以为文件***命名空间表达更概括的目标。例如,在主题示例中,可能用户规定了存储的主要目标是保持文件中的信息不被发现,而还表达了保持文件大小在特定阈值之下的次要目标。基于这些所声明的目标并且考虑到未压缩文件的大小,文件***201和/或配置***203可以向文件指派强制性的加密存储特性和可选的压缩存储特性。
文件***还标识了卷内的每层的特性集合和逻辑地址区段(动作503A)。例如,如先前关于图3和4描述的,以推送方式(诸如,当卷被创建或扩展时)和/或以拉取方式(例如,响应于当卷被创建或扩展时从文件***301到卷***302的查询)向文件***提供了元数据305。与标识文件***命名空间(动作501A)及其关联的特性集合(动作502A)并行地示出了标识针对每层的特性集合和逻辑地址区段的动作(动作503A),因为元数据305可以由文件***301在任何时间获得,甚至可能在文件***命名空间被标识之前获得。
存在可以在元数据305中表示针对每层的特性集合的若干不同方式。在一个实施例中,对于每层明确枚举出特性集合。在另一实施例中,采用某种继承来以更精简(compressed)的形式表示特性集合。例如,基于继承规则,特定层可以从卷级别特性继承特性。
通过使用该信息,文件***301和/或配置***303然后可以标识将把文件***命名空间存储到其中的卷的特定层(动作504A)。这可以基于以下来执行:将文件***命名空间的存储特性集合与所标识的层的特性集合进行匹配(动作504A),以找到存在与文件***命名空间的存储特性集合一致的特性集合的全部那些层。
例如,再次考虑其中将被存储的文件的存储特性集合包括强制性的加密存储特性和可选的压缩存储特性的主题示例。现在假设第一层提供加密和压缩,而第二层提供仅加密。然后,第一和第二层两者都将具有与文件***命名空间的特性集合兼容的特性集合。在此情况下,文件***将选取第一层来将文件存储在其中。
再次考虑其中存在仅一个提供加密(但没有压缩)的层和仅一个供应压缩(但没有加密)的其他层的主题示例。在该情况下,文件***和/或配置***可以选择提供加密(但没有压缩)的层,因为加密是文件的强制性特性,而压缩仅是文件的可选特性。
考虑其中不存在执行加密的层的最终示例。在此情况下,文件***和/或配置***可以通过执行诸如以下的任何合适行动来对这样的失败做出响应:1)通知用户文件存储已失败,并且请求是否改变对于文件的特性或目标,或者2)在最匹配的层中保存文件,但向用户通知次优存储,并且请求存储是否应当被取消。
尽管在本文中描述的原理不限于用于找到与对于文件的特性集合相匹配的层的任何特定机制,但是一种用于找到最匹配的层的可能方法如下。根据该示例方法,将文件的特性集合(“文件特性集合”)与由层供应的特性集合(“层特性集合”)进行比较。如果文件特性集合与层特性集合之间存在准确匹配,并且其中在层特性集合中没有提供附加特性,则该层被选择为对于该文件的目标。如果不存在这样的层,则选择如下这样的层:文件特性集合与该层特性集合之间存在准确匹配,但其中最少的附加特性被供应在该层特性集合中。在不分胜负的情况下,选择具有最多可用块的层。
如果文件特性集合与层特性集合之间不存在准确匹配,则选择具有最匹配的层特性的层,该层没有在层特性集合中所供应的附加特性。如果不存在这样的层,则选择如下这样的层,即:其具有最匹配的层特性,但其中在层特性集合中供应最少的附加特性。再一次地,在不分胜负的情况下,选择具有最多可用块的层。
最佳匹配算法的目的不仅在于提供将文件放置在其中的良好匹配层,而还在于提供可预测的行为。选取具有最少量附加层特性的准确匹配背后的动机将是选取如下这样的层,即:该层将具有基于所期望文件特性集合的最可预测的行为。例如,如果卷具有两层,一层具有不寻求惩罚的特性,而另一层具有不寻求惩罚的特性和加密特性,但文件仅要求具有不寻求惩罚的特性,则可以最好选取仅仅具有不寻求惩罚的特性的层,因为加密要求进行大量处理,并且可以减少由具有不寻求惩罚的特性所寻求的性能益处。
一旦找到用于存储文件***命名空间的合适层(动作504A),则文件***301使得该文件***命名空间被存储在该合适的层中(动作505A)。
图5B图示出了方法500B的流程图,方法500B用于将操作文件***基于将被应用于文件***命名空间的特性集合的当前状态,将文件***命名空间从卷中的一层移动到另一层。方法500B内的动作中的一些动作与方法500A的动作相当类似。再一次地,方法500B可以由图3和4的文件***301来执行。
方法500B包括标识将被移动的文件***命名空间的动作(动作501B)。文件***命名空间例如可以是目录或文件。在某些实施例中,文件***命名空间的一部分可以被移到卷中。方法500A还包括确定对应于文件***命名空间的存储特性集合(动作502B),这可以以与图5A的动作502A类似的方式执行。文件***还标识对于卷内的每层的特性集合和逻辑地址区段(动作503B),这可以与图5A的动作503A类似。通过使用该信息,文件***301(或对文件***301可访问的逻辑)然后可以基于将层特性集合与文件***存储特性集合进行匹配,标识把文件***命名空间移动到其中的卷中的特定层(动作504B)。文件***301然后使得文件***命名空间被移动到所标识的层(动作505B)。
文件***301还包括层引擎306,该层引擎306动态地监测文件***存储特性集合。层引擎306能够响应于文件段的特性集合中的一个或多个特性集合的改变而以文件的一部分的粒度进行移动。图6图示出了方法600的流程图,所述方法600用于响应于文件***命名空间的改变的特性而在卷中移动文件***命名空间或其部分。
层引擎对文件***命名空间或其片段的特性集合进行监测(动作601)。如果特性集合还未改变(决策框602中的“否”),则层引擎不执行移动并且监测继续进行(动作601)。如果特性集合确实改变了(决策框602中的“是”),则层引擎然后确定把文件***命名空间或其片段移动到其中的最合适的层(动作603)。这可以基于将文件***命名空间或其片段的特性集合与每层特性集合进行匹配以与动作504A和504B非常类似的方式执行。如果最佳层是与文件***命名空间或片段当前所位于的层相同的层(决策框604中的“是”),则不执行移动,并且监测继续进行(动作601)。如果针对文件***命名空间或其片段的最佳层是不同的层(决策框604中的“否”),则层引擎使得文件***命名空间或其片段被移动到该目标层(动作605)。层引擎可以连续地、周期性地和/或响应于针对多个文件***命名空间和多个片段的事件而执行该监测。由此,层引擎以如下这样的方式来移动文件***命名空间(或片段),即:当将文件或文件片段移动到目标层时,尊重将被应用于对应文件的存储特性集合,其中,目标层也提供具有与将被应用于对应文件或文件片段的特性集合一致的特性集合的存储。
现在将关于图7到12描述配置***203的示例操作。再次参考图2,配置***203包括卷配置部件221、文件***命名空间配置部件222、扩展部件223和监测部件224。现在将描述这些部件中的每个部件的示例操作。
图7图示出了方法700的流程图,所述方法700用于配置具有对应于不同特性集合的多层的卷。方法700例如可以由图2的卷配置部件221执行以便配置卷211。
当接收到用于配置将被产生并暴露给特定文件***的卷的请求时,方法700被启动(启动动作701)。作为一个示例,配置***203可以接收用于配置将被暴露给文件***201的卷的请求。配置***203知道文件***201正在卷***202内操作。由此,配置***203与卷***202进行通信以便完成所述配置。该通信在图2中被表示为通信231。
可选地,卷配置部件221将可用于支持卷的各种底层存储***213的标识和容量当作输入(动作702)。例如,卷配置部件221可以对卷***202进行查询,以使得可以获取关于存储***213及其容量的该输入(诸如在每个存储***中提供的总可用存储、在每个***中有多少存储保持未映射、以及由每个存储***供应的特性集合)。
卷配置部件221还为卷提供标识符(动作703),并且为将在卷中创建的每层提供标识符(动作704)。在动作702到704之间不存在特定的排序要求,并且由此它们被并行地示出以象征该时间独立性。
卷配置部件221然后确定将被应用于所标识的层中的每层的特性集合和大小(动作705)。例如,卷配置请求可以标识关于每层的强制性或可选存储特性的用户输入,和/或为该层规定主要或次要目标。配置请求还可以为每层规定大小,并且可能会规定关于该大小的灵活性水平。例如,用户可以规定该层强制为特定大小,或者可能可以从特定大小改变特定量或百分比。用户还可以规定该层应当尽可能大(例如,考虑到可用的存储***)。
卷配置部件221可以取用该输入以及其能够从***获得的任何其他信息(诸如由可用的存储***供应的特性集合)来确定每层的特性集合和大小(动作705)。考虑在原始配置请求中提供的任何灵活性,如果仍然不存在足够的可用存储***用以基于该请求对整个卷进行厚配置,则卷配置***可以对层中的一层、一些层或所有层进行精简配置或部分地厚配置。如果请求不提供用于对特定层进行精简配置或部分厚配置的足够灵活性,并且不存在用于提供厚配置的足够存储***,则卷配置***可以使该配置请求失败,和/或以其他方式提示用户添加具有特定存储特性的存储***。
卷配置部件221然后可以使得采用所标识的层来配置卷,所标识的层的每个具有所确定的大小和特性集合(动作706)。例如,卷配置部件221可以指示卷***202创建卷。通过添加层来对卷进行扩展可以以与上面针对配置卷描述的类似的方式执行。
配置***203还可以例如使用文件***命名空间配置部件222来执行文件***命名空间配置。图8图示出了方法800的流程图,所述方法800用于对配置文件***命名空间的请求做出响应,其例如可以由图2的配置部件222执行。当接收到用于配置文件***命名空间的请求时,方法800被启动(启动动作801)。
文件***命名空间配置部件222标识了文件***命名空间(动作802),并且还标识了将被应用于该文件***命名空间的一个或多个存储特性(动作803)。例如,文件***命名空间配置部件222可以通过接收用户输入或检测其他***状况或信息来标识对于命名空间的存储特性集合。动作802和803被并行地示出以示出在所述动作之间不要求时间排序。
文件***命名空间配置部件222然后使得文件***命名空间被存储在卷中、存储在具有一致特性集合的合适层中(动作804)。例如,文件***命名空间配置部件222可以向文件***201提供命名空间标识符和特性集合,并且允许文件***做出关于将文件***命名空间放置到哪个层中的决策。
配置***203还可以例如使用监测部件224执行对卷211的使用的监测。图9图示出了用于在配置之后对卷的使用进行监测的方法900的流程图,所述方法900例如可以由监测部件224执行。
方法900涉及至少预期失败状况应用于卷的特定层(动作901)。在本说明书和权利要求中,“至少预期”层失败状况是指检测到活动的失败状况或者预期失败状况可能会发生。这样的失败可以是威胁现有存储***对支持层的可用性的任何物理或软件失败,或者可以是由于层的使用比率上升超过特定水平。监测部件224然后对该至少预期的失败状况做出响应(动作902),同时允许保持多个层中的一个或多个其他层继续操作。
作为响应的示例,监测部件224可以向用户通知潜在的失败,以及是否存在用户可以关于该问题做的某些事情,提示用户采取特定的行动。例如,如果底层存储***正开始失败,则监测部件224可以使得用户被通知相同的事情。
监测部件224甚至可以能够在甚至没有用户干预的情况下自动对失败采取行动。例如,假设特定层中仅留下少量空间。取决于环境,监测部件224可以采取若干行动来解决此问题。作为示例,监测部件224可以使得卷***202例如通过将另一层的未映射卷长字节映射到问题层(或对空的卷长字节进行重新映射)而从另一层取用空间。监测部件224还可以通过对卷进行扩展来对层进行扩展。例如,图4的卷311’是图3的卷311的扩展形式。该扩展可能已经通过监测部件224检测到伴随第一层(具有仅第一区域312A)逼近饱和的问题而被启动。这可能已触发了扩展部件223采取行动,诸如关于图10和11所描述的行动。
图10图示出了方法1000的流程图,所述方法1000用于提供异构卷的特定层的扩展。方法1000例如可以由图2的扩展部件223执行。方法1000可以在方法900的执行产生如下这样的确定之后而执行,即:对特定层进行扩展将在失败状况是当前失败状况的情况下移除该失败状况,或者将在失败状况是预期失败状况的情况下延迟或避免该失败状况(动作1001)。作为响应,扩展部件223使得特定问题层采用附加逻辑地址空间来扩展(动作1002)。
再一次地,如果卷保持相同的大小,则这可以通过将卷长字节从利用不足的层传递到问题层、以及通过将卷长字节重新映射到支持问题层的特性集合的存储***的存储长字节来执行。可替换地或附加地,可以在不影响其他层大小的情况下对层进行扩展,在该情况下,卷被扩展。在该情况下,通过使得附加逻辑地址空间关联于与特定层的存储特性集合一致的底层存储***的对应物理地址,采用附加卷长字节(诸如图4中的卷长字节 R和S)形式的附加逻辑地址空间被分配给卷和特定层。
如果不存在足够的底层存储用于当前支持扩展,以及如果扩展将是厚配置的,则扩展部件223可以图11的方法。图11图示出了方法1100的流程图,所述方法1100用于使得特定层被扩展。提示用户添加与特定层的存储特性集合一致的底层存储***(动作1101)。一旦检测到这样的存储***的添加(动作1102)(例如通过用户对添加进行确认或者通过存储***的自动检测),则通过将所添加的卷长字节映射到所添加的存储***内的存储长字节来对层进行扩展(动作1103)。
层也可以在大小上被缩减或甚至被整个移除。为此,将被从层移除的长字节(在层在大小上被缩减的情况下)或者可能是层的长字节的全部(在层被整个移除的情况下)被取消映射,以使得所述长字节不再由底层存储支持。如果已取消映射的长字节在卷的末尾,则卷的逻辑地址区段可以被缩减以计及已移除的长字节。
图12图示出了方法1200的流程图,方法1200用于向卷添加层,这是可以增大卷的逻辑地址区段的另外的方式。应当记得,可以增大卷的逻辑地址区段的另外方式是对现有层进行扩展。方法1200例如可以由配置***203执行。
当接收到对向卷添加附加层的请求时,方法1200被启动(启动动作1201)。配置***203再次以与上面描述的动作702类似的方式把各种底层存储***213的标识和容量当作输入(动作1202)。配置***进一步为层提供标识符(动作1203)。配置***然后确定将被应用于层的特性和大小(动作1204),这可以与上面描述的动作705相同地被执行。卷配置***然后将该信息传送给卷***202。卷***202然后将卷的逻辑地址区段扩展与附加层的大小相等的量(动作1205),并且随后对逻辑地址区段的已扩展部分中的每个长字节进行瘦或厚配置(1206)。
由此,配置***203与***200的剩余部分协作地操作以允许用于向文件***提供异构卷的有效机制。本发明可以在不脱离其精神和本质特性的情况下用其他特定形式来体现。所描述的实施例在所有方面都将被看作仅是说明性的,而不是限制性的。因此,本发明的范围由所附权利要求而非由前述说明书指示。落在权利要求的等价物的意义和范围内的所有改变将被包含在其范围内。
Claims (8)
1.一种由计算***实现的用于配置具有对应于不同特性集合的多层的卷的计算机实现的方法,所述方法包括:
接收配置请求的动作,所述配置请求标识要被配置的卷的多个不同层中的每层的存储特性,所述存储特性包括一个或多个强制存储特性和一个或多个可选存储特性;
对于所述将被配置的多层中的每层,从所述配置请求标识将被应用于所述多层中的每层的特性集合的动作,其中,所述多层中的第一层的特性集合至少部分地与所述多层中的第二层的特性集合不同;
查询现有存储***的存储特征的动作;以及
使用所述现有存储***来使得采用所述多层对所述卷进行配置的动作,所述多层的每层具有对应的所标识的特性集合,其中对所述卷进行配置进一步包括:
如果确定所述现有存储***中存在足够的存储以对所述卷进行厚配置,则对所述卷进行厚配置;
如果确定底层存储***中不存在足够的存储以对所述卷进行厚配置,并且所述配置请求为对所述卷的至少一部分进行精简配置提供灵活性,则对所述卷进行精简配置或部分地厚配置;以及
如果确定底层存储***中不存在足够的存储以对所述卷进行厚配置,并且在所述配置请求中不存在足够的灵活性以允许所述卷被精简配置或部分地厚配置,则使所述配置请求失败并且提供要向所述底层存储***添加新存储的提示。
2.根据权利要求1的方法,进一步包括接收多个底层存储***的标识的动作,所述多个底层存储***在所述配置时当前可用于支持所述卷。
3.根据权利要求1的方法,进一步包括接收多个底层存储***的标识的动作,预期所述多个底层存储***中的至少一些将在所述配置之后对所述卷可用,其中所述卷的区段内的逻辑地址中的至少一些将是精简配置的。
4.根据权利要求1的方法,其进一步包括:
通过从所述多层中的一层取消对多个长字节的映射,缩减该层的大小的动作。
5.根据权利要求1的方法,进一步包括:
标识将被应用于文件的一个或多个存储特性的动作;以及
使得所述文件被存储在卷中的动作。
6.根据权利要求5的方法,其中使得所述文件被存储在所述卷中的所述动作进一步包括:
指导文件***将所述文件放置在所述卷中、放置在所述一个或多个存储特性应用于所述文件的位置处的动作。
7.根据权利要求5的方法,其中所述一个或多个存储特性包括以下的至少一项:底层存储***的类型、相对存储访问速度、相对等待时间、弹性配置、远程复制状态和易失性状态。
8.根据权利要求5的方法,进一步包括:
至少预期失败状况应用于所述多层中的特定层的动作;以及
在允许所述多层中的剩余一个或多个其他层继续操作的同时,对所述至少已预期的失败状况做出响应的动作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/829363 | 2013-03-14 | ||
US13/829,363 US9262313B2 (en) | 2013-03-14 | 2013-03-14 | Provisioning in heterogenic volume of multiple tiers |
PCT/US2014/023599 WO2014159424A1 (en) | 2013-03-14 | 2014-03-11 | Provisioning of multiple tiers in heterogenic data volume |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105378641A CN105378641A (zh) | 2016-03-02 |
CN105378641B true CN105378641B (zh) | 2019-05-10 |
Family
ID=50687616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480015258.7A Active CN105378641B (zh) | 2013-03-14 | 2014-03-11 | 在异构数据卷中配置多个层 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9262313B2 (zh) |
EP (1) | EP2972748A1 (zh) |
CN (1) | CN105378641B (zh) |
BR (1) | BR112015020693A8 (zh) |
WO (1) | WO2014159424A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10037340B2 (en) * | 2014-01-21 | 2018-07-31 | Red Hat, Inc. | Tiered distributed storage policies |
US9864539B1 (en) * | 2015-09-30 | 2018-01-09 | EMC IP Holding Company LLC | Efficient provisioning of virtual devices based on a policy |
US9846544B1 (en) * | 2015-12-30 | 2017-12-19 | EMC IP Holding Company LLC | Managing storage space in storage systems |
US10708135B1 (en) * | 2019-01-31 | 2020-07-07 | EMC IP Holding Company LLC | Unified and automated installation, deployment, configuration, and management of software-defined storage assets |
US10951469B2 (en) | 2019-01-31 | 2021-03-16 | EMC IP Holding Company LLC | Consumption-based elastic deployment and reconfiguration of hyper-converged software-defined storage |
CN111176570B (zh) * | 2019-12-27 | 2021-07-16 | 浪潮电子信息产业股份有限公司 | 一种厚置备卷创建方法、装置、设备及介质 |
US11789611B2 (en) | 2020-04-24 | 2023-10-17 | Netapp, Inc. | Methods for handling input-output operations in zoned storage systems and devices thereof |
US20220057947A1 (en) * | 2020-08-20 | 2022-02-24 | Portworx, Inc. | Application aware provisioning for distributed systems |
US11416396B2 (en) * | 2020-10-22 | 2022-08-16 | EMC IP Holding Company LLC | Volume tiering in storage systems |
US11340987B1 (en) | 2021-03-04 | 2022-05-24 | Netapp, Inc. | Methods and systems for raid protection in zoned solid-state drives |
US11797377B2 (en) | 2021-10-05 | 2023-10-24 | Netapp, Inc. | Efficient parity determination in zoned solid-state drives of a storage system |
US11803329B2 (en) | 2021-11-22 | 2023-10-31 | Netapp, Inc. | Methods and systems for processing write requests in a storage system |
US11861231B2 (en) * | 2021-12-16 | 2024-01-02 | Netapp, Inc. | Scalable solid-state storage system and methods thereof |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287500A (en) * | 1991-06-03 | 1994-02-15 | Digital Equipment Corporation | System for allocating storage spaces based upon required and optional service attributes having assigned piorities |
US7441096B2 (en) | 2004-07-07 | 2008-10-21 | Hitachi, Ltd. | Hierarchical storage management system |
CN101027668B (zh) | 2004-07-21 | 2012-01-04 | 海滩无极限有限公司 | 基于块映射表缓冲存储和虚拟文件***的可堆叠文件***模块的分布式存储结构 |
US20070038749A1 (en) * | 2005-07-29 | 2007-02-15 | Broadcom Corporation | Combined local and network storage interface |
US8229897B2 (en) | 2006-02-03 | 2012-07-24 | International Business Machines Corporation | Restoring a file to its proper storage tier in an information lifecycle management environment |
US8001327B2 (en) | 2007-01-19 | 2011-08-16 | Hitachi, Ltd. | Method and apparatus for managing placement of data in a tiered storage system |
WO2008130983A1 (en) | 2007-04-16 | 2008-10-30 | Attune Systems, Inc. | File aggregation in a switched file system |
US8271757B1 (en) | 2007-04-17 | 2012-09-18 | American Megatrends, Inc. | Container space management in a data storage system |
US8285758B1 (en) | 2007-06-30 | 2012-10-09 | Emc Corporation | Tiering storage between multiple classes of storage on the same container file system |
US20090157756A1 (en) | 2007-12-15 | 2009-06-18 | Hitachi Global Storage Technologies Netherlands, B.V. | File System For Storing Files In Multiple Different Data Storage Media |
JP2011515727A (ja) | 2008-02-12 | 2011-05-19 | ネットアップ,インコーポレイテッド | ハイブリッド媒体ストレージシステムアーキテクチャ |
US8051243B2 (en) | 2008-04-30 | 2011-11-01 | Hitachi, Ltd. | Free space utilization in tiered storage systems |
US8290972B1 (en) | 2009-04-29 | 2012-10-16 | Netapp, Inc. | System and method for storing and accessing data using a plurality of probabilistic data structures |
US8635184B2 (en) | 2009-06-25 | 2014-01-21 | Emc Corporation | System and method for providing long-term storage for data |
US8352429B1 (en) | 2009-08-31 | 2013-01-08 | Symantec Corporation | Systems and methods for managing portions of files in multi-tier storage systems |
US20120166749A1 (en) | 2009-09-08 | 2012-06-28 | International Business Machines Corporation | Data management in solid-state storage devices and tiered storage systems |
US8566550B2 (en) * | 2009-09-22 | 2013-10-22 | Hitachi, Ltd. | Application and tier configuration management in dynamic page reallocation storage system |
US8732217B2 (en) | 2009-10-30 | 2014-05-20 | Symantec Corporation | Using a per file activity ratio to optimally relocate data between volumes |
US8423727B2 (en) | 2010-03-16 | 2013-04-16 | Hitachi, Ltd. | I/O conversion method and apparatus for storage system |
WO2012004837A1 (en) * | 2010-07-09 | 2012-01-12 | Hitachi, Ltd. | Storage apparatus and storage management method |
US8356147B2 (en) * | 2010-08-20 | 2013-01-15 | Hitachi, Ltd. | Tiered storage pool management and control for loosely coupled multiple storage environment |
US8583838B1 (en) * | 2010-09-27 | 2013-11-12 | Emc Corporation | Techniques for statistics collection in connection with data storage performance |
US8566546B1 (en) * | 2010-09-27 | 2013-10-22 | Emc Corporation | Techniques for enforcing capacity restrictions of an allocation policy |
US8918607B2 (en) | 2010-11-19 | 2014-12-23 | International Business Machines Corporation | Data archiving using data compression of a flash copy |
US8966191B2 (en) | 2011-03-18 | 2015-02-24 | Fusion-Io, Inc. | Logical interface for contextual storage |
US8838927B2 (en) | 2011-05-27 | 2014-09-16 | International Business Machines Corporation | Systems, methods, and physical computer storage media to optimize data placement in multi-tiered storage systems |
US8868797B1 (en) * | 2012-03-30 | 2014-10-21 | Emc Corporation | Techniques for automated discovery of storage devices and their performance characteristics |
US8627035B2 (en) | 2011-07-18 | 2014-01-07 | Lsi Corporation | Dynamic storage tiering |
WO2013018132A1 (en) * | 2011-08-01 | 2013-02-07 | Hitachi, Ltd. | Computer system with thin-provisioning and data management method thereof for dynamic tiering |
US8775773B2 (en) | 2011-08-26 | 2014-07-08 | Vmware, Inc. | Object storage system |
US20130238867A1 (en) * | 2012-03-06 | 2013-09-12 | Hitachi, Ltd. | Method and apparatus to deploy and backup volumes |
US8639665B2 (en) | 2012-04-04 | 2014-01-28 | International Business Machines Corporation | Hybrid backup and restore of very large file system using metadata image backup and traditional backup |
US8874850B1 (en) | 2012-05-10 | 2014-10-28 | Netapp, Inc. | Hierarchically tagged cache |
US9448740B2 (en) | 2012-11-27 | 2016-09-20 | Hitachi, Ltd. | Storage apparatus and hierarchy control method |
-
2013
- 2013-03-14 US US13/829,363 patent/US9262313B2/en active Active
-
2014
- 2014-03-11 EP EP14723156.7A patent/EP2972748A1/en not_active Ceased
- 2014-03-11 WO PCT/US2014/023599 patent/WO2014159424A1/en active Application Filing
- 2014-03-11 CN CN201480015258.7A patent/CN105378641B/zh active Active
- 2014-03-11 BR BR112015020693A patent/BR112015020693A8/pt not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US20140281227A1 (en) | 2014-09-18 |
EP2972748A1 (en) | 2016-01-20 |
CN105378641A (zh) | 2016-03-02 |
BR112015020693A8 (pt) | 2019-11-19 |
BR112015020693A2 (pt) | 2017-07-18 |
WO2014159424A1 (en) | 2014-10-02 |
US9262313B2 (en) | 2016-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105378641B (zh) | 在异构数据卷中配置多个层 | |
CN104395904B (zh) | 高效的数据对象存储和检索 | |
US12001688B2 (en) | Utilizing data views to optimize secure data access in a storage system | |
JP5124551B2 (ja) | ボリューム割り当てを管理する計算機システム及びボリューム割り当て管理方法 | |
CN100520696C (zh) | 数据存储方法和存储数据的*** | |
US11995336B2 (en) | Bucket views | |
CN105103114B (zh) | 提供多个层的数据存储、文件和卷*** | |
CN100583096C (zh) | 管理数据删除的方法 | |
US8909887B1 (en) | Selective defragmentation based on IO hot spots | |
CN101501623B (zh) | 感知文件***的块存储***、装置和方法 | |
CN105122202B (zh) | 多层卷上的文件***操作 | |
JP5158074B2 (ja) | ストレージ管理プログラム、ストレージ管理方法、ストレージ管理装置およびストレージシステム | |
US10289547B2 (en) | Method and apparatus for a network connected storage system | |
US11194473B1 (en) | Programming frequently read data to low latency portions of a solid-state storage array | |
US20070143353A1 (en) | Apparatus and Method for On-Demand In-Memory Database Management Platform | |
GB2545290A (en) | Distributed storage system | |
JP2017130103A (ja) | ブロックストレージ | |
US20060212495A1 (en) | Method and system for storing data into a database | |
WO2016147281A1 (ja) | 分散型ストレージシステム及び分散型ストレージシステムの制御方法 | |
CN107291889A (zh) | 一种数据存储方法及*** | |
CN101228523A (zh) | 用于高速缓存网络文件***的***和方法 | |
JP2007140919A (ja) | 記憶システム及びデータ移動方法 | |
CN103888499A (zh) | 一种分布式对象处理的方法及*** | |
US10976947B2 (en) | Dynamically selecting segment heights in a heterogeneous RAID group | |
US20210055885A1 (en) | Enhanced data access using composite data views |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |