CN101131672A - 具有可变逻辑存储块大小的文件系统 - Google Patents

具有可变逻辑存储块大小的文件系统 Download PDF

Info

Publication number
CN101131672A
CN101131672A CNA2007101419101A CN200710141910A CN101131672A CN 101131672 A CN101131672 A CN 101131672A CN A2007101419101 A CNA2007101419101 A CN A2007101419101A CN 200710141910 A CN200710141910 A CN 200710141910A CN 101131672 A CN101131672 A CN 101131672A
Authority
CN
China
Prior art keywords
file
data
system software
storage device
type
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.)
Pending
Application number
CNA2007101419101A
Other languages
English (en)
Inventor
D·道奇
P·范·德·费恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
QNX Software Systems GmbH
Original Assignee
QNX Software Systems GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by QNX Software Systems GmbH filed Critical QNX Software Systems GmbH
Publication of CN101131672A publication Critical patent/CN101131672A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Abstract

本文提出了一种系统,该系统包括处理器、可由处理器存取的数据存储设备,和可由处理器执行以在数据存储设备上组织文件的文件系统软件。文件系统软件可被执行用于在数据存储设备上将文件组织到具有不同逻辑存储块大小的存储区中,其中的逻辑存储块大小取决于文件类型。在一种实现中,文件系统软件可被执行用于生成与数据存储设备相关联的孔图。孔图包括表示数据存储设备的多个存储区中的每一个存储区的逻辑存储块大小的数据,可选地,孔图可以包括表示多个存储区中的每一个存储区的使用程度的数据。文件系统可使用文件的文件名和/或嵌入的文件信息来识别文件类型。

Description

具有可变逻辑存储块大小的文件系统
技术领域
本发明主要涉及在计算机、嵌入式控制器、处理系统等中使用的文件系统。更特别地,本发明涉及将数据存储空间组织成不同大小的逻辑存储块的文件系统。
背景技术
典型地,计算机、嵌入式控制器及其它基于微处理器的系统是由各种不同的硬件组件构成的。硬件组件可包括处理器、I/O设备、人机接口设备等。另外,这类系统使用存储器存储单元来保存系统中使用的数据。存储器存储单元可采用各种不同的形式,包括,但不限于,硬盘驱动器、软盘驱动器、随机存取存储器、闪存等。
在这类系统中执行的高级应用程序通常必须与这些硬件组件(包括存储器存储单元)无缝地相互作用。所以,很多系统运行操作系统来作为应用程序与系统硬件的接口。文件系统软件可作为操作系统的一部分包括在操作系统中,也可以被设置为与操作系统交互的辅助软件组件。在任一种情况下,文件系统软件将存储器存储单元内的数据组织起来,以准备好供处理器和由处理器执行的高级应用程序来存取。
文件系统软件可使用文件/目录层,该层将文件和目录的内容组织成在存储设备上的连续数据的大小相等的逻辑存储块。每个逻辑存储块与实际保存数据的存储设备上的一个或多个相应的物理块相关联。文件/目录层可通过识别出每个响应请求而需要被更新的逻辑存储块,并重写每个这种逻辑存储块的全部内容,来执行对文件系统的更新。文件/目录层可通过读取每个存储有要读取的数据区的一部分的逻辑存储块的全部内容,来读取文件或目录的内容。
文件系统还可包括存储层,该层将文件系统内容的虚拟地址映射到数据存储设备上的物理数据块。通过确定与请求相关联的正确物理块和从数据存储设备中读出其内容,存储层可执行来自文件/目录层的逻辑块读取请求。类似地,存储层可通过以下两种方式之一来执行写请求:通过更新现有物理块的内容,或者通过从数据存储设备中分配未使用的物理块给逻辑存储块,然后更新该物理块的内容。
由于所有逻辑块具有相同的大小,并且所有物理块也具有相同的大小,所以现有的文件系统对于遇到的各类文件数据并不是最佳的。在这些现有的系统中,所有数据类型都使用固定的逻辑存储块大小,这表示在与长存取流相关联的文件类型和与短存取流相关联的文件类型之间的折衷。因此,需要一种对现有文件系统的组织的替代方案。
发明内容
本发明提出了一种系统,该系统包括处理器、可由处理器进行存取的数据存储设备、可被处理器执行以在数据存储设备上组织文件的文件系统软件。文件系统软件可被执行,以在数据存储设备上将文件根据文件类型组织到具有不同逻辑存储块大小的存储区中。在一种实现中,文件系统软件可被执行用来生成与数据存储设备相关联的孔图(hole map)。孔图包括表示数据存储设备的多个存储区中的每一个存储区对应的逻辑存储块大小的数据,并且可选地,孔图可以包括表示多个存储区中的每一个存储区的使用程度的数据。文件系统可使用文件的文件名和/或嵌入的文件信息来识别文件类型。
在研究后面的附图和详细说明之后,具备本领域专业技术的人员将会清楚本发明的其它系统、方法、特征和优点。所有这种另外的系统、方法、特征和优点应被包括在该说明内,并应包括在本发明的保护范围内,并且受到后面的权利要求的保护。
附图说明
参考后面的附图和说明可以更好地理解本发明。附图中的组件并不一定是按比例的、强调的,而是用于说明本发明的原理。此外,在附图中,在不同的示图中使用相同的附图标记来表示对应的部分。
图1是可实现具有可变逻辑存储块存储大小的文件系统的处理系统的框图;
图2是孔图和对应存储区的框图,示出了文件系统可以用来在图1的数据存储设备上组织文件数据的一种方式;
图3是显示可用在图2的孔图的孔上以标识对应的区域类型的位设置的示例表;
图4是显示图3中提及的区域类型与逻辑存储块大小之间的相关性的示例表;
图5是显示可用在图2的孔图的孔上以表示对应的存储区的使用程度的位设置的示例表;
图6是显示可由图1的文件系统使用的文件类型和对应的区域类型的示例表;
图7是显示当文件系统中正在增长或扩展文件时可使用的多个相互关联的操作的流程图;
图8是显示可用在图7的可替代存储处理操作中的多个相互关联的操作的流程图;
图9是显示可用以实现图8的方框825所示的较大的逻辑存储块行为的多个相互关联的操作的流程图。
具体实施方式
图1示出了可用在示例的处理系统100中的组件。如图所示,示例系统100包括处理器105、只读存储器110和数据存储器115。处理系统100还包括随机存取存储器120、I/O接口125和用户接口130。在处理系统100中使用的具体组件可根据处理系统100要执行的特定功能来设计。因此,一个组件的有无是根据处理系统100所用的设计标准而定的。
数据存储器115可包括操作系统代码135,操作系统代码135用于控制由处理器105执行的高级应用程序和各硬件组件(包括存储器110和120、数据存储器115和接口设备125和130)之间的交互。操作系统代码135可包括用于组织存储在数据存储器115上的文件的文件系统软件。可替代地,文件系统软件可被设置为独立的软件组件,其仅与操作系统代码135进行交互。在后面的情况下,对应于文件系统软件的代码可被存储在只读存储器110、数据存储器115等中。当处理系统100通过I/O接口125与其它计算机和/或存储设备互连时,文件系统软件可被远程存储并在需要时下载到处理系统100。然而,图1示出了文件系统软件140存储在数据存储器115中的情况。
数据存储器115可采取任意种不同的形式。例如,数据存储器115可采取硬盘驱动器、软盘驱动器等形式。它还可以采取非旋转的介质设备的形式,诸如,以集成电路形式实现的非易失性存储器(例如,闪存等)。此外,数据存储器115不需被限制为单一的存储结构。相反,数据存储器115可包括多个相同类型的独立存储设备(例如,均为闪存)和/或不同类型的独立存储设备(例如,一个或多个闪存单元和一个或多个硬盘驱动器)。
保存在数据存储器115中的文件包括,根据应用程序或操作系统代码135所使用的预定格式而被解释的数据。例如,保存在文件内的数据可构成可执行程序的软件代码、数据库记录的ASCII文本、音频媒体文件、视频媒体文件等。文件系统软件140可以由处理器105来执行,以基于所保存的数据的类型来分配数据存储器115上的物理数据存储。通过文件系统软件140,以便于优化读写数据速度同时不牺牲有效存储小文件的能力的方式,将文件数据组织在数据存储器115上。
图2示出了文件系统软件140可用来在数据存储器115上组织文件的一种方式。为了便于说明,数据存储器115将被称作硬盘系统。然而,文件系统软件140的操作可方便地被扩展到其它类型的数据存储器。
当最初执行文件系统软件140时,它分配至少一个孔图205用作数据存储器115的存储区的位图表示。可以在数据存储器115的磁盘驱动器卷的起始位置创建孔图205,并将其初始化为零(0)。孔图205中的每个孔可包括与单个存储区对应的4位。如图2所示,孔210对应存储区215。孔220对应存储区225。孔230对应存储区235,并且孔240对应存储区245。孔图205中的其它孔对应数据存储器115的另外的存储区。
存储区215、225、235和245在数据存储器115上可具有相同的物理大小。例如,数据存储器115的每个存储区可包括128MB的总存储区。然而,文件系统软件140使用逻辑存储块大小将文件组织到存储区中,其中的逻辑存储块大小取决于每个存储区中的数据类型。如图3所示,每个孔的两位表示对应存储区的区域类型。在该实例中,位设置(00)将对应存储区标识为Cluster区域类型。位设置(01)将对应存储区标识为Bundle区域类型。位设置(10)将对应存储区标识为Wad区域类型。位设置(11)识别对应存储区为Throng区域类型。
图4是显示每个存储区类型的逻辑存储块大小的示例表。因此,文件系统软件140把被标识为cluster区域类型的存储区组织到大小均为4K的逻辑存储块中。文件系统软件140使用大小均为64K的逻辑存储块来组织被标识为bundle区域类型的存储区。文件系统软件140使用大小均为256K的逻辑存储块来组织被标识为wad区域类型的存储区。文件系统软件140使用大小均为1024K的逻辑存储块来组织被标识为throng区域类型的存储区。
分配给存储区的逻辑存储块大小与文件系统用来将文件数据存储在存储区中的内存中的高速缓冲区的大小相对应。例如,保存在被指定为cluster区域类型的存储区中的数据,将被文件系统软件140使用一个或多个4K存储缓冲器来高速缓存在内存中。保存在被指定为bundle区域类型的存储区中的数据将被文件系统软件140使用一个或多个64K存储缓冲器来高速缓存在内存中。相同的数据高速缓存操作可扩展到被指定为wad区域类型(256K高速缓存存储缓冲器),以及被指定为throng区域类型(1024K高速缓存存储缓冲器)的存储区。
孔图205中的每个孔可包括表示在相应的存储区中的文件数据使用的空间量的信息。因此,每个孔的剩余两位可被用于编码使用信息。图5是显示对存储区使用进行编码的一种方式的表。在该实例中,位设置(00)被用于表示对应存储区为空。位设置(10)被用于表示对应存储区部分地填充有文件数据。位设置(11)被用于表示对应存储区完全填满文件数据,从而禁止文件系统软件140将更多数据存储在该对应存储区中。还可以使用其它位设置来表示特定存储区在特定值之上或之下。
特定存储区被指定为cluster、bundle、wad还是throng取决于存储在存储区中的数据的文件类型。由于应用程序趋于使用不同的方式来存取不同的文件类型,所以可变逻辑存储块大小允许优化每个存储区的对不同类型的文件的读和写。例如,与视频媒体文件相关联的数据可一次性进行大段的存取。这样,文件系统软件140可以更加有效地使用很大的逻辑存储块大小(诸如,wad或throng)来组织这种视频媒体数据,以用于后续的例如被视频播放器应用软件存取。同样,尽管这种音频媒体段可能比对应的视频媒体数据段小,但是与音频媒体文件相关联的数据可一次性进行大段的存取。因此,文件系统软件140可以有效地使用中等大小的逻辑存储块结构(诸如,bundle或wad)来组织音频媒体数据。文件系统软件140可以使用cluster-大小的逻辑存储块来有效地处理与其它文件类型相关联的数据。另外,cluster-大小的逻辑存储块可被用于组织不确定的文件类型。
图6的表格示出了各种文件类型和文件系统软件140可分配给包含该文件类型的数据的存储区的区域类型的实例。这种表格可被结合到文件系统软件140中,用于指定与给定文件类型相关联的各个区域类型。这种关联可以是可由用户基于,例如,提供给系统100的初始化参数来选择的。以这种方式,系统100可由用户来进行优化,以处理文件系统软件140最可能遇到的文件类型。对于与正被使用的第一文件类型相关联的区域类型的匹配,文件系统软件可使用按照所示顺序的这些映射。这些关系也可以由使用者/开发者来重写。
图7是表示在文件增长或扩展时可被执行的多个相互关联的操作的流程图。如图所示,在方框705,请求文件增长或扩展。在方框710,文件系统软件140试图识别文件的内容类型。对内容类型的识别可以通过多种不同方式来进行。例如,文件系统软件140可将文件扩展与图6所示的各文件扩展进行比较,以确定文件类型。可替代地,或附加地,文件系统软件140可查看嵌入文件中的内容,以识别文件类型。一旦知道文件类型,在方框715,进行搜索以确定是否存在任何适于储文件数据的区域类型的存储区。如果在方框720,存在有存储空间的适当类型的(一个或多个)区域,在方框725,文件系统软件140将该区域分配给文件,并在必要时更新对应存储区的孔图。可以通过检查孔图205中与存储区对应的区域使用位,来确定存储区是否有保存文件数据的空间。如果区域使用位设置表示该区域为空,则文件系统软件140可使用该存储区来存储文件数据。如果位设置表示区域被部分填充,则文件系统软件140可通过,例如,计算空间中的已使用的位数,来确定存储区中的空闲空间的准确量。可使用存储区中的部分或全部空闲空间来存储部分或全部文件数据。一旦知道空闲空间的量,就可以将其保存在例如RAM 120中的表格中,以备后续使用。存储区的空闲空间的量的进一步改变可以被反映在该表格的更新中。一旦文件系统140识别出适当区域类型的并且具有空闲空间的存储区,在方框730所示的操作中,文件数据被保存在存储区中。如果在方框720执行的操作未能为文件数据找到具有空闲存储空间的适当区域类型的存储区,则在方框735可执行一个或多个可替代存储处理。
图8是显示可以作为图7的方框735所示的可替代存储处理的一部分来执行的多个相互关联的操作的流程图。在方框805,文件系统软件140检查孔图205,以确定是否存在任何未分配区域类型的空存储区。如果存在这种空闲存储区,则文件系统软件140通过,例如,更新对应存储区的孔图205,在方框810,将与文件类型对应的区域类型分配给空闲存储区。在方框815所示的操作中,文件的数据被保存在该存储区中。
如果在方框805没有空闲存储区,则数据存储器115的所有存储区都被分配了区域类型并可能包含数据。文件系统软件140可以通过多种不同方式来处理这种情况。在图8所示的示例操作中,在方框820,文件系统软件140进行检查,以确定是否存在向系统、文件类型,和/或特定文件进行分配的区域类型分配行为。这样,区域类型分配行为可以在系统级(通过文件类型)和/或单个文件级上实现。该行为可由用户在系统100的开发过程中和/或在系统初始化过程中进行选择。
图8中示出了两个区域类型分配行为。它们被标记为“较大逻辑存储块”行为和“较小逻辑存储块”行为。如果方框820的操作表示将表现出“较大逻辑存储块”行为,则在方框825,文件系统软件140继续执行对应的较大逻辑存储块处理。如果方框820的操作表示将表现出“较小逻辑存储块”行为,则在方框835,文件系统软件140搜索孔图205,以找出具有更小一级的逻辑存储块大小且有一些空闲空间来存储文件数据的区域类型的存储区。例如,如果要存储的文件数据原本是与wad区域类型相关联的,则文件系统软件140将搜索孔图205,以找出具有bundle区域类型且有一些可用来保存文件数据的空间的一个或多个存储区。如果更小一级的逻辑存储块大小的一个或多个存储区可用来存储文件数据,则在方框855,文件系统软件140将文件数据保存在该存储区中,并可以相应地(即,部分、全部,等)更新孔图205。重复执行一个或多个上述操作,直到可被保存在该区域类型级上的文件的所有数据都被保存为止。
如果在方框835的操作未能分配适当的区域用于保存文件数据,或者在先前的操作中已经存储了一些数据之后还有剩余的数据要存储,则在方框840进行检查,以确定在方框835搜索的最后一个区域类型是否与文件系统中可用的最小逻辑存储块大小区域相对应。如果它不对应于最小区域类型,则文件系统软件140将继续搜索具有更小一级的逻辑存储块大小相关联的区域类型的存储区,并将文件数据存储到该存储区中。使用前述实例,文件系统软件140将搜索孔图205,以找出具有cluster区域类型且具有可用于保存文件数据的可用空间的一个或多个存储区。如果找到这种区域,则方框845的操作将被执行。如果文件系统软件140使用“较小逻辑存储块”行为未能查找到适当区域用于存储文件数据,则在方框850可以进行检查,以确定是否存在任何具有较大逻辑存储块大小的并且具有用来保存文件数据的空间的存储区。在已经实施较大逻辑存储块行为的那种情况下,在方框850的操作中,仅需考虑具有尚未被搜索过的逻辑存储块大小的存储区。如果文件系统软件140不能分配具有较大逻辑存储块大小的适当区域来存储文件数据,则在方框855将宣布磁盘已满错误。否则,在方框850识别出的存储区可以在方框860被降级为较小值的区域类型,诸如cluster区域类型或与文件类型对应的区域类型。在方框865,将数据保存在存储区中。同样,重复一个或多个前述操作,直到可被保存在给定区域类型等级上的文件的所有数据都被保存为止。
图9是显示用于实现图8的方框825所示的较大逻辑存储块行为的多个相互关联的操作的流程图。如图所示,在方框905,文件系统软件140搜索孔图205以找出具有更大一级的逻辑存储块大小且有用以保存文件数据的空闲空间的区域类型的存储区。例如,如果要存储的文件数据原本是与bundle区域类型相关联的,则文件系统软件140将搜索孔图205以找出具有wad区域类型且有用以保存文件数据的可用空间的一个或多个存储区。如果更大一级的逻辑存储块大小的一个或多个存储区可用于存储文件数据,则在方框910,文件系统软件140将文件数据存储在该存储区中。
如果在方框905的操作未能查找到适当的区域用于保存文件数据,则在方框915进行检查,以确定在方框905搜索的最后一个区域类型是否与要搜索的最大逻辑存储块大小的区域相对应。要搜索的最大逻辑存储块大小的区域可以由用户通过编程来进行选择。如果它不对应于最大逻辑存储块大小,则在方框905,文件系统软件140将继续搜索具有与更大一级的逻辑存储块大小相关联的区域类型的存储区。使用前述实例,文件系统软件140将搜索孔图205以找出具有throng区域类型且有用以保存文件数据的可用空间的一个或多个存储区。如果找到这种区域,则方框910的操作将被执行。如果在搜索了所有允许的较大逻辑存储块大小之后,文件系统软件140未能查找到适当区域用于存储文件数据,则文件系统软件140可以在方框920开始执行较小逻辑存储块行为。在图8中示出了这种较小逻辑存储块行为。
在图7、8和9所示的操作中,文件数据的特定存储区的选择可以按多种不同方式进行。例如,可以选择具有最大空闲空间量的存储区来存储文件数据。可替代地,可以选择具有最小空闲空间量的存储区来存储文件数据。此外,文件系统软件140可以将其识别出的满足区域类型和空间标准的第一存储区分配用来存储文件数据。
虽然本文描述了本发明的各实施例,但对于那些具备本领域的普通技术的人员来说,显然在本发明的范围内可以有很多种实施方式和具体实现。因此,本发明并不局限于此,而是以所附的权利要求及其等效体为准。

Claims (22)

1.一种系统,包括:
处理器;
可由所述处理器进行存取的数据存储设备;
可由所述处理器执行以在所述数据存储设备上组织文件的文件系统软件,其中所述文件系统软件可被执行用于在所述数据存储设备上将文件组织到具有不同逻辑存储块大小的存储区中,所述逻辑存储块大小取决于文件类型。
2.如权利要求1所述的系统,其中,所述文件类型包括视频数据文件、音频数据文件和可执行文件。
3.如权利要求2所述的系统,其中,所述文件系统软件可被执行用于以比音频数据文件大的逻辑存储块来组织视频数据文件。
4.如权利要求3所述的系统,其中,所述文件系统软件可被执行用于以比可执行文件大的逻辑存储块来组织音频数据文件。
5.如权利要求1所述的系统,其中,所述文件系统软件可被执行用于生成与所述数据存储设备相关联的孔图,并且其中,所述孔图包括表示所述数据存储设备的多个存储区中的每一个的逻辑存储块大小的数据。
6.如权利要求5所述的系统,其中,所述文件系统软件可被执行用于在所述数据存储设备上的接近卷的起始部分处生成所述孔图。
7.如权利要求5所述的系统,其中,所述文件系统软件可被执行用于将表示所述存储设备的被映射的存储区的使用程度的数据存储在所述孔图中。
8.如权利要求1所述的系统,其中,所述文件系统软件可被执行用于使用文件的文件名来识别文件的文件类型。
9.如权利要求1所述的系统,其中,所述文件系统软件可被执行用于使用嵌入的文件信息来识别文件的文件类型。
10.如权利要求1所述的系统,其中,所述文件系统软件可被执行用于在与所述文件类型对应的逻辑存储块大小的区域不可用时,将文件数据存储在具有较小的逻辑存储块大小的区域中。
11.如权利要求1所述的系统,其中,所述文件系统软件可被执行用于在与所述文件类型对应的逻辑存储块大小的区域不可用时,将文件数据存储在存储器的降级的区域中。
12.一种系统,包括:
处理器;
可由所述处理器进行存取的数据存储设备;
可由所述处理器执行以在所述数据存储设备上组织文件的文件系统软件,其中所述文件系统软件可被执行用于在所述数据存储设备上使用具有第一逻辑存储块大小的第一区域类型和具有第二逻辑存储块大小的第二区域类型来组织文件,所述第二逻辑存储块大小不同于所述第一逻辑存储块大小,并且其中,所述文件系统软件还可被执行用于将第一文件类型的文件数据存储在所述第一区域类型的存储区中,和将第二文件类型的文件数据存储在所述第二区域类型的存储区中。
13.如权利要求12所述的系统,其中,所述第一文件类型包括视频数据文件,并且所述第二文件类型包括音频数据文件。
14.如权利要求13所述的系统,其中,所述第一逻辑存储块大小大于所述第二逻辑存储块大小。
15.如权利要求12所述的系统,其中,所述文件系统软件可被执行用于生成与所述数据存储设备的存储区对应的孔图,其中所述孔图包括表示一个区域属于所述第一或者第二区域类型的数据。
16.如权利要求15所述的系统,其中,通过所述文件系统软件的执行而生成的所述孔图被存储在所述数据存储设备上接近卷的起始部分处。
17.如权利要求15所述的系统,其中,所述孔图包括表示被映射到所述孔图中的存储设备的存储区的使用程度的数据。
18.如权利要求12所述的系统,其中,所述文件系统软件可被执行用于使用文件的文件名来识别文件的文件类型。
19.如权利要求12所述的系统,其中,所述文件系统软件可被执行用以使用嵌入的文件信息来识别文件的文件类型。
20.一种数据存储设备,包括:
多个大小相等的存储区;
孔图,其具有标识与所述多个大小相等的存储区中的每一个相关联的逻辑存储块大小的数据,其中所述多个大小相等的存储区中的至少两个具有不同的逻辑存储块大小。
21.如权利要求20所述的数据存储设备,其中,与所述多个大小相等的存储区中的给定存储区相关联的逻辑存储块大小取决于存储在该给定存储区中的数据的文件类型。
22.一种数据存储设备,包括:
可由所述处理器执行用于在所述数据存储设备上组织文件的文件系统软件;
存储第一文件类型的数据并具有第一逻辑存储块大小的第一存储区;和
具有与所述第一逻辑存储块大小不同的第二逻辑存储块大小的第二存储区,其中第二文件类型的数据被保存在所述第二存储区中。
CNA2007101419101A 2006-08-25 2007-08-16 具有可变逻辑存储块大小的文件系统 Pending CN101131672A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/510,174 US7599972B2 (en) 2006-08-25 2006-08-25 File system having variable logical storage block size
US11/510,174 2006-08-25

Publications (1)

Publication Number Publication Date
CN101131672A true CN101131672A (zh) 2008-02-27

Family

ID=38778535

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101419101A Pending CN101131672A (zh) 2006-08-25 2007-08-16 具有可变逻辑存储块大小的文件系统

Country Status (6)

Country Link
US (1) US7599972B2 (zh)
EP (1) EP1895394B1 (zh)
JP (1) JP2008052730A (zh)
KR (1) KR20080018801A (zh)
CN (1) CN101131672A (zh)
CA (1) CA2596434C (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508902A (zh) * 2011-11-08 2012-06-20 西安电子科技大学 云存储系统中可变分块大小的块数据分块方法
CN103049299A (zh) * 2011-09-10 2013-04-17 微软公司 灵活的元数据组合
CN105612490A (zh) * 2013-10-02 2016-05-25 网络装置公司 用于分布式存储架构的盘区散列技术
CN103049299B (zh) * 2011-09-10 2016-11-30 微软技术许可有限责任公司 灵活的元数据组合
CN111159123A (zh) * 2019-12-30 2020-05-15 中国兵器装备集团自动化研究所 一种嵌入式可靠参数储存文件系统及方法

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4306365B2 (ja) * 2003-08-07 2009-07-29 ソニー株式会社 サーバ及びコンテンツ受信装置
US7970803B2 (en) * 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US7873683B2 (en) * 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US20080059510A1 (en) * 2006-08-31 2008-03-06 Daniel Cardamore Multimedia system framework having layer consolidating access to multiple media devices
US7908276B2 (en) * 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US8566503B2 (en) 2006-08-25 2013-10-22 Qnx Software Systems Limited Multimedia filesystem having unified representation of content on diverse multimedia devices
US20080147747A1 (en) * 2006-12-14 2008-06-19 Dan Cardamore Media system having synchronization with preemptive prioritization of synchronization order
JP2009009545A (ja) * 2007-01-31 2009-01-15 Hewlett-Packard Development Co Lp データ処理システム及び方法
US20140108888A1 (en) 2008-03-11 2014-04-17 Rod Brittner Error tolerant or streaming storage device
CN101809543A (zh) * 2007-03-10 2010-08-18 罗德·布里特尼尔 容错或流存储装置
JP2008250475A (ja) * 2007-03-29 2008-10-16 Brother Ind Ltd 情報処理装置、ネットワークシステム、およびプログラム
US8082385B2 (en) * 2008-05-02 2011-12-20 Sony Corporation Systematic memory shift for pre-segmented memory
US20090287748A1 (en) * 2008-05-19 2009-11-19 Ling Jun Wong Simplified data transfer using segmented memory
US20090292838A1 (en) * 2008-05-20 2009-11-26 Ling Jun Wong Simplified data transfer using intermediary
US8214404B2 (en) * 2008-07-11 2012-07-03 Avere Systems, Inc. Media aware distributed data layout
US9323681B2 (en) 2008-09-18 2016-04-26 Avere Systems, Inc. File storage system, cache appliance, and method
US20100082537A1 (en) * 2008-09-29 2010-04-01 Menahem Lasser File system for storage device which uses different cluster sizes
US8108646B2 (en) 2009-01-30 2012-01-31 Hitachi Ltd. Storage system and storage control method that compress and store data elements
CN103838525B (zh) * 2009-01-30 2017-08-08 株式会社日立制作所 存储系统
US9058338B2 (en) * 2011-10-26 2015-06-16 International Business Machines Corporation Storing a small file with a reduced storage and memory footprint
CN104516929B (zh) * 2013-09-27 2019-07-19 伊姆西公司 用于文件系统的方法和装置
JP2015184856A (ja) * 2014-03-24 2015-10-22 ソニー株式会社 メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。
US10552044B2 (en) * 2014-03-27 2020-02-04 Hitachi, Ltd. Storage apparatus, data processing method and storage system wherein compressed data is read in parallel, said data stored in buffer by size and read from said buffer, in order of when said data is stored in said buffer
JP6417695B2 (ja) 2014-03-31 2018-11-07 富士通株式会社 情報処理システム、情報処理システムの制御方法および情報処理装置の制御プログラム
BR112016024412B1 (pt) 2014-04-22 2022-10-18 Huawei Technologies Co., Ltd Método de gerenciamento de arquivos e sistema de arquivos
KR20150137661A (ko) * 2014-05-30 2015-12-09 성균관대학교산학협력단 블랙박스 장치를 위한 불휘발성 메모리의 단편화 방지 방법 및 장치
KR102249826B1 (ko) * 2015-01-06 2021-05-11 삼성전자주식회사 데이터 관리 방법 및 이를 수행하는 전자 장치
WO2017090071A1 (en) * 2015-11-27 2017-06-01 Hitachi, Ltd. Method and computer system for managing blocks
CN109669640B (zh) * 2018-12-24 2023-05-23 浙江大华技术股份有限公司 一种数据存储方法、装置、电子设备及介质
CN110147203B (zh) * 2019-05-16 2022-11-04 北京金山云网络技术有限公司 一种文件管理方法、装置、电子设备及存储介质

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2002A (en) * 1841-03-12 Tor and planter for plowing
US2005A (en) * 1841-03-16 Improvement in the manner of constructing molds for casting butt-hinges
US2007A (en) * 1841-03-16 Improvement in the mode of harvesting grain
JPS62186361A (ja) 1986-02-13 1987-08-14 Matsushita Electric Ind Co Ltd 情報検索装置
US4945475A (en) * 1986-10-30 1990-07-31 Apple Computer, Inc. Hierarchical file system to provide cataloging and retrieval of data
US4926317A (en) * 1987-07-24 1990-05-15 Convex Computer Corporation Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses
GB8829919D0 (en) 1988-12-22 1989-02-15 Int Computer Limited File system
US5187786A (en) * 1991-04-05 1993-02-16 Sun Microsystems, Inc. Method for apparatus for implementing a class hierarchy of objects in a hierarchical file system
JPH06139124A (ja) 1992-10-28 1994-05-20 Nec Software Ltd インバーテッドファイル方式データベース内不整合削除方式
US5454103A (en) 1993-02-01 1995-09-26 Lsc, Inc. Method and apparatus for file storage allocation for secondary storage using large and small file blocks
US5455944A (en) * 1993-03-16 1995-10-03 International Business Machines Corporation Method for managing logging and locking of page free space information in a transaction processing system
US5530849A (en) * 1993-08-16 1996-06-25 Cornell Research Foundation, Inc. Method of reading dynamic, hierarchical file system directories
JPH07175698A (ja) 1993-12-17 1995-07-14 Fujitsu Ltd ファイルシステム
US5726989A (en) * 1995-11-06 1998-03-10 Stellar One Corporation Method for ensuring synchronization of MPEG-1 data carried in an MPEG-2 transport stream
US5774715A (en) * 1996-03-27 1998-06-30 Sun Microsystems, Inc. File system level compression using holes
GB9606927D0 (en) * 1996-04-02 1996-06-05 Memory Corp Plc Data storage devices
JPH09288605A (ja) * 1996-04-19 1997-11-04 Matsushita Electric Ind Co Ltd ファイルアドレス変換装置
US5974425A (en) * 1996-12-17 1999-10-26 Oracle Corporation Method and apparatus for reapplying changes to a database
US5897661A (en) * 1997-02-25 1999-04-27 International Business Machines Corporation Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information
US6175900B1 (en) 1998-02-09 2001-01-16 Microsoft Corporation Hierarchical bitmap-based memory manager
US6058400A (en) * 1998-04-28 2000-05-02 Sun Microsystems, Inc. Highly available cluster coherent filesystem
US6845401B1 (en) * 1998-12-30 2005-01-18 Schneider Automation Inc. Embedded file system for a programmable logic controller
US6754696B1 (en) * 1999-03-25 2004-06-22 Micosoft Corporation Extended file system
US6606628B1 (en) * 2000-02-14 2003-08-12 Cisco Technology, Inc. File system for nonvolatile memory
US6591376B1 (en) * 2000-03-02 2003-07-08 Hewlett-Packard Development Company, L.P. Method and system for failsafe recovery and upgrade of an embedded operating system
US6856993B1 (en) 2000-03-30 2005-02-15 Microsoft Corporation Transactional file system
US6571259B1 (en) * 2000-09-26 2003-05-27 Emc Corporation Preallocation of file system cache blocks in a data storage system
US6754773B2 (en) 2001-01-29 2004-06-22 Snap Appliance, Inc. Data engine with metadata processor
US7047257B2 (en) * 2001-04-03 2006-05-16 Qnx Software Systems Computer file management system
US6748491B2 (en) * 2001-04-19 2004-06-08 International Business Machines Corporation Designing a cache using an LRU-LFU array
WO2003036384A2 (en) * 2001-10-22 2003-05-01 University Of Southern Extendable tracking by line auto-calibration
US7191185B2 (en) * 2001-10-30 2007-03-13 Goldman Sachs & Co. Systems and methods for facilitating access to documents via an entitlement rule
JP2003150416A (ja) * 2001-11-09 2003-05-23 Sony Corp ファイル管理装置及びファイル管理方法
JP4221959B2 (ja) * 2002-06-26 2009-02-12 日本ビクター株式会社 ブリッジファイルシステム、コンピュータシステム、ブリッジファイルシステムを用いたデータ管理方法及び記録媒体
US7139752B2 (en) 2003-05-30 2006-11-21 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, and providing multiple document views derived from different document tokenizations
US7181463B2 (en) * 2003-10-24 2007-02-20 Microsoft Corporation System and method for managing data using static lists
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7698495B2 (en) 2005-07-01 2010-04-13 QNZ Software Systems GmbH & Co. KG Computer system having logically ordered cache management
US7809777B2 (en) 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US7873683B2 (en) 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US20070005874A1 (en) 2005-07-01 2007-01-04 Dan Dodge File system storing transaction records in flash-like media
US7707480B2 (en) 2005-07-01 2010-04-27 Qnx Software Systems Gmbh & Co. Kg System employing data verification operations of differing computational costs
US7970803B2 (en) 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049299A (zh) * 2011-09-10 2013-04-17 微软公司 灵活的元数据组合
CN103049299B (zh) * 2011-09-10 2016-11-30 微软技术许可有限责任公司 灵活的元数据组合
CN102508902A (zh) * 2011-11-08 2012-06-20 西安电子科技大学 云存储系统中可变分块大小的块数据分块方法
CN105612490A (zh) * 2013-10-02 2016-05-25 网络装置公司 用于分布式存储架构的盘区散列技术
CN111159123A (zh) * 2019-12-30 2020-05-15 中国兵器装备集团自动化研究所 一种嵌入式可靠参数储存文件系统及方法
CN111159123B (zh) * 2019-12-30 2023-07-14 中国兵器装备集团自动化研究所 一种嵌入式可靠参数储存文件系统及方法

Also Published As

Publication number Publication date
CA2596434A1 (en) 2008-02-25
EP1895394B1 (en) 2018-05-30
KR20080018801A (ko) 2008-02-28
EP1895394A2 (en) 2008-03-05
JP2008052730A (ja) 2008-03-06
CA2596434C (en) 2012-07-24
US7599972B2 (en) 2009-10-06
EP1895394A3 (en) 2009-08-12
US20080052329A1 (en) 2008-02-28

Similar Documents

Publication Publication Date Title
CN101131672A (zh) 具有可变逻辑存储块大小的文件系统
US6678785B2 (en) Flash management system using only sequential write
US7698495B2 (en) Computer system having logically ordered cache management
US6941420B2 (en) Log-structure array
US8762622B2 (en) Enhanced MLC solid state device
US7681008B2 (en) Systems for managing file allocation table information
US8793466B2 (en) Efficient data object storage and retrieval
US7711892B2 (en) Flash memory allocation for improved performance and endurance
US8131969B2 (en) Updating system configuration information
KR102252419B1 (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
EP0891580B1 (en) Data storage devices
CN102693184B (zh) 处理具有非易失性存储器的系统的动态和静态数据
US5717886A (en) Semiconductor disk device and memory management method
US7987190B2 (en) Filesystem having a filename cache
US5765201A (en) Changing page size in storage media of computer system
US20060020745A1 (en) Fat analysis for optimized sequential cluster management
CN101714062A (zh) 改进的混合驱动器
KR20110117099A (ko) 메모리 장치에서 맵핑 어드레스 테이블을 유지관리하는 방법
US9507523B1 (en) Methods, devices and systems for variable size logical page management in a solid state drive
US20090132757A1 (en) Storage system for improving efficiency in accessing flash memory and method for the same
US20030046482A1 (en) Data management in flash memory
WO2008042594A1 (en) Managing file allocation table information
KR20220066402A (ko) 자가-적응형 웨어 레벨링 방법 및 알고리즘
Rizvi et al. A Reliable Storage Management Framework for Flash memory SSD based RAID Arrays

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication