什么是范围(在FS中)?

时间:2010-10-15 12:30:52

标签: filesystems terminology

我正在玩Linux的新FS,BTRFS,并正在做一些关于它的研究。像Ext4这样的BTRFS将范围实现为数据和元数据的分配单元。 所以我的理解是(纠正我,如果我知道),范围是contignuos块的可变空间大小。 我的问题是......是一个文件存储在一个范围或多个...或者他们是否有不同范围大小的组? 我不确定他们如何映射到块...

谢谢!

2 个答案:

答案 0 :(得分:1)

  

范围是contignuos块的可变空间大小

  

是存储在一个范围或多个范围内的一个文件......或者它们是否具有不同范围大小的组

这取决于文件的碎片程度。

来自BTRFS wiki's glossary

  

<强>程度

     
      
  • 磁盘上连续保存文件数据的字节序列。

  •   
  • 存储在具有3个扩展区的磁盘上的文件意味着它由三个连续字节的片段组成。请参阅 filefrag 。一个范围内的文件意味着它没有碎片化。

  •   
  

<强> filefrag

     
      
  • 一种工具,用于显示文件中的区数,以及数量   文件中的碎片。它通常是e2fsprogs的一部分   在大多数Linux发行版上打包。虽然最初开发的   ext2文件系统,它也适用于Btrfs(但是not really with compressed files)。它使用 FIEMAP ioctl。
  •   

例如,我机器上的15 GB文件有22个范围。 (较大的文件通常更加分散。)

范围至少为4096字节(1个块)。

答案 1 :(得分:0)

是的,范围是连续的块组。分配大小(4KB等)确定单个范围的大小。因此,有两件事可能导致文件具有多个扩展区:1)文件大于最大的连续可用空间; 2)文件大于分配大小支持的最大可能扩展区大小。