文件系统

今日内容

文件系统

文件是操作系统提供用户/应用程序操作硬盘的一种功能

应用程序

操作系统: 文件系统(文件)

计算机硬件

文件系统是操作系统内核中负责组织管理硬盘的程序,文件系统提供了文件这种功能

操作系统: 文件系统1 文件系统2 文件系统3

硬盘 分区1 分区2 分区3

linux中df 可以查看硬盘信息 disk filesystem

linux系统:文件系统格式 >>>日志文件系统

​ ext3

​ ext4(centos 6默认)

​ xfa(centos7 默认)

​ btrfa

windows系统:文件系统

​ FAT32

​ NTFS

linux常见文件系统有xfs、ext4 和 btrfs 文件系统,它们都是日志文件系统(其特点是文件系统将没提交的数据变化保存到日志文件,以便在系统崩溃或者掉电时恢复数据)

文件系统工作原理

文件系统如何工作呢?

文件是由两部分

- 1、文件的元信息,例如权限(rwx)、拥有者、群组、时间参数等。

- 2、文件的实际内容

文件系统通常会将这两部份的分别存放在不同的区块

- 1、文件的元信息放置到inode区块中

- 2、文件的实际内容则放置到data block区块中。

# 强调:每个inode 与block 都有自己的编号

另外,文件还有一个超级区块(superblock)会记录整个档案系统的整体信息,包括inode与block的总量、使用量、剩余量等。

补充说明:

# 硬盘的最小存取单位-》扇区
# 操作系统的最小存取单位-》block块

文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector),每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个扇区一个扇区地读取,这样效率太低,于是操作系统中的文件系统负责将磁盘的多扇区组织成一个个的block块,这样操作系统就可以一次性读取一个"块"(block),即一次性连续读取多个扇区。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

硬盘满了:

df -i 查看inode号

df -h 查看硬盘空间信息

总结文件系统的三种区块inode、block、superblock的意义如下:

#1、superblock:
记录此filesystem的整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统的格式与相关信息等;

#2、inode:
(1) 记录文件元信息,包括文件对应的一个或多个block块号码
(2) 一个文件被分配唯一一个inode

#3、block:
(1) 记录文件实际内容
(2) 一个文件过大时可能会被分配多个block快,即一个文件可能对应多个block块的号码,这些号码都存放在该文件的innode里

inode的大小

查看每个硬盘分区的inode总数和已经使用的数量,可以使用df -i 命令。
由于每个文件都必须有一个inode,因此有可能发生inode已经用光,但是硬盘还未存满的情况。这时,就无法在硬盘上创建新文件

用df -i查看了一下/data所在的分区的索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件。
解决方案1:删除/data/cache目录中的部分文件,释放出/data分区的一部分inode。

解决方案2 : 在/data备份好一些文件,然后删除这些文件,释放一些inode,然后创建一个文件夹/data/cache2。在cache2下挂载一个新分区: sda4 ,下次写数据需要写到新分区cache2目录下。

inode号码

每个inode都有一个号码,操作系统用inode号码来识别不同的文件。

这里值得重复一遍,Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:

首先,系统找到这个文件名对应的inode号码;
其次,通过inode号码,获取inode信息;
最后,根据inode信息,找到文件数据所在的block,读出数据。
使用ls -i命令,可以看到文件名对应的inode号码,例如:

ls -i demo.txt

硬链接和软链接

1、一种被称为硬链接(Hard Link)
【硬连接】:硬连接指通过索引节点号来进行连接。inode是可以对应多个文件名的

ln 原文件路径 目标文件路径 (都是指向inode)

2、另一种被称为软链接,即符号链接(Symbolic Link)
软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

ls -s 原文件路径 目标文件路径 (指向文件名)

1.从定义:linux系统中,链接有两种,一种被称为软链接,类似于快捷方式,存放指向原文件inode的信息,与原文件inode不同。一种是硬链接,与原文件有相同的inode,可以指向数据block。

2.创建方式:硬链接命令 ln [原文件] [目标文件],软链接命令ln –s [原文件] [目标文件]

3.创建对象:ln命令不能对目录创建硬链接,但是可以对目录创建软链接。因为软链接可以跨越文件系统,硬链接则不能。对目录和为客户创建的文件软链接经常用到。

4.删除软链接文件,对硬链接和原文件无影响。

5.删除文件硬链接,对原文件及软链接文件无影响

6.删除原文件,对硬链接读取数据无影响,软链接则失效。会出现红底白字状。

7.同时删除原文件和硬链接,原文件才会被真正删除

8.很多硬件设备中的快照原理,类似于硬链接原理
posted on   zhifwu  阅读(193)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示