-linux文件系统结构

一年好景君须记,最是橙黄橘绿时。这篇文章主要讲述-linux文件系统结构相关的知识,希望能为你提供帮助。
1.
ls -i  查看文件inode号或者df -i也可以查看

[root@xuegod63 ~]# df -i
文件系统Inode 已用(I)可用(I) 已用(I)% 挂载点
devtmpfs2467364012463351% /dev
tmpfs25088712508861% /dev/shm
tmpfs2508875622503251% /run
tmpfs250887172508701% /sys/fs/cgroup
/dev/sda12621440069187 261452131% /
/dev/sda35242883005239881% /boot
tmpfs25088752508821% /run/user/0

2.
  inode用完了,文件就不能创建了
inode设置大一些:可以创建多个文件。占用空间比较大
inode设置小一些:可以创建很少文件。占用空间比较小
block块,在windows中称为簇。设置大,效率高,利用率低;设置小,效率低,利用率高。
3.
linux下链接分两种硬链接(hard  Link),另一种软链接,即符号链接( Symbolic  Link),默认情况下,ln命令产生硬链接。
硬链接:指通过索引节点号来进行链接。inode是可以对应多个文件名的。在Linux中,多个文件名可以指向同一个索引节点。一般这种链接为硬链接。硬链接的作用是一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要文件,防止误删的功能
只删除一个链接并不影响节点本身和其它的链接,只有当最后一个链接被删除后,文件的数据块及目录才会被释放。也就是说,文件真正删除的条件是与之关联的所有硬链接文件均被删除。
软链接:类似于windows的快捷方式,它实际是一个特殊的文件。在符号链接中,文件实际是一个文本文件,其中包含另一个文件  的位置信息。
4.
创建硬链接,硬链接不能对目录创建,无法跨分区创建
【-linux文件系统结构】ln  源文件  目标文件
5.
软链接可以链接到目录和跨分区 ,但这时,源文件路径必须写成绝对路径
创建软链接
ln -s 源文件 软链接的名字
6.
注意:
移动或者重命名文件的时候,只是改变文件名,inode号不变
打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。因此通常来说,系统无法从inode号码得知文件名。
7.
互动:为什么每次修改完服务器配置文件后,都需要重新加载一下配置文件?

因为vim每次修改完后,inode号都会变
8.
解决磁盘有空间但创建不了文件

实战场景:在一台配置较低的Linux 服务器(内存、硬盘比较小)的/data 分区内创建文件时,系统

提示磁盘空间不足,用df -h 命令查看了一下磁盘使用情况,发现/data 分区只使用了 80%,还有1.9G

的剩余空间,但是无法创建新的文件。当时使用的是root 用户。服务器没有被黑。



[root@xuegod63 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 10G 8.0G 1.9G 80% /

常识: 只要权限够,磁盘上有空间一定可以创建文件。 这个是错的。

排查:
[root@xuegod63 ~]# df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda3 5242880 5242880 0 100% /

#后来用 df -i 查看了一下/data 所在的分区的索引节点(inode),发现已经用满(IUsed=100%),导

致系统无法创建新目录和文件。

查找原因:

  /data/cache 目录中存在数量非常多的小字节缓存文件,占用的Block 不多,但是占用了大量

的 inode。

解决方案1:删除/data/cache目录中的部分文件,释放出/data 分区的一部分inode。

解决方案2 : 在/data 备份好一些文件,然后删除这些文件,释放一些inode,然后创建一个文件

夹/data/cache2。在 cache2 下挂载一个新分区: sda4 ,下次写数据需要写到新分区 cache2 目录下。

inode 分区完后,可以增加吗? 不可以。 inode 总数是在格式化时定下来。

    推荐阅读