我正在玩Linux的新FS,BTRFS,并正在做一些关于它的研究。像Ext4这样的BTRFS将范围实现为数据和元数据的分配单元。 所以我的理解是(纠正我,如果我知道),范围是contignuos块的可变空间大小。 我的问题是......是一个文件存储在一个范围或多个...或者他们是否有不同范围大小的组? 我不确定他们如何映射到块...
谢谢!
答案 0 :(得分:1)
范围是contignuos块的可变空间大小
是
是存储在一个范围或多个范围内的一个文件......或者它们是否具有不同范围大小的组
这取决于文件的碎片程度。
<强>程度强>
磁盘上连续保存文件数据的字节序列。
存储在具有3个扩展区的磁盘上的文件意味着它由三个连续字节的片段组成。请参阅 filefrag 。一个范围内的文件意味着它没有碎片化。
<强> filefrag 强>
- 一种工具,用于显示文件中的区数,以及数量 文件中的碎片。它通常是e2fsprogs的一部分 在大多数Linux发行版上打包。虽然最初开发的 ext2文件系统,它也适用于Btrfs(但是not really with compressed files)。它使用 FIEMAP ioctl。
例如,我机器上的15 GB文件有22个范围。 (较大的文件通常更加分散。)
范围至少为4096字节(1个块)。
答案 1 :(得分:0)
是的,范围是连续的块组。分配大小(4KB等)确定单个范围的大小。因此,有两件事可能导致文件具有多个扩展区:1)文件大于最大的连续可用空间; 2)文件大于分配大小支持的最大可能扩展区大小。