首页 > 代码库 > 文件的元数据

文件的元数据

文件的元数据

1、 什么是元数据
任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元
数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据
块的分布信息(inode...)等等。在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。

2、 元数据管理方式
元数据管理有两种方式。集中式管理和分布式管理。集中式管理是指在系统中有一个节点专门司职元数据管理,所有元数据都存储在该节点的存储设备上。所有客户端对文件的请求前,都要先对该元数据管理器请求元数据。分布式管理是指将元数据存放在系统的任意节点并且能动态的迁移。对元数据管理的职责也分布到各个不同的节点上。大多数集群文件系统都采用集中式的元数据管理。因为集中式管理实现简单,一致性维护容易,在一定的操作频繁度内可以提供较满意的性能。缺点是单一失效点问题,若该服务器失效,整个系统将无法正常工作。而且,当对元数据的操作过于频繁时,集中的元数据管理成为整个系统的性能瓶颈。
分布式元数据管理的好处是解决了集中式管理的单一失效点问题, 而且性能不会随着操作频繁而出现瓶颈。其缺点是,实现复杂,一致性维护复杂,对性能有一定影响。

3、如何查看元数据信息
[root@foundation0 zzz]# stat aaa/
File: ‘aaa/’
Size: 6 Blocks: 0 IO Block: 4096 directory
Device: 801h/2049d Inode: 1695408223 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-09-26 00:03:47.854420966 +0800
Modify: 2016-09-26 00:03:47.854420966 +0800
Change: 2016-09-26 00:03:47.854420966 +0800
Birth: -

4、stat格式
touch [选项]... 文件名...
例子:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
[root@foundation0 zzz]# touch -t 201707250000.00 zlm
[root@foundation0 zzz]# stat zlm
File: ‘zlm’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 1076872353 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2017-07-25 00:00:00.000000000 +0800
Modify: 2017-07-25 00:00:00.000000000 +0800
Change: 2016-09-26 00:21:33.015490180 +0800
Birth: -

5、stat参数
-a 或--time=atime或--time=access或--time=use  只更改存取时间。
-c 或--no-create  不建立任何文档。
-d  使用指定的日期时间,而非现在的时间。
-f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify  只更改变动时间。
-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t  使用指定的日期时间,而非现在的时间。

文件的元数据