分类: LINUX
2011-03-14 16:03:49
Metadata (metacontent) is defined as data providing information about one or more aspects of the data, such as:
For example, a digital image may include metadata that describes how large the picture is, the color depth, the image resolution, when the image was created, and other data. A text document's metadata may contain information about how long the document is, who the author is, when the document was written, and a short summary of the document.
Metadata is data. As such, metadata can be stored and managed in a database, often called a registry or repository. However, it is impossible to identify metadata just by looking at it because a user would not know when data is metadata or just data.[1]
看到wiki的定义,元数据,就是一个描述一种或多种抽象数据的数据。在文件系统中,会有很多文件单元,现在的文件系统,通过抽象这些文件单元为一个个元数据,通过对元数据进行相应的组织实现了文件系统的基本原理。现在的新的文件系统中如brtfs或者ext4,都是对各种的操作数据进行相应的抽象,抽象为一个个元数据。在早期的ext2中,元数据还只是那些block 数据块,inode等结构是单独保存在group 的开头的,然后每个block 都有相应的Inode block 位图,这样在最初的比较小的文件系统中,相应的比较简单。但是现在的磁盘动辄就T计算的话,像ext2,一个系统所创建的文件数是一定的。这样远远达不到一些系统要求。所以比较新的文件系统,不光是抽象了data 作为元数据,相应的dir inode 等都是作为基本的元数据进行存储,这样可以动态的对文件或者文件夹进行相应的增长。然后会使用一些b-tree RB-TREE算法,对于文件系统的快照进行相应的保存,这样操作文件的过程,是对这些树进行相应的操作,增长或者减少,而不是之前的那种位图的形式,这样大大提高了文件系统的可扩展性。 本人觉得,文件系统的改进,最重要的是对于metadata的理解与组织,并不仅限于之前的小的那种磁盘的载体。 包括基于NAND 的UBIFS文件系统,文件系统的组织是一个个metadata并且运用一些树结构,而不是像JFFS2 那样,需要整体的扫描元数据之后,才能相应的创建文件的描述信息。