CN101393561A - 对指定存储层执行文件系统操作的系统和方法 - Google Patents
对指定存储层执行文件系统操作的系统和方法 Download PDFInfo
- Publication number
- CN101393561A CN101393561A CNA2008101769839A CN200810176983A CN101393561A CN 101393561 A CN101393561 A CN 101393561A CN A2008101769839 A CNA2008101769839 A CN A2008101769839A CN 200810176983 A CN200810176983 A CN 200810176983A CN 101393561 A CN101393561 A CN 101393561A
- Authority
- CN
- China
- Prior art keywords
- accumulation layer
- catalogue
- pathname
- file
- file system
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
Abstract
公开了对指定存储层执行文件系统操作的系统和方法的各种实施例。接收指定文件系统操作和第一路径名的输入。第一路径名包括多个部分,包括一个或多个目录部分和一个存储层部分。分析第一路径名以确定由一个或多个目录部分指定的第一目录和由存储层部分指定的第一存储层。执行文件系统操作,其中文件系统操作在第一目录和第一存储层上操作。在另一实施例中,路径名部分也包括文件名部分。因此,路径名经过进一步分析以确定由文件名部分指定的文件名。文件系统操作对第一文件名、第一目录和第一存储层进行操作。
Description
技术领域
本发明涉及计算机文件系统。更具体的说,本发明涉及一种对指定存储层执行文件系统操作的系统和方法。
背景技术
大型企业和其他机构经常存储大量各种类型的计算机数据,范围从企业经营所需的重要数据到根据规则保存的电子邮件,到用于趋势分析的导出信息或历史信息等。大量各种类型的存储设备用于存储这些大量数据,诸如各种类型的光存储设备、盘驱动设备、磁带驱动设备等。
不同类型的存储设备具有不同的性能、可靠性和恢复特性。不同类型的存储设备在各自成本上区别也很大。高端存储设备可能比低端存储设备贵一个数量级或甚至更多。结果,机构经常在不同类型的存储设备上存储不同类型的数据。例如,最重要数据存储在高端存储设备上而不重要的数据存储在低端存储设备上。
为此,机构将存储设备或其他存储单元组织为多个存储层,在这里也称为存储级。将每个存储单元分配到其中一个存储层。根据各种标准将存储设备或其他存储单元分组为存储层。例如,在某些系统中,不同的存储层代表具有不同特性的存储设备,诸如I/O性能、成本、可靠性、恢复能力、数据可用性等。将具有类似特性的存储设备指定到彼此相同的存储层。
作为一个例子,机构定义三个不同的存储层,诸如高端存储层、中等存储层和低端存储层。诸如具有远程镜像和频繁快照能力的高端盘阵列等的高端存储设备被指定到高端存储层。将诸如具有低频快照而不具有远程镜像的中等存储设备指定到中等存储层。将诸如由软件或硬件RAID管理的便宜盘的低端存储设备指定到低端存储层。将不同类型的数据存储在不同存储层的存储设备中。例如,把最重要的数据存储在高端存储层的存储设备上,而把最不重要的数据存储在低端存储层的存储设备上。
存储在各种存储设备上的数据一般被组织为由一个或多个文件系统管理的文件。数据可在文件级被指定到不同的存储层。换而言之,把每个文件指定到一个存储层,而不同文件指定到不同存储层。因此,在上面的例子中,认为最重要的文件可被指定到高端存储层,而认为最不重要的文件可被指定到低端存储层。
发明内容
这里公开对指定存储层执行文件系统操作的系统和方法的多个实施例。根据该方法的一个实施例,接收指定文件系统操作和路径名的输入。路径名可包括字符串,字符串包括多个部分。这些部分可包括一个或多个目录部分和一个存储层部分。可分析字符串以确定由一个或多个目录部分指定的第一目录以及由存储层部分指定的第一存储层。可执行所述文件系统操作,其中该文件系统操作对第一目录和第一存储层进行操作。
在本方法的另一实施例中,路径名的字符串的多个部分还包括文件名部分。因此,可进一步分析字符串以确定由文件名部分指定的文件名。文件系统操作可对第一文件名、第一目录和第一存储层进行操作。
附图说明
当结合如下附图考虑如下详细说明时能获得本发明的更好理解,其中:
图1示出其中已定义三个存储层的例子;
图2示出能实施用于对指定存储层执行文件系统操作的方法的计算机系统的实施例;
图3示出计算机系统的另一实施例;
图4示出计算机系统包括三个服务器计算机的实施例;
图5示出用于对指定存储层执行文件系统操作的方法的一个实施例;
图6示出其中按层级组织各个目录的目录层级或树;
图7示出其中系统包括分组为两个存储层的五个存储单元的例子;
图8示出用户请求对路径名执行文件系统操作的例子,其中路径名包括存储层部分;
图9示出用于对指定存储层执行文件系统操作的方法的另一实施例;以及
图10和11示出用户请求对路径名执行文件系统操作的例子,其中路径名包括存储层部分;
本发明允许各种修改和替换形式,其具体实施例在附图中举例给出并被详细描述。然而,应该理解,附图和详细说明并不用于将本发明限制于公开的特定形式,而相反,本发明涵盖了落在附加权利要求定义的本发明精神和范围内的所有修改、等同物和替换。
具体实施方式
这里公开用于对指定存储层执行文件系统操作的系统和方法的各个实施例。该系统可使用多个存储单元。如这里所述,术语“存储单元”指存储设备或卷。存储设备是能存储数据的设备。卷是由一个或多个存储设备提供的物理存储部分的逻辑分区和/或集成。卷可由存储设备的整个存储部分的子集(例如,比全部少)、存储设备的所有存储部分、或组合在一起的多个存储设备的存储部分形成。
该系统也定义和使用多个存储层,其中每个存储层是代表一个或多个存储单元的集合的类或种类。在某些实施例中,每个存储单元可被指定给一个且仅一个存储层。在其他实施例中,一个或多个存储单元可被指定给一个以上的存储层。
在各个实施例中,根据任意不同的标准将存储单元分组为存储层。例如,在某些实施例中,不同的存储层表示具有不同特性的存储设备,诸如I/O性能、成本、可靠性、恢复能力、数据可用性等。具有类似特性的存储设备可被指定给彼此相同的存储层。
图1示出其中已定义三个存储层200A、200B和200C的例子。存储单元220A和220B指定到存储层200A。存储单元220C、220D、220E和220F指定到存储层200B。存储单元220G指定到存储层200C。在某些实施例中,可给予每个存储层唯一识别各个存储层的名称或识别符。例如,存储层200A具有诸如“tier_A”的名称;存储层200B具有诸如“tier_B”的名称;以及存储层200C具有诸如“tier_C”的名称。
在某些实施例中,存储层200A-C表示存储设备的分组。例如,存储单元220A和220B可以是具有互相类似特性的各个存储设备。存储单元220C、220D、220E和220F可以是具有互相类似特性的各个存储设备,但可以不同于存储单元220A和220B表示的存储设备的特性。类似地,存储单元220G可以是在特性上与其他存储设备不同的存储设备。
在其他实施例中,存储层200A-C可以代表卷的分组。例如,存储层200A的存储单元220A和220B可以是具有互相类似特性的各个卷。例如,可以从相同存储设备上的存储部分实施各个卷,或者可以从不同存储设备上具有互相类似特性的存储部分实施各个卷。类似地,存储层200B的存储单元220C、220D、220E和220F可以是具有互相类似特性的各个卷。存储层200C的存储单元220G可以是在特性上与存储层200A和200B的卷不同的卷。
该系统可以实施一个或多个文件系统,在所述文件系统中将存储单元220中存储的数据组织为多个文件。对于在至少一个文件子集中的各个文件,可将每个文件指定到一个存储层,其中不同文件可被指定到不同存储层。在各个实施例中,可以根据任意不同标准将文件指定到存储层。在某些实施例中,可将每个文件看作具有某种重要等级或商业价值,并且可以根据它们各自的重要等级将文件指定到存储层,例如,每个存储层代表一个重要等级或一定范围的重要等级。举另一个例子,每个文件可具有各自的文件类型(例如,文档、交易记录的表格、图像、音轨、或其他类型的对象或实体),并且可以根据它们各自的文件类型将文件指定到存储层。可用来确定将文件指定到哪个存储层的其他标准包括文件的所有者、哪些软件应用使用文件和访问文件所用的I/O模式等。
对不同文件的存储层指定可用于选择其中存储文件的存储单元200。例如,如果一个文件指定到存储层200A,则系统可以选择存储单元220A或存储单元220B存储文件。在某些实施例中,一个或多个文件可以不被指定到任何存储层。对于这些文件,系统可以选择任何存储单元220来存储文件。同样,在某些实施例中,如果与一个给定文件被指定到的存储层相对应的存储单元没有一个是可用的(例如,如果存储层中的所有存储单元都没有空间或离线),则可以选择另一存储层中的存储单元来存储文件。
图2示出能实施用于对指定存储层执行文件系统操作的方法的计算机系统90的实施例。在各个实施例中,计算机系统90可包括任何类型的计算机系统。
在图2的例子中,计算机系统90包括多个存储设备125,其中每个存储设备125都被指定到存储层200(例如,在该例子中的存储层200A、200B或200C)。因此,在本例子中,存储层200代表存储设备125的分组。具体的,将存储设备125A和125B指定到存储层200A,将存储设备125C和125D指定到存储层200B,以及将存储设备125E指定到存储层200C。
在各个实施例中,可出现任意数量的存储设备125。同样,可定义任意数量的存储层200,并可将存储设备125根据任何所需标准指定到存储层200。
每个存储设备125可包括任何类型的存储设备并且可以在任何种类的介质上存储文件。存储设备125的例子包括含有一个或多个光存储设备的设备、含有一个或多个盘驱动器的设备、含有一个或多个磁带驱动器的设备、含有一个或多个闪存器件的设备等。一个特定存储设备125可被实施为一个或多个独立配置的盘驱动器或盘存储系统。
计算机系统90还可以包括一个或多个处理器120。处理器120以各种方式耦接到存储设备125,诸如通过通信总线、有线或无线网络、电缆连接等。一个或多个处理器120的每个都可以包括任何类型的处理器。例如,在某些实施例中,处理器120可与x86体系结构兼容,而在其他实施例中,处理器120可与SPARCTM系列处理器兼容。
计算机系统90也可以包括存储器122。在某些实施例中,存储器122可包括诸如动态RAM(DRAM)或同步DRAM(SDRAM)的一种或多种形式的随机访问存储器(RAM)。然而,在其他实施例中,存储器122可代替或另外包括任何其他类型的存储器。存储器122能存储程序指令和/或数据。具体的,存储器122可存储文件系统软件205,还可存储其它用于计算机系统的操作的软件,例如操作系统软件、网络通信软件等。一个或多个处理器120可执行文件系统软件205,以实施管理在存储设备125上存储的文件的一个或多个文件系统。文件系统软件205也能执行这里所述的用于对指定存储层执行文件系统操作的方法。下面详细描述本方法的各个实施例。
计算机系统90也可以包括一个或多个输入设备126,其用于接收用户输入。(多个)输入设备126可包括任何各种类型的输入设备,诸如键盘、键区、麦克风或指取设备(例如,鼠标或跟踪球)。计算机系统90还可以包括一个或多个显示设备128或其他用于向用户显示输出的输出设备。例如,一个或多个显示设备128可包括用于显示信息的任何各种类型的设备,诸如LCD屏幕或监视器、CRT监视器等。
计算机系统90还可以包括网络连接硬件129,通过该硬件129,计算机系统90连接到一个或多个网络。网络连接硬件129可包括用于将计算机系统90耦接到(多个)网络的任何类型的硬件,例如取决于网络的类型。
在各个实施例中,计算机系统90可被耦接到任何类型的网络或网络组合。例如,计算机系统90可被耦接到局域网(LAN)、广域网(WAN)、无线网络、内部网、因特网等中的一个或多个。示例性的局域网包括以太网、光纤分布式数据接口(FDDI)网络和令牌环网。计算机系统90可利用任何类型的有线或无线连接介质耦合到一个或多个网络。例如,有线介质可包括以太网、光纤通道、连接到普通旧式电话服务(POTS)的调制解调器等。无线连接介质可包括利用诸如IEEE 802.11(无线以太网)的无线通信协议的无线连接、通过蜂窝服务的调制解调器链路、卫星链路等。
图3示出计算机系统90的另一实施例。计算机系统90可包括与参考图2所述类似的部件,诸如一个或多个处理器120、存储文件系统软件205的存储器122、一个或多个存储设备125、一个或多个输入设备126、一个或多个显示设备128以及网络连接硬件129。
在某些实施例中,文件系统软件205可使用多个逻辑卷212,其中每个卷212包括一个或多个存储设备125的存储部分。每个卷212可被指定到存储层200(例如,在本例子中的存储层200A或200B)。因此,在图3的例子中,存储层200代表卷212的分组。具体的,卷212A、212B和212D被指定到存储层200A,而卷212C被指定到存储层200B。
在各个实施例中,可出现任意数量的卷212和任意数量的存储设备125。同样,可定义任意数量的存储层200,并且可以根据任何所需标准将卷212指定到存储层200。在某些实施例中,单个存储设备125上的不同卷可被指定到不同存储层200。
一个或多个处理器120可以执行文件系统软件205以实施管理在卷212上存储的文件的一个或多个文件系统。文件系统软件205也能执行这里所述的用于在指定存储层上执行文件系统操作的方法。
在各个实施例中,计算机系统90可包括任意数量的计算机,例如一个或多个。在某些实施例中,计算机系统90可包括多个计算机。因此,在某些实施例中,计算机系统90的功能可分布在多个计算机上。例如,图4示出其中计算机系统90包括三个服务器计算机92A、92B和92C的实施例。在某些实施例中,文件系统软件205可分布在例如三个服务器计算机92上,使得每个服务器计算机92执行文件系统软件205的相应实例或文件系统软件205的相应部分。
服务器计算机92可通过网络84连接。在某些实施例中,一个或多个服务器计算机90可通过网络84访问一个或多个存储设备125。例如,图4中,一个或多个存储设备125可被包括在网络存储设备50A或50B中。
现在参见图5,示出用于对指定存储层执行文件系统操作的方法的一个实施例。该方法可由在计算机系统90上执行的文件系统软件205执行。
如图框301所示,可以接收指定文件系统操作和路径名的输入。在各个实施例中,该输入可以指定任何不同种类的文件系统操作。文件系统操作的例子包括:在目录中列出文件的操作,创建新文件的操作,拷贝文件的操作,修改文件的操作,将文件从一个目录移到另一个目录的操作,重命名文件的操作,改变文件的一个或多个属性的操作,显示文件的操作等。
如这里所用,术语“路径名”表示指定文件系统中的目录和/或文件的信息。输入所指定的路径名可包括多个部分。例如,在某些实施例中,路径名可包括一个字符串,其中每个部分是该字符串的子串。这些部分可包括一个或多个目录部分和存储层部分。一个或多个目录部分可指定文件系统中的目录,例如,应执行文件系统操作的目录。存储层部分可指定应执行文件系统操作的存储层。
在某些实施例中,路径名可包括一个字符串,该字符串的各个部分可由分隔字符分隔。在某些实施例中,存储层部分可位于字符串中一个或多个目录部分之后。在其他实施例中,存储层部分可位于字符串中一个或多个目录部分之前。
在某些实施例中,由输入指定的路径名看上去可类似于Unix样式的路径名,但也可包括存储层部分。例如,在某些实施例中,路径名可以是以下格式的字符串:
/dir1/dir2/st=tier_A
在该例子中,“dir1”和“dir2”是目录部分,“st=tier_A”是存储层部分。路径名中的各部分由“/”分隔符互相分隔。目录部分指定在文件系统的目录层级中的目录,例如,根据目录层级按层级顺序指定目录部分。在这个例子中,按层级放在一起的目录部分指定名为“dir2”的目录,“dir2”目录是“dir1”目录的子目录。存储层部分指定系统定义的存储层,例如通过指定一个特定存储层的名称或识别符。在该例子中,存储层部分指定名为“tier_A”的存储层。
在其他实施例中,路径名是该格式的字符串:
st=tier_A/dir1/dir2
在该例子中,由目录部分的路径指定同一目录(即,“dir2”目录),但存储层部分位于目录部分之前。在某些实施例中,文件系统软件205可允许以存储层部分在目录部分之前或之后的任一种方式输入路径名。
应注意上述路径名仅为例子,但在各个实施例中,路径名具有任何不同的其他形式。具体的,路径名的存储层部分具有除了形式“st=tiername”之外的形式。
在某些实施例中,在301中接收的输入可被接收作为用户输入。例如,在某些实施例中,用户输入由文件系统软件205通过用户接口、例如操作系统用户接口接收。例如,在某些实施例中,用户向操作系统命令行接口或能使用户指定文件系统操作的其他用户接口输入文本类输入,诸如各种文件系统命令。在该实施例中,文件系统操作和路径名被指定为字符串。
在其他实施例中,输入301由文件系统软件205通过除了用户接口之外的各种类型接口接收。例如,在某些实施例中,输入通过编程接口传递到文件系统软件205。作为一个例子,用户应用或程序通过诸如函数调用、方法调用等库调用将输入传递到文件系统软件205。例如,在某些实施例中,库调用可对应或指定具体的文件系统操作,路径名可作为库调用中的参数来传递。作为另一例子,系统级应用或程序可通过系统调用将输入传递到文件系统软件205。作为另一例子,文件系统软件205的一个模块可通过调用具体的文件系统操作并且作为参数传递路径名而将输入传递到文件系统软件205的另一模块。
如303所示,该方法进一步包括分析路径名以确定由一个或多个目录部分确定的目录和由存储层部分指定的存储层。例如,在路径名包括字符串的情况下,可通过解析该字符串以确定其独立的各个部分而分析字符串。在上面例子中,可通过搜索作为不同部分之间分隔符的“/”符来确定相互独立的各个部分。在这些例子中,可通过确定哪个部分以字符“st=”开始而识别存储层部分。存储层的名称可被确定为存储层部分中跟在字符“st=”后的部分。因此,由存储层部分指定的存储层可被识别为具有指定的存储层名的存储层。由目录部分指定的目录可被识别为由一个或多个目录部分按层级指定的目录。
如305所示,该方法进一步包括执行文件系统操作,其中该文件系统操作在路径名所指定的目录和存储层上进行。文件系统操作可以以任何不同形式在目录和存储层上执行,例如,取决于文件系统操作的类型。例如,存储层可以指示在指定目录上执行文件系统操作的存储层上下文。
如图所示,考虑图6-8所示的例子。假设该系统包括两个存储层200A和200B。多个文件230中的每个文件230可被指定到这两个存储层之一。如图6所示,文件系统包括其中按层级组织多种目录600的目录层级或树。例如,目录层级包括名为“directory_A”的根目录,作为根目录的子目录的名为“directory_B”的目录600B,作为根目录600B的子目录的名为“directory_D”的目录600D等。图6所示的每个文件230都包括在目录层级中的一个目录中。例如,文件230C、230D、230L和230T被包括在名为“directory_G”的目录600G中,文件230A、230E、230F、230N和230P被包括在名为“directory_F”的目录中。(为简化示意图,没有显示其它目录中的文件230。)
图6也示出目录600F和600G中的每个文件230被指定给哪个存储层。例如,目录600G中的文件230C和230D以及目录600F中的文件230A、230E和230F被指定到存储层200A。目录600G中的文件230L和230T以及目录600F中的文件230N和230P被指定到存储层200B。
例如,图7示出其中系统包括五个存储单元220A-220E的实施例,例如,存储单元是存储各种文件230的存储设备或卷。存储单元220A和220B被指定到具有名“tier_A”的存储层200A。存储单元220C、220D和220E被指定到具有名“tier_B”的存储层200B。如所示,文件230A、230C和230D被存储在存储单元220A中,文件230E和230F被存储在存储单元220B中。因此,每个文件230C、230D、230A、230E和230F都被存储在指定到存储层200A的存储单元220中。类似地,每个文件230L、230T、230N和230P被存储在指定到存储层200B的存储单元220中。例如,如图7所示,文件230L被存储在存储单元220C中,文件230N和230P被存储在存储单元220D中,以及文件230T被存储在存储单元220E中。
现在考虑其中用户输入文件系统命令的图8所示的示例性的用户接口610。在用户接口610A中,用户输入字符串“ls/directory_A/directory_C/directory_F”。在该例子中,“ls”是请求文件系统显示指定目录“/directory_A/directory_C/directory_F”的目录列表的文件系统命令。如图所示,文件系统显示在指定目录中的所有文件,即,文件230A、230E、230F、230N和230P(参见图6)。在该例子中,用户输入的路径名不包括存储层部分,命令操作类似于在现有技术的Unix系统中的“ls”文件系统命令。
然而,在用户接口610B中,用户输入字符串“ls/directory_A/directory_C/directory_F/st=tier_A”。因此,在该例子中,用户输入的路径名指定存储层200A。因此,在该情况中的“ls”命令作用于目录“/directory_A/directory_C/directory_F”和存储层200A。在该情况下,指定的存储层赋予“ls”命令一个上下文含义并通知文件系统软件205只应列出目录600F(“/directory_A/directory_C/directory_F”)中被指定给存储层200A的文件。因此,如显示的输出614B所示,只显示230A、230E和230F(这些文件被指定给存储层200A),而不显示文件230N和230P(这些文件被指定给存储层200B)。
图9示出用于对指定存储层执行文件系统操作的方法的另一实施例。
在321,接收指定文件系统操作和路径名的输入,其中路径名包括多个部分。这些部分包括一个或多个目录部分、文件名部分和存储层部分。
在323,分析路径名以确定由一个或多个目录部分指定的目录、由文件名部分指定的文件名和由存储层部分指定的存储层。
在325,执行文件系统操作,其中该文件系统操作对所述文件名、所述目录和所述存储层进行操作。
因此,图9所示的方法操作类似于图8的方法,但在本实施例中,输入指定的路径名还包括文件名。包括一个或多个目录部分、文件名部分和存储层部分的路径名的一个例子是以下格式的字符串:
/dir1/dir2/st=tier_A/filename。
包括一个或多个目录部分、文件名部分和存储层部分的路径名的另一例子是以下格式的串:
st=tier_A/dir1/dir2/filename
文件系统操作能以多种不同方式对文件名、目录和存储层进行操作,例如取决于文件操作的类型。例如,存储层可以指示对指定目录中的指定文件执行文件系统操作的存储层上下文。作为一个例子,文件系统操作可用于在指定目录中创建具有指定文件名的文件,使得新创建的文件被指定到指定的存储层。
作为一个例子,考虑图10所示的例子。假设系统如参考图6和7所述配置。如用户接口610所示,用户输入文本612:
mv/directory_A/directory_B/directory_D/directoryG/filenameC
/directoryA/directoryC/directoryF/st=tier_B/filenameC
该指定文本指示用户想要将目录600G(名为“/directory_A/directory_B/directory_D/directoryG”)中的文件230C(名为“filenameC”)移到目录600F(名为“/directoryA/directoryC/directoryF”)并指定到存储层200B(名为“st=tier_B”)。因此,在执行该命令时,文件系统软件205将文件230C从目录600G移到目录600F。因为文件230C之前被指定到目录层200A,所以文件系统软件205将文件230C重新指定到存储层200B。在将文件230C重新指定到存储层200B时,文件系统软件205可将文件从存储单元220A移到被指定给存储层200B的存储单元220之一。例如,在图10中,文件230C已移到存储单元220C。因此,例如,在存储层200代表存储设备125的分组的实施例中,文件系统软件205可将文件230C从一个存储设备125移到另一个存储设备。类似的,在存储层200代表卷212的分组的实施例中,文件系统软件205可将文件230C从一个卷212移到另一个卷。
图11图示其中文件系统命令对指定的文件名、目录和存储层进行操作的另一例子。在该例子中,用户导航到目录600F,然后输入以下文本612:
cat filenameA>
/directory_A/directory_B/directory_D/directoryG/st=tier_B/newfilename
指定的文本指示用户想要将来自文件230A(名为“filenameA”)的数据输送到名为“newfilename”的新文件,其中在目录600G(名为“/directory_A/directory_B/directory_D/directoryG”)中创建新文件,该新文件被指定到存储层200B(名为“tier B”),因此,文件系统软件可以使用来自文件230A的数据创建目录600G中的新文件230V并将新文件230V指定到存储层200B。因为新文件230V被指定到存储层200B,所以该文件可被存储在存储单元220C、220D或220E之一中。例如,在图11中,新文件230V已存储在存储单元220E中。
在该方法的另一实施例中,送入文件系统软件205的输入可以指定第一路径名和第二路径名。第一路径名包括含有一个或多个目录部分、文件名部分和存储层部分的第一字符串。第二路径名包括含有一个或多个目录部分和文件名部分的第二字符串。可以按任一顺序指定第一路径名和第二路径名。在该实施例中,可对第一文件名、第一目录、第二文件名、第二目录和存储层执行文件系统操作。在另一实施例中,第二路径名还可包括存储层,该方法可对第一文件名、第一目录、第二文件名、第二目录、第一存储层和第二存储层进行操作。
例如,在一个实施例中,用户输入文本:
mv/dir1/dir2/st=tiername1/*.txt
/dir3/st=tiername2
在该例子中,第一路径名中的文件名被赋予通配符(“*.txt”)。在处理该命令时,文件系统软件205将目录“/dir1/dir2”中被指定给存储层“tiername1”并具有扩展名“.txt”的每个文件移动到目录“/dir3”并将该文件重新指定给存储层“tiername2”。
因此,在某些实施例中,存储层信息可以与文件系统的名称空间集成在一起,例如使得用户或应用可以通过将特定的存储层指定为路径名中的一个组成部分而请求文件系统命令或文件系统操作在特定存储层的上下文中执行。
格式为“/dir1/dir2/st=tiername”的路径名这里也称为存储层目录,因为该路径名的样子就象目录“/dir1/dir2”存在一个名为“st=tiername”的子目录。然而,在某些实施例中,在目录层级中可能不存在名为“st=tiername”的实际目录。例如,如上所述,用户输入诸如“ls/dir1/dir2/st=tiername”的命令行文本。不是从名为“st=tiername”的实际目录检索文件列表,文件系统软件205例如可以通过分析“dir1/dir2”目录的目录信息和/或分析存储在该目录中的文件的文件信息来确定哪些文件被指定到指定的存储层,从而动态产生文件列表。
在某些实施例中,即使存储层目录不是目录层级中的实际目录,用户也可以改变当前目录以移动到一个存储层目录中。例如,用户可以输入诸如“cd/dir1/dir2/st=tiername”的命令行文本以将当前目录改变为指定的存储层目录。如果用户随后输入命令行文本“ls”,则文件系统可以只显示在目录“/dir1/dir2”中被指定到名为“tiername”的存储层的文件,就象用户键入“ls/dir1/dir2/st=tiername”一样。
作为另一例子,存储层目录在安装点(mount point)级对用户可见。例如,用户可以安装文件系统为“/st=t1”并输入命令行文本“cd/st=t1/dir1”。如果用户接着输入命令行文本“ls”,则文件系统可以只显示目录“/dir1”中被指定给名为“t1”的存储层的文件。如果用户接着例如通过输入“cd dir2”向下导航到“dir1”的子目录,则可以保持存储层上下文。例如,如果用户再次输入“ls”,则文件系统可以只显示目录“/dir1/dir2”中被指定给名为“t1”的存储层的文件。类似的,如果用户指定另一类型的文件系统命令而不指定绝对路径,则命令可以仅对当前目录中被指定给名为“t1”的存储层的文件进行操作。
对于在安装点级被指定的存储层目录,存储层上下文信息可被存储,使得当需要确定文件系统操作的存储层上下文时可被有效获取。例如,在某些实施例中,存储层上下文信息可被存储在包含关于安装的文件系统的信息的超级模块中。
在某些实施例中,可以预先计算并缓存用于存储层目录的各种目录列表,例如使得当文件系统操作需要时它们已可用。当通过存储层目录进行文件系统修改时,文件系统软件205可以首先修改实际目录层级中的文件系统目录信息,然后修改用于存储层目录的缓存的目录信息。这可以避免存储层目录信息位于实际目录层级中的目录信息之前。
在某些实施例中,存储层信息可被存储为每个文件的元数据。在其他实施例中,用于各个文件的存储层信息可以与该文件的父目录中的文件的名称一起存储。这可以改进确定在给定目录中哪些文件属于给定存储层的速度,因为可从父目录获取存储层信息,从而避免访问每个文件的元数据的需要。
在其他实施例中,存储层目录的概念可以扩展到包括多个存储层的存储层上下文信息,例如,用户可以输入“ls/dir1/dir2/st=(t1 OR t2)”以便请求文件系统显示目录“/dir1/dir2”中属于存储层“t1”或存储层“t2”的所有文件。作为另一例子,用户可以输入“ls/dir1/dir2/st=(NOT t1)”以便请求文件系统显示目录“dir1/dir2”中不属于存储层“t1”的所有文件。
在某些实施例中,可以通过诸如NFS或CIFS的协议将文件从远程机器放入或移至特定的存储层。例如,用户可以通过发出“mv”命令或其他文件系统操作以及远程文件系统中的路径名而指定将远程机器上的远程文件系统中的文件迁移到一个不同的存储层,其中路径名包括存储层部分。
在不同实施例中,将存储层信息和文件系统的名称空间集成在一起可使各种类型的软件应用能够使用存储层信息,否则它们不能这么容易地做到这一点。例如,考虑用户希望只备份“/home”中被指定给存储层“t1”的那些文件的备份软件应用。用户可以只是请求备份软件应用备份存储层目录“/st=t1/home”或“/home/st=t1”。这可以确保只备份所需文件。同样,可以以目录名的形式自动存储存储层名。在恢复过程中,因为恢复路径名是“/st=t1/home”,所以文件系统可以理解需要在存储层“t1”中创建这些文件。因此,现有备份产品可利用存储层信息而不需要重大改变。类似的,诸如搜索工具、分类工具或执行数据生命周期管理的应用等其他类型的软件应用可通过使用包括存储层部分的路径名而轻松使用存储层信息,例如以便执行诸如对指定存储层分配文件、列出指定存储层中的文件、将文件重新指定到指定存储层等操作。
作为某些实施例中潜在优点的另一例子,假设用户或应用知道所需文件的工作集属于一个特定的存储层或一组存储层。例如,假设用户的应用只需要属于存储层“t1”或“t2”的文件。不使用诸如“/dir1”的传统工作目录,用户可将工作目录设为“/st=(t1 OR t2)/dir1”。在其中目录过滤发生在目录读取级的实施例中,不属于存储层“t1”或“t2”的那些文件可不占用DNLC缓存中的不必要空间。另外,缓存的目录块可由文件系统产生,使得它们占用较少的空间。从用户角度看,他可以用不那么繁琐的名称空间来更好地浏览他的数据。
在某些实施例中,为系统定义的存储层可以具有层级组织。例如,多个卷可以形成一个集合,多个集合可以形成一层,多个层可以形成一类等。通过类似地表示为目录树结构,这样的层级可被合并到系统中。因此,例如如果应用希望将文件“dir1/file1”分配给类“Gold”,层“t1”,卷“v1”,则该应用可以指定使用路径名“class=Gold/tier=t1/volume=v1/dir1/file1”来创建该文件。如果用户不关心确切的层和卷而只关心类,则应用可以只指定诸如“class=Gold/dir1/file1”的路径名。
在某些实施例中,系统可跨多个存储层来分割文件。这对于例如非常大的数据库文件可能是有用的。分割的文件可以通过存储层的联合来处置。例如,如果用户希望指定将文件部分放在存储层“t1”或“t2”上,则用户可提供路径名“st=(t1 OR t2)”。可以使该文件在“t1”的存储层目录和“t2”的存储层目录是可见的。如果希望只有给定存储层中的文件可见,则可以通过向原始文件名附加偏移长度组合而形成相应存储层目录中的文件名。
应注意,各种实施例进一步包括接收、发送或存储在计算机可访问存储介质上根据上面描述的内容而实施的指令和/数据。一般来讲,计算机可访问存储介质可包括在向计算机提供指令和/或数据时计算机可访问的任何存储介质。例如,计算机可访问存储介质可包括诸如磁或光介质的存储介质,例如盘(固定的或可移动的)、磁带、CD-ROM、DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW等。存储介质还可以包括可经由诸如通用串行总线(USB)接口等外围接口访问的、诸如RAM(例如,同步动态RAM(SDRAM)、Rambus DRAM(RDRAM)、静态RAM(SRAM)等)、ROM、闪存、非易失性存储器(例如,闪存)的易失性或非易失性存储介质。在某些实施例中,计算机可通过诸如网络和/或无线链接的通信装置访问存储介质。
虽然上面已详细描述实施例,但只要充分理解上面的说明,各种改变和修改对本领域技术人员就会变得明显。希望随后的权利要求能解释为包含所有变型和修改。
Claims (19)
1.一种存储程序指令的计算机可访问存储介质,所述程序指令可运行来实施一种方法,该方法包括:
接收指定文件系统操作和第一路径名的输入,其中所述第一路径名包括多个部分,其中所述多个部分包括存储层部分和一个或多个目录部分;
分析所述笫一路径名以确定由所述一个或多个目录部分指定的第一目录和由所述存储层部分指定的第一存储层;以及
执行所述文件系统操作,其中所述文件系统操作对所述第一目录和所述笫一存储层进行操作。
2.根据权利要求1的计算机可访问存储介质,
其中所述第一路径名包括字符串,该字符串包括多个部分;以及
其中分析所述第一路径名包括:分析所述字符串以确定由所述一个或多个目录部分指定的第一目录以及由所述存储层部分指定的第一存储层。
3.根据权利要求1的计算机可访问存储介质,
其中所述第一存储层代表多个存储单元的分组,其中所述文件系统操作对所述笫一存储层中的一个或多个存储单元进行操作。
4.根据权利要求3的计算机可访问存储介质,
其中所述笫一存储层的每个存储单元包括卷和物理存储设备之一。
5.根据权利要求1的计算机可访问存储介质,
其中所述第一目录包括多个文件,其中,所述第一目录中的每个文件被指定到多个存储层之一,其中所述多个存储层包括所述笫一存储层,其中所述多个文件中的至少一个文件被指定到所述第一存储层;以及
其中所述文件系统操作用于列出所述笫一目录中被指定到所述第一存储层的文件。
6.根据权利要求1的计算机可访问存储介质,
其中所述笫一路径名的多个部分还包括文件名部分;
其中所述第一路径名被进一步分析以确定由该文件名部分指定的第一文件名;以及
其中所述文件系统操作对所述第一文件名、第一目录和第一存储层进行操作。
7.根据权利要求6的计算机可访问存储介质,
其中所述文件系统操作用于在所述第一目录中创建具有所述笫一文件名的文件,使得该文件被指定到所述第一存储层。
8.根据权利要求6的计算机可访问存储介质,
其中所述输入还指定笫二路径名,其中该第二路径名包括指定笫二目录的一个或多个目录部分和指定第二文件名的文件名部分;
其中由所述程序指令实施的方法进一步包括:分析所述第二路径名以确定所述笫二目录和所述第二文件名;
其中所述文件系统操作对所述笫一文件名、第一目录、第二文件名、第二目录和笫一存储层进行操作。
9.根据权利要求8的计算机可访问存储介质,
其中所述笫二文件名识别所述笫二目录中的文件;
其中所述文件系统操作用于将来自所述第二目录的文件移到所述第一目录,使得该文件被重命名为所述笫一文件名被指定到所述笫一存储层。
10.根据权利要求1的计算机可访问存储介质,
其中通过操作系统用户接口接收所述输入作为用户输入。
11.根据权利要求1的计算机可访问存储介质,
其中所述笫一路径名包括字符串,该字符串包括多个部分;以及
其中该字符串的每个部分用分隔符来分隔。
12.根据权利要求1的计算机可访问存储介质,
其中所述笫一路径名包括字符串,该字符串包括多个部分;以及
其中所述存储层部分在该字符串中位于所述一个或多个目录部分之后。
13.根据权利要求1的计算机可访问存储介质,
其中所述笫一路径名包括字符串,该字符串包括多个部分;以及
其中所述存储层部分在该字符串中位于所述一个或多个目录部分之前。
14、一种系统,包括:
一个或多个处理器;以及
存储程序指令的存储器;
其中所述程序指令可由所述一个或多个处理器执行来实施一种方法,该方法包括:
接收指定文件系统操作和第一路径名的输入,其中所述笫一路径名包括多个部分,其中所述多个部分包括存储层部分和一个或多个目录部分;
分析所述第一路径名以确定由所述一个或多个目录部分指定的第一目录和由所述存储层部分指定的笫一存储层;以及
执行所述文件系统操作,其中所述文件系统操作对所述第一目录和所述笫一存储层进行操作。
15.根据权利要求14的系统,
其中所述第一路径名包括字符串,该字符串包括多个部分;以及
其中分析所述第一路径名包括:分析所述字符串以确定由所述一个或多个目录部分指定的第一目录以及由所述存储层部分指定的第一存储层。
16.根据权利要求14的系统,
其中所述第一存储层代表多个存储单元的分组,其中所述文件系统操作对所述笫一存储层中的一个或多个存储单元进行操作。
17.根据权利要求14的系统,
其中所述笫一存储层的每个存储单元包括卷和物理存储设备之一。
18.根据权利要求14的系统,
其中所述第一路径名的多个部分还包括文件名部分;
其中所述第一路径名被进一步分析以确定由该文件名部分指定的第一文件名;以及
其中所述文件系统操作对所述笫一文件名、第一目录和第一存储层进行操作。
19.一种方法,包括;
接收指定文件系统操作和第一路径名的输入,其中所述第一路径名包括多个部分,其中所述多个部分包括存储层部分和一个或多个目录部分;
分析所述第一路径名以确定由所述一个或多个目录部分指定的第一目录和由所述存储层部分指定的第一存储层;以及
执行所述文件系统操作,其中所述文件系统操作对所述第一目录和所述笫一存储层进进行操作。
20.根据权利要求19的方法,
其中所述第一存储层代表多个存储单元的分组,其中所述文件系统操作对所述笫一存储层中的一个或多个存储单元进行操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/853,121 | 2007-09-11 | ||
US11/853,121 US8200719B2 (en) | 2007-09-11 | 2007-09-11 | System and method for performing a file system operation on a specified storage tier |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101393561A true CN101393561A (zh) | 2009-03-25 |
CN101393561B CN101393561B (zh) | 2012-11-28 |
Family
ID=40042714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101769839A Active CN101393561B (zh) | 2007-09-11 | 2008-09-10 | 对指定存储层执行文件系统操作的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8200719B2 (zh) |
EP (1) | EP2037379B1 (zh) |
JP (1) | JP5537005B2 (zh) |
CN (1) | CN101393561B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103458A (zh) * | 2009-12-17 | 2011-06-22 | 三星电子株式会社 | 电子设备及控制该电子设备的方法 |
CN105103114A (zh) * | 2013-03-14 | 2015-11-25 | 微软技术许可有限责任公司 | 提供多个层的数据存储、文件和卷系统 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011045831A1 (en) * | 2009-10-13 | 2011-04-21 | Hitachi,Ltd. | Storage apparatus and its control method |
US8843459B1 (en) * | 2010-03-09 | 2014-09-23 | Hitachi Data Systems Engineering UK Limited | Multi-tiered filesystem |
US9063656B2 (en) | 2010-06-24 | 2015-06-23 | Dell Gloval B.V.—Singapore Branch | System and methods for digest-based storage |
US20120011329A1 (en) * | 2010-07-09 | 2012-01-12 | Hitachi, Ltd. | Storage apparatus and storage management method |
US9165015B2 (en) * | 2010-07-29 | 2015-10-20 | International Business Machines Corporation | Scalable and user friendly file virtualization for hierarchical storage |
US9235588B1 (en) * | 2010-12-29 | 2016-01-12 | Symantec Corporation | Systems and methods for protecting deduplicated data |
TWI483171B (zh) * | 2011-03-10 | 2015-05-01 | Chi Mei Comm Systems Inc | 檔案管理系統及方法 |
US8904121B2 (en) * | 2011-09-22 | 2014-12-02 | Hitachi, Ltd. | Computer system and storage management method |
CN103176861A (zh) * | 2011-12-26 | 2013-06-26 | 富泰华工业(深圳)有限公司 | 用于数据备份的存储系统及备份方法 |
US10210175B2 (en) * | 2012-09-28 | 2019-02-19 | Oracle International Corporation | Techniques for lifecycle state management and in-database archiving |
CN104537017B (zh) * | 2014-12-18 | 2018-05-04 | 华为技术有限公司 | 一种基于路径的文件搜索方法及装置 |
US10095701B1 (en) * | 2015-09-30 | 2018-10-09 | EMC IP Holding Company LLC | Translation-based name node configuration for object access in a multi-tier storage system |
US10733142B1 (en) * | 2017-09-30 | 2020-08-04 | EMC IP Holding Company LLC | Method and apparatus to have snapshots for the files in a tier in a de-duplication file system |
KR102442366B1 (ko) * | 2021-04-15 | 2022-09-13 | 계명대학교 산학협력단 | 블록 체인 기반의 기업 네트워크를 이용하여 접근 가능한 정보를 관리하는 분산 저장 방법 및 장치 |
US11669318B2 (en) * | 2021-05-28 | 2023-06-06 | Oracle International Corporation | Rapid software provisioning and patching |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03242740A (ja) * | 1990-02-21 | 1991-10-29 | Nec Corp | I/o性能可変なファイルシステムの作成装置 |
US5812776A (en) * | 1995-06-07 | 1998-09-22 | Open Market, Inc. | Method of providing internet pages by mapping telephone number provided by client to URL and returning the same in a redirect command by server |
US5813008A (en) * | 1996-07-12 | 1998-09-22 | Microsoft Corporation | Single instance storage of information |
US7627552B2 (en) * | 2003-03-27 | 2009-12-01 | Microsoft Corporation | System and method for filtering and organizing items based on common elements |
US7409644B2 (en) * | 2003-05-16 | 2008-08-05 | Microsoft Corporation | File system shell |
JPWO2004109517A1 (ja) * | 2003-06-09 | 2006-07-20 | 富士通株式会社 | ストレージ管理プログラムおよびファイル処理プログラム |
GB0314593D0 (en) | 2003-06-23 | 2003-07-30 | Symbian Ltd | A method of enabling an application to access files stored on a storage medium |
US20050044075A1 (en) * | 2003-07-29 | 2005-02-24 | Microsoft Corporation | Method and apparatus for late-binding/dynamic pathname resolution |
GB0412815D0 (en) | 2004-06-09 | 2004-07-14 | Hewlett Packard Development Co | Pathname translation method and system |
US20050283456A1 (en) * | 2004-06-18 | 2005-12-22 | Graham Christoph J | Systems and methods for building a disk image |
US7627547B2 (en) * | 2004-11-29 | 2009-12-01 | Oracle International Corporation | Processing path-based database operations |
US20070022117A1 (en) * | 2005-07-21 | 2007-01-25 | Keohane Susann M | Accessing file system snapshots directly within a file system directory |
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 |
US20080104081A1 (en) * | 2006-10-30 | 2008-05-01 | Yasuyuki Mimatsu | Tiered storage system with single instance function |
-
2007
- 2007-09-11 US US11/853,121 patent/US8200719B2/en active Active
-
2008
- 2008-09-09 EP EP08163989.0A patent/EP2037379B1/en active Active
- 2008-09-10 CN CN2008101769839A patent/CN101393561B/zh active Active
- 2008-09-11 JP JP2008233797A patent/JP5537005B2/ja active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103458A (zh) * | 2009-12-17 | 2011-06-22 | 三星电子株式会社 | 电子设备及控制该电子设备的方法 |
CN105103114A (zh) * | 2013-03-14 | 2015-11-25 | 微软技术许可有限责任公司 | 提供多个层的数据存储、文件和卷系统 |
CN105103114B (zh) * | 2013-03-14 | 2018-12-04 | 微软技术许可有限责任公司 | 提供多个层的数据存储、文件和卷系统 |
Also Published As
Publication number | Publication date |
---|---|
US8200719B2 (en) | 2012-06-12 |
US20090070382A1 (en) | 2009-03-12 |
CN101393561B (zh) | 2012-11-28 |
EP2037379A1 (en) | 2009-03-18 |
EP2037379B1 (en) | 2020-05-13 |
JP2009070382A (ja) | 2009-04-02 |
JP5537005B2 (ja) | 2014-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101393561B (zh) | 对指定存储层执行文件系统操作的系统和方法 | |
US6505214B1 (en) | Selective information synchronization based on implicit user designation | |
US6519612B1 (en) | Internet storage manipulation and navigation system | |
CN1656478B (zh) | 显示来自不同物理位置的不同类型的项目的文件系统 | |
US8086809B2 (en) | Interface systems and methods for accessing stored data | |
US7143112B2 (en) | Method and apparatus for data integration | |
US6922761B2 (en) | Method and system for migrating data | |
CN100437580C (zh) | 用于索引文件并将相关元数据添加到索引和元数据数据库的方法和系统 | |
US7503042B2 (en) | Non-script based intelligent migration tool capable of migrating software selected by a user, including software for which said migration tool has had no previous knowledge or encounters | |
US20070185879A1 (en) | Systems and methods for archiving and retrieving digital assets | |
US20020095416A1 (en) | Integration of a database into file management software for protecting, tracking, and retrieving data | |
WO2005081942A2 (en) | Hierarchical storage management | |
WO2004086185A2 (en) | Rules-based deployment of computing components | |
CN103150316A (zh) | 基于共同元素的用于过滤和组织条目的系统 | |
WO2006107319A2 (en) | User data profile namespace | |
US7587446B1 (en) | Acquisition and synchronization of digital media to a personal information space | |
WO2005078603A1 (en) | Method of converting a filesystem while the filesystem remains in an active state | |
US7080102B2 (en) | Method and system for migrating data while maintaining hard links | |
JP3888100B2 (ja) | ファイル・リロケーション・システムおよびその処理プログラム | |
US6990493B1 (en) | File access system | |
EP1665096A1 (en) | Agent-based personal object management | |
EP1284453A2 (en) | Method, device, dynamic linker, and program for retrieving a library for an executing program | |
US7605815B1 (en) | Selection representation methods applied to logical groupings | |
Dalrymple | xfm 1.3 | |
Leonard et al. | Metadata Collection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |