一、什么是索引节点(index node)
是磁盘上的一块【存储空间】
一个inode大小256字节。
2、索引节点作用:
存储文件的属性信息(大小、用户、组、修改时间 ls-l的信息都在里面放着)、指向文件真正实体的位置信息(指针)。
3、inode是怎么产生的?
1)买回来磁盘。
(1)分区(打隔断),c,d,e/ sda1/sda2
(2)格式化(装修),创建文件系统。
什么是文件系统?组织和存储数据的一种机制。(装修风格)
(3)挂载(门和窗户)
(4)使用(拎包入住)
2)inode在磁盘格式化,创建【文件系统】的时候产生的。
Linux文件系统ext4,xfs。Windows文件系统,ntfs,fat32
1、inode特点:
1)是文件的唯一标识(身份证)
2)大小256字节
3)存放文件的属性信息及指向文件所在位置信息
4)创建文件的时候就分配inode
5)一个文件有且只有一个inode(分区或一个磁盘内)
6)多个文件有相同的inode,是同一个文件的不同文件名
2、block特点
1)磁盘读取数据是按block为单位读取的
2)每读取一个block就会消耗一次磁盘I/O
3)若文件比较大,一个文件可能占用多个block
4)若文件比较小,一个block剩余空间会被浪费,无论内容有多小
二、Linux系统读取文件的原理
创建文件。/ql.log
1、文件名放到/下block里
2、分配inode,放文件属性
3、分配block,放文件内容(多个block)
4、企业生产案例:出现No space left on device(没有空间剩余在设备上)问题的企业案例
Windows通常是block满了
磁盘满有两种情况
1、inode满了
2、block满了
(1)任意之一不够用空间就会提示No space left on device
(2)比如:一个大文件30G,属性占一个inode,100万个block
(3)磁盘存储的都是大文件,一定是block不够用。
(4)磁盘存储的都是小文件(低于block大小的文件),一定是inode不够用。
3、分区在格式化的时候inode多,还是block多?为什么?
block多。
三、block介绍
1、存放文件实体内容的空间
2、默认大小1,2,4K
3、一个block只能被一个文件占有,不能放两个文件
如果文件大小0.1K,也会占一个block。剩余3.9k浪费了
4、block是文件系统存储大小的基本单位
如果文件较大,block就是大点好,读数据是按block读取
四、和磁盘block,inode有关的命令
1、查看文件inode
[root@qulan ~]# ls -li
总用量 20
33574979 -rw-------. 1 root root 1437 3月 17 15:05 anaconda-ks.cfg
26265 drwxr-xr-x. 2 root root 6 3月 18 15:16 qulan_dir
33622563 -rw-r--r--. 1 root root 90 3月 20 09:48 qulan.txt
2、查看磁盘和分区的inode
[root@qulan ~]# df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/mapper/centos-root 8910848 64937 8845911 1% /
devtmpfs 500498 342 500156 1% /dev
3、查看磁盘和分区的大小(block)
[root@qulan ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.8G 16G 11% /
devtmpfs 2.0G 0 2.0G 0% /dev
五、什么情况会导致binode满?
1、小文件特别多的时候。
2、多数情况下是基于日常Linux定时任务crond配置不当导致的。
六、链接
1、链接分为两种,一种为硬链接(Hard Link),另一种为软链接(Sodt Link)
2、命令是ln
(1)如果使用ln -s创建链接则为软链接,软链接文件的文件类型为l(字母L)
(2)创建硬链接的语法:“ln 原始文件 目标文件”
(3)创建软连接的语法:“ln -s 原始文件 目标文件”(目标文件不能事先存在)
3、什么是硬链接?
(1)具有【相同索引节点号】的文件,互相称之为硬链接文件。
(2)具有【相同索引节点号】的文件,指向同一个文件实体。
4、硬链接文件作用
用于备份,防止误删文件。
5、找一找互为硬链接的文件。
. 和当前目录互为硬链接文件,点和当前目录是一个目录?可以
..和上一级目录互为硬链接文件。
特征:索引节点相同
6、硬链接实践
ln 源文件 硬链接文件(不能事先存在)
[root@qulan ~]# mkdir /ql -p
[root@qulan ~]# touch /ql/ql_file
[root@qulan ~]# cd /ql
[root@qulan ql]# ln ql_file qlfile_hard_link
[root@qulan ql]# ls -li
总用量 0
51064416 -rw-r--r--. 2 root root 0 3月 31 16:12 ql_file
51064416 -rw-r--r--. 2 root root 0 3月 31 16:12 qlfile_hard_link
[root@qulan ql]# ln ql_file qlfile_hard_link2
[root@qulan ql]# ls -li
总用量 0
51064416 -rw-r--r--. 3 root root 0 3月 31 16:12 ql_file
51064416 -rw-r--r--. 3 root root 0 3月 31 16:12 qlfile_hard_link
51064416 -rw-r--r--. 3 root root 0 3月 31 16:12 qlfile_hard_link2
注:
1、只要有一个硬链接数,数据就不会丢
2、把全部的硬链接删除,数据就会丢失
如果源文件被删除了,反向链接就能恢复
[root@qulan ql]# ln qlfile_hard_link ql_file
[root@qulan ql]# cat ql_file
i am linux
7、软链接
(1)什么是软链接?
软链接就是快捷方式,指向源文件的位置
(2)为什么需要软链接?作用
复杂的路径简单化
[root@qulan ql]# ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 ~/ql
[root@qulan ql]# ls -l ~/ql
lrwxrwxrwx. 1 root root 41 3月 31 16:29 /root/ql -> /etc/sysconfig/network-scripts/ifcfg-eth0
[root@qulan ql]# ls -l /etc/sysconfig/network-scripts/ifcfg-eth0
-rw-r--r--. 1 root root 308 3月 17 15:04 /etc/sysconfig/network-scripts/ifcfg-eth0
8、企业面试:请描述Linux中软链接和硬链接的区别
(1)答分类:在Linux中,链接分为硬链接和软链接。
(2)答概念:硬链接文件与源文件的inode节点号相同,而软链接文件相当于Windows下面的快捷方式(inode与源文件不同)
(3)答创建:默认不带参数的情况下,ln命令创建的是硬链接,带-s参数的ln命令创建的是软链接。
(4)答特点:
1)不能对目录创建硬链接,但可以创建软链接。
2)软链接可以跨文件系统,硬链接不可以跨文件系统。(不能跨越分区,磁盘)
(5)答案例:硬链接可以用来对重要文件做快照防止误删。软链接:例如安装软件用nginx-1.10作为目录,安装后设置软链接为nginx,保持了版本号标识,又方便使用,以及后续软件升级
七、Linux系统文件删除原理
1、i_link=0,解释硬链接数为0,所有的硬链接都删除文件就被删除了。
2、i_count=0,进程引用计数为0,没有被进程调用(使用)的文件。
3、原理见图
真实企业级磁盘满故障的案例仅给出地址,读者可以打开地址观看。
Web服务器磁盘满故障深入解析,地址为http://oldboy.blog.51cto.com/2561410/612351
八、du -sh /*
查看根目录下的内容大小