什么是范围(以 FS 为单位)?

发布于 2024-09-27 18:31:42 字数 192 浏览 1 评论 0原文

我当时正在玩 Linux 的新文件系统 BTRFS,并且正在做一些关于它的研究。 BTRFS(如 Ext4)将范围实现为数据和元数据的分配单元。 所以我的理解是(如果我很疲惫请纠正我)范围是连续块的可变空间大小。 我的问题是...一个文件存储在一个范围还是多个范围...或者它们是否具有不同范围大小的组? 我不太确定它们如何映射到块......

谢谢!

I was playing with Linux's new FS, BTRFS and was doing some research about it. BTRFS like Ext4 implements extents as allocation unit for data and metadata.
So my understanding is (correct me if I'm worng) that extent is a variable space size of contignuos blocks.
My question is...is one file stored on one extent or multiple...or do they have groups of different extent sizes?
I'm not really sure how do they map to blocks...

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浴红衣 2024-10-04 18:31:42

extent 是连续块的可变空间大小

是的。

一个文件存储在一个或多个盘区上...或者它们是否具有不同盘区大小的组

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

来自 BTRFS wiki 术语表

范围

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

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


文件碎片

  • 显示文件中范围数以及数量的工具
    文件中的碎片。它通常是 e2fsprogs 的一部分
    大多数 Linux 发行版上的软件包。虽然最初开发用于
    ext2 文件系统,它也适用于 Btrfs(但是 并不是真的与
    压缩文件
    )。它使用FIEMAP ioctl。

例如,我的计算机上的 15 GB 文件有 22 个扩展区。 (较大的文件通常碎片较多。)

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

extent is a variable space size of contignuos blocks

Yes.

is one file stored on one extent or multiple...or do they have groups of different extent sizes

It depends on how fragmented the file is.

From the BTRFS wiki's glossary:

extent

  • Contiguous sequence of bytes on disk that holds file data.

  • A file stored on disk with 3 extents means that it consists of three fragments of contiguous bytes. See filefrag. A file in one extent would mean it is not fragmented.


filefrag

  • A tool to show the number of extents in a file, and hence the amount
    of fragmentation in the file. It is usually part of the e2fsprogs
    package on most Linux distributions. While initially developed for
    the ext2 filesystem, it works on Btrfs as well (but not really with
    compressed files
    ). It uses the FIEMAP ioctl.

For example, a 15 GB file on my machine had 22 extents. (Larger files are generally more fragmented.)

An extent is at least 4096 bytes (1 block).

我纯我任性 2024-10-04 18:31:42

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

Yes, an extent is a contiguous group of blocks. The allocation size (4KB etc.) determines just how large a single extent can be. So two things can cause a file to have multiple extents: 1) The file is larger than the largest contiguous free space and 2) The file is larger than the largest possible extent size supported by the allocation size.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文