共计 2086 个字符,预计需要花费 6 分钟才能阅读完成。
文件及目录熟属性
使用ls –li可以查看文件的基本属性信息
|
|
Inode概述
硬盘如果要使用就要先分区,然后格式化,创建文件系统,最后挂载。
Inodez中文意思是索引节点(Inodex node),在每个Linux存储设备或春初设备的分区(存储设备可以是硬盘、软盘、U盘,)被格式化成ext4文件系统后,一般都由两部分:第一部分是Inode,第二部分是Block(Block有很多个)。
Block是用来存放实际数据的,例如:文件,视频,照片,MP3等,Inode是用来存放数据的熟悉信息的,包含文件大小,属主,属猪,权限文件类型等,但是唯独不包含文件名。
Inode除了记录文件的属性信息,还会为每个文件进行信息索引,系统根据指令,可以通过Inode的值最快的找到对应的文件实体,所以就有了Inode值。
例如:一本书,这本书相当于一块磁盘或者分区,首页的目录索引相当于Inode,每一页相当于一个block。
CentOS 5 默认Inode大小128字节,Centos 6 默认 256。
- 查看Inode大小
|
|
- 查看Inode使用情况
|
|
- 查看BLOCK大小
|
|
Inode小结
- 磁盘分区格式化ext4文件系统后会产生一定数量的inode和blog
- Inode是索引节点,作用是存放文件的属性以及作为文件的索引(指向文件的实体)
- ext3/ext4文件系统的block存放的是文件实际内容
- Inode是一块存储空间,C6非启动分区inode默认大小256字节,C5是128字节
- Inode是一串数字,不同的文件对应的Inode在文件系统里是唯一的
- Inode相同的文件互为硬连接文件
- 一个文件至少要占用一个Inode和一个block
- block的大小一般有,1K,2K,4K几种,其中引导分区等为1K,普通分区为4K(C6)
- 如果一个文件很大,可能占多个blogk,如果文件很小,至少占一个,并且剩余空间浪费了,
- Inode大小和总量查看
|
|
- 查看inode的总量用df -i
- 如何生成及指定inode大小mkfs.ext4 –b 2048 –I 256 /dev/sda
Block知识
- 磁盘读取数据是按照block读取的
- 一个文件可能占用多个block,每读取一个block就会消耗一次磁盘I/O
- 如果要提升磁盘I/O,那么就要尽可能一次性读取数据尽量的多。
- 一个block只能存放一个文件的内容,无论内容有多少。如果block4K,那存放1K的文件,剩余3K就浪费了。
- Block并不是越大越好,Block太大对于小文件存放就会浪费磁盘空间,例如:1000K的文件,block为4K,占用250个block,block为1K,占1000个block,访问效率谁更高?消耗IO分别为250次和1000次;
- 当前的生产环境默认为4K,特殊业务,如视频
- 当文件较大时,block设置大一些会提升访问效率,ext3/ext4一般设置为4K生产环境:block如何配置?消耗IO分别是250次和1000次
- 大文件(大于16K),一般设置block大一些,小文件(小于1K)一般设置block小一点。
- Block太大例如4K,文件都是0.1K的,大量浪费磁盘空间。
- Block的设置是在格式化分区的时候mkfs.ext4 –b 2048 –I 256 /dev/sda
- 文件较大时,Block设置大一些会提升磁盘访问效率,ext3/ext4默认一般设置为4K。
当前的生产环境一般设置为4K,特殊业务,如视频、软件可以加大。如果是大文件的业务,block尽量设置大一点。如果是小文件的业务,block尽量设置小一点;实际:ext2/ext3/ext4最大只能4K,而工作中几乎就没有小于4K的文件,所以,ext3,ext4文件系统Block都分配4K,默认也是4K。