[[email protected]:~]$ls -lhi
total 48K
3684713 -rw------- 1 root root 5.9K Jul 1 00:23 anaconda-ks.cfg
3684706 -rw-r--r-- 1 root root 20K Jul 1 00:23 install.log
3684707 -rw-r--r-- 1 root root 2.1K Jul 1 00:22 install.log.syslog
3684717 -rw-r--r-- 1 root root 20 Jul 11 13:29 oldboy.txt
第一列:inode索引节点编号:
第二列:文件类型及权限(共10个字符,一个字符为类型,后9个字符为文件权限):
第三列:硬连接个数:
第四列:文件或目录所属的用户(属组)
第五列:文件或目录所属的组:
第六列:文件或目录的大小:
第七、八、九列:文件或目录修改时间:
第十列:实际的文件名或目录名:
其中第二列:文件类型及权限:后9位,前三位是属主权限位,中间三位是属组权限位,后三位是其他权限位。
df -h 以人类可读的方式查看磁盘挂载信息,
-i 查看挂载的磁盘INODE使用情况
有关inode的小结:
1)磁盘分区格式化为ext4 文件系统后会生成一定数量的inode和block。、
2)inode是索引节点,作用是存放文件的属性信息以及作为文件的索引(指向文件的实体)
3)ext3/ext4文件系统的block存放的是文件的实际内容。
4)inode是一块存储空间,C6非启动分区inode默认大小256字节,C5是128字节。
5)inode是一串数字,不同的文件对应的inode(一串数字)在文件系统里是唯一的。
6)inode相同的文件,互为硬连接文件。
7)一个文件被创建后至少要占用一个inode和一个block。
8)如果一个文件很大,可能占有多个block,如果文件很小,至少占一个,并且剩余空间浪费了。
9)inode、block大小和总量查看:dumpe2fs /dev/sda3|egrep -i "block size|inode size"
dumpe2fs /dev/sda3|egrep -i "block count|inode count"
10)查看inode的总量和使用量命令df -i
11)如何生成及指定inode大小mkfs.ext4 -b 2048 -l 256 /dev/sdb
block是用来储存实际数据用的,列如:照片,视频等普通文件数据。
而inode就是用来储存这些数据属性信息的(也就是ls -l的结果),inode包含文件的属性信息包括文件大小、属主、归属的用户组,读写权限、文件类型、修改时间、还包含指向文件实体的指针功能(inode节点--block的对应关系)等,但是,inode唯独不包含文件名。
inode除了记录文件属性的信息之外,还会为每个文件进行信息索引。
实际问题:
如果向磁盘写入数据提示如下错误:No space left on device,通过 df -h 查看磁盘空间,发现没满,请问可能原因是什么?
解答:可能是inode数量被耗尽了。
a.df -i 查看是否耗尽inode数量
b.企业工作中邮件临时队列/var/spool/clientmquene 这里很容易被大量小文件占满导致No space left on device的错误。clientmquene目录只有安装了sendmail服务,才会有。
cenos5.8默认就会安装sendmail,centos6.6默认没有sendmail。
block有关知识:
1)磁盘读取数据是按block为单位读取的。
2)一个文件可能占有多个block,每读取一个block就会消耗一次磁盘I/O。
3)如果要提升磁盘IO性能,那么就要尽可能
4)一个block只能存放一个文件的内容,无论内大小。如果block 4K,那存放1K的文件,剩余3K就浪费了。
5)block并非越大越好,block太大对于小文件存放就会浪费磁盘空间,列如:1000K的文件,block为4K,占用250个block,block为1K,占1000个block,访问效率谁最高?消耗IO分别为250次和1000次。
6)大文件(大于16K)一般设置block大一点,小文件(小于1K)一般设置block小一点。
7)block太大列如4K,文件都是0.1K的,大量浪费磁盘空间。
8)block太小列如1K,文件都是1000K,消耗磁盘IO。
9)block的设置也是格式化分区的时候,mkfs.ext4 -b 2048 -l 256 /dev/sdb
10)文件较大时,block设置大一些会提升磁盘访问效率。
11)ext3/ext4 文件一般设置为4K。
企业生产有关Inode与Block面试题案列
1、一个100的磁盘分区,分别写入1K的文件或写入1M的文件,分别可以写多少?
block为4K的情况,1M的文件不会有磁盘浪费情况,所以文件数量大概为100/1=100个
对于小于0.1k的,inode会消耗的更快。默认分区的时候block数量是大于inode数量的。
每个小文件都会占用一个inode和block。所以最终文件的数量:就是inode数量
2、如果向磁盘写入数据提示如下错误:No space left on device,通过df -h 查看磁盘空间,发现没满,请问可能原因是什么?
解答:可能是inode被耗尽了。
a.df -i 查看是否耗尽了inode。
b.企业工作中邮件临时队列/var/spool/clientquene这里很容易被大量小文件占满导致No space left on device 的错误。clientmquene目录只有安装了sendmail服务,才会有,是sendmail邮件的临时队列。centos5.8默认就会装sendmail,centos6.6默认没有sendmail。