加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

什么是文件系统

发布时间:2023-06-05 13:06:11 所属栏目:教程 来源:
导读:计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数
计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。在写入新数据之前,用户不必关心硬盘上的那个块地址没有被使用,硬盘上的存储空间管理(分配和释放)功能由文件系统自动完成,用户只需要记住数据被写入到了哪个文件中。

一句话总结,文件系统是一套实现了数据的存储、分级组织、访问和获取等操作的抽象数据类型。

什么是 UnionFS

联合文件系统(Union File System):2004 年由纽约州立大学开发,它可以把多个目录内容联合挂载到同一个目录下,而目录的物理位置是分开的。UnionFS可以把只读和可读写文件系统合并在一起,具有写时复制功能,允许只读文件系统的修改可以保存到可写文件系统当中。

目前有多种文件系统可以被当作联合文件系统,CentOS8 使用的是 overlay2,下面,我们尝试着挂载一个 overlay2 文件系统。

在 /root/test 目录下,建立一个unionfs 目录,它的目录结构如下(a,b,c是文件,其他都是目录):

unionfs
├── lower1
│   ├── a
│   └── b
├── lower2
│   └── a
├── merged
├── upper
│   └── c
└── work
进入 unionfs 目录,使用 mount 命令挂载:

cd unionfs
mount -t overlay overlay -o lowerdir=lower1:lower2,upperdir=upper,workdir=work merged
如上,挂载了一个名为 overlay 的 overlay2 类型的文件系统,挂载点为 merged 目录。

查看 merged 目录的层次:

[root@centos8 unionfs]# tree merged
merged
├── a
├── b
└── c
查看这些文件的内容:

[root@centos8 unionfs]# for i in `ls merged`;do echo $i: `cat merged/$i`;done
a: in lower1
b: in lower1
c: in upper
可以看到,从 merged 视角,位于 lower2 的 a 文件被 lower1 的 a 文件覆盖;b 文件位于 lower1,c 文件位于 upper,符合从高到低 upper->lower1->lower2 的层次结构。

我们按照如下操作来验证 unionfs 的分层特性:

[root@centos8 unionfs]# touch merged/d
[root@centos8 unionfs]# ls merged/
a  b  c  d
[root@centos8 unionfs]# ls upper/
c  d
[root@centos8 unionfs]# ls lower1
a  b
[root@centos8 unionfs]# ls lower2
a
可以看到对 merged 目录的改动同步至 upper 目录中,并不会影响到 lower 目录。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章