文件和块存储存储的元数据是什么?我假设文件存储具有与文件系统的分层性质有关的元数据,例如哪些文件,哪些目录,目录中的文件/子目录以及其他元数据,例如创建日期/权限等。
现在在块存储中,从用户的角度来看,我们看到文件系统是分层排列的。但是块存储是否提供了这种内置功能?我认为块存储不知道文件系统的分层性质。它可以将文件分成块并将其存储,在检索时,它可以组合并发送单个文件。所以,我的问题是:
- 谁在块存储中准确维护分层信息?
- 谁维护块存储中的创建日期/上次更新/权限等元数据?
文件和块存储存储的元数据是什么?我假设文件存储具有与文件系统的分层性质有关的元数据,例如哪些文件,哪些目录,目录中的文件/子目录以及其他元数据,例如创建日期/权限等。
现在在块存储中,从用户的角度来看,我们看到文件系统是分层排列的。但是块存储是否提供了这种内置功能?我认为块存储不知道文件系统的分层性质。它可以将文件分成块并将其存储,在检索时,它可以组合并发送单个文件。所以,我的问题是:
顾名思义,块存储只能存储固定大小的块,通常为 512 字节。每个都有自己的地址,这是特定于硬件的。您只能读取或写入整个块。
我们看到的所有层次结构和相应的元数据都由块级顶部的文件系统表示。数据如何分布在块上的方式是文件系统特定的。
一些早期版本的文件系统甚至没有任何目录并且具有扁平结构,就像今天的对象存储一样。
最容易理解的文件系统之一可能是Microsoft 的早期版本 FAT
看看下面的图表。您所指的元数据仅存在于灰色框及上方。在蓝色框和下面的所有数据(一般而言)被认为只是一个没有特定含义或定义的通用字节序列。
编辑:该图取自“存储堆栈”的快速谷歌,来自https://www.iguazio.com/blog/wanted-a-faster-storage-stack/