(day5)Linux Inode及链接知识

本文详细介绍了Linux系统中索引节点(inode)、block的作用与特性,讨论了文件系统如何存储文件属性和内容,以及文件删除时的原理。还重点讲解了硬链接和软链接的区别,以及磁盘空间不足时的处理方式。
摘要由CSDN通过智能技术生成

一、什么是索引节点(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 /*

查看根目录下的内容大小


 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值