提供多个层的数据存储、文件和卷系统的制作方法

文档序号:9383051阅读:383来源:国知局
提供多个层的数据存储、文件和卷系统的制作方法
【专利说明】
【背景技术】
[0001]计算系统通过执行软件程序获得高程度的功能性。计算系统使用存储层级以便存储这样的软件程序和其它文件。在本地存储层级的最低级别处可能是盘,诸如机械盘、光盘等。在存储层级中的较高处可能是诸如固态盘或非易失性存储器等的设备。
[0002]当需求最迫切的数据块位于存储层级中的高处时,计算系统最高效地操作,其中需求较不迫切的数据块可能位于存储层级中的较低处。关于将数据块放置在存储层级内的哪里的决定常规地发生在文件系统下面。
[0003]文件系统本身典型地不具有该存储层级上的可见性,而是以卷的形式查看存储。卷是对文件系统而言可见的单个逻辑命名空间。卷可以被提供为某个大小并且通常对应于底层存储设备的边界。例如,盘可以是单个卷,或者可能被划分成多个卷。此外,卷可以由多个盘构成。文件系统然后可以结构化卷内的目录,并且将文件保存到命名空间中,其处于命名空间的根目录处,或者处于命名空间的一个目录内。
[0004]单个卷可以具有特定特点(trait)。例如,卷可能设立成镜像的并且因而具有某种水平的内置冗余性。卷还可能设立成加密的或压缩的。常规地,在每个卷的基础上设立特点。因而,文件系统本身看到该卷内的任何存储块具有与该卷内的任何其它存储块相同的特点,并且提交(relegate)关于如何将块放置到从文件系统视图抽象的存储系统的任何决定。

【发明内容】

[0005]本文描述的至少一些实施例涉及一种系统,其中文件系统可以对其中卷的逻辑地址范围被分成多个层的卷进行操作,每一个层通过将卷的逻辑地址映射到适当的底层存储系统来提供具有不同特点集合的存储。卷系统以文件系统本身具有层意识并且意识到每一个层的特点集合的方式将卷暴露给文件系统。文件系统因而可以将文件系统命名空间(诸如目录和文件)存储到如对于文件系统命名空间适当的层中。还可以提供供给系统,并且其被配置成将卷供给成包括这样的层,并且如果期望的话扩展层。
[0006]该
【发明内容】
不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在用作帮助确定所要求保护的主题的范围。
【附图说明】
[0007]为了描述其中可以获得上述以及其它优点和特征的方式,将通过参照附图来呈现各种实施例的更具体的描述。在理解到这些图仅描绘样本实施例并且因此不被视为限制本发明的范围的情况下,将通过使用附图以附加详情和细节来描述和解释实施例,在附图中:
图1抽象地图示了其中可以采用本文描述的一些实施例的计算系统;
图2图示了包括卷系统并且包括供给和监视系统的系统,所述卷系统生成并且向文件系统暴露具有多个层的异构卷; 图3图示了其中卷系统使用卷暴露系统来向文件系统暴露出卷的计算环境,所述卷带有具有不同特点的存储的多个层;
图4图示了与图3的计算环境类似的计算环境,除了在图3中稀疏(thinly)供给的卷片(slab)现在被密集(thickly)地供给,并且在于计算系统扩展卷;
图5A图示了用于使文件系统操作以将文件系统命名空间放置到卷中的方法的流程图;
图5B图示了用于使文件系统操作以将文件系统命名空间(或其片段)移动到卷内的方法的流程图;以及
图6图示了用于使层引擎基于文件系统命名空间或其片段的动态改变的特点来移动文件系统命名空间(或其片段)的方法的流程图;
图7图示了用于供给具有对应于不同特点集合的多个层的卷的方法的流程图,该方法可以由图2的卷供给组件执行;
图8图示了用于响应于供给文件系统命名空间的请求的方法的流程图,该方法可以由图2的文件系统命名空间供给组件执行;
图9图示了用于监视供给之后的卷使用的方法的流程图,该方法可以由图2的监视组件执行;
图10图示了用于向异构卷的特定层供给扩展的方法的流程图,该方法可以例如由图2的扩展组件执行;
图11图示了用于在其中不存在支持扩展的底层存储系统的情况下向异构卷的特定层密集地供给扩展的方法的流程图;以及
图12图示了用于将层添加给现有卷的方法的流程图。
【具体实施方式】
[0008]依照本文描述的实施例,系统包括文件系统,其对其中卷的逻辑地址范围被分成多个层的异构卷进行操作。每一个层通过将卷的逻辑地址映射到适当的底层存储系统来提供具有不同特点集合的存储。卷系统以文件系统本身具有层的意识并且意识到每一个层的特点集合的方式来向文件系统暴露卷。文件系统因而可以将文件系统命名空间(诸如目录和文件)存储到如对于文件系统命名空间适当的层中。供给系统还可以被提供和配置成将卷供给成包括这样的层,并且如果期望的话,扩展层。
[0009]将关于图1描述计算系统的一些介绍性讨论。然后,将关于图2描述其中可以供给、供应和使用多层卷的系统的概览。然后将关于图3和4描述用于创建和暴露出多层卷的机制。然后将关于图5和6描述这样的多层卷的文件系统使用。最后,将关于图7至12描述示例供给和监视操作。
[0010]计算系统现在越来越多地采用各种各样的形式。计算系统可以例如是手持式设备、电器、膝上型计算机、台式计算机、大型计算机、分布式计算系统、或者甚至是在常规上不被视为计算系统的设备。在本说明书中和权利要求中,术语“计算系统”被宽泛地限定为包括任何设备或系统(或其组合),其包括至少一个物理和有形处理器,以及能够在其上具有可以由处理器执行的计算机可执行指令的物理和有形存储器。存储器可以采取任何形式并且可以取决于计算系统的本性和形式。计算系统可以分布在网络环境之上并且可以包括多个组成计算系统。
[0011]如图1中所示,以其最基本的配置,计算系统100典型地包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性的、非易失性的或二者的某种组合。术语“存储器”还可以在本文中用于指非易失性大容量存储,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如本文所使用的,术语“可执行模块”或“可执行组件”可以是指可以在计算系统上执行的软件对象、路由或方法。本文描述的不同组件、模块、引擎和服务可以实现为在计算系统上执行(例如作为分离线程)的对象或过程。
[0012]在以下描述中,参照由一个或多个计算系统执行的动作来描述实施例。如果这样的动作在软件中实现,则执行动作的相关联的计算系统的一个或多个处理器响应于执行计算机可执行指令而引导计算系统的操作。例如,这样的计算机可执行指令可以体现在形成计算机程序产品的一个或多个计算机可读介质上。这样的操作的示例涉及数据的操纵。计算机可执行指令(以及所操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可以包含通信信道108,其允许计算系统100例如通过网络110与其它消息处理器通
?目O
[0013]本文描述的实施例可以包括或者利用专用或通用计算机,其包括诸如例如一个或多个处理器和系统存储器之类的计算机硬件,如下文更详细讨论的。本文描述的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其它计算机可读介质。这样的计算机可读介质可以是可以由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。因而,作为示例而非限制,本发明的实施例可以包括至少两个完全不同种类的计算机可读介质:计算机存储介质和传输介质。
[0014]计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储设备、或者可以用于以计算机可执行指令或数据结构的形式存储期望的程序代码构件并且可以由通用或专用计算机访问的任何其它有形介质。
[0015]“网络”被限定为使得能够在计算机系统和/或模块和/或其它电子设备之间输运电子数据的一个或多个数据链路。当通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)向计算机传递或提供信息时,计算机适当地将连接看作传输介质。传输介质可以包括网络和/或数据链路,其可以用于承载以计算机可执行指令或数据结构的形式的期望程序代码构件并且可以由通用或专用计算机访问。以上的组合也应当包括在计算机可读介质的范围内。
[0016]另外,当达到各种计算机系统组件时,以计算机可执行指令或数据结构的形式的程序代码构件可以自动地从传输介质传递到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以在网络接口模块(例如“NIC”)内的RAM中缓冲,并且然后最终传递到计算机系统RAM和/或计算机系统处的不太易失性的计算机存储介质。因而,应当理解到,计算机存储介质可以包括在也(或甚至主要)利用传输介质的计算机系统组件中。
[0017]计算机可执行指令包括例如指令和数据,其当在处理器处执行时使通用计算机、专用计算机或专用处理设备执行某种功能或功能组。计算机可执行指令可以例如是二进制文件、诸如汇编语言之类的中间格式指令、或者甚至是源代码。尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是要理解到,在所附权利要求中限定的主题未必限于所描述的特征或上文所描述的动作。而是,所描述的特征和动作是作为实现权利要求的示例形式而公开的。
[0018]本领域技术人员将领会到,本发明可以在具有许多类型计算机系统配置的网络计算环境中实践,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、网络PC、微型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等。本发明还可以在其中本地和远程计算机系统二者执行任务的
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1