Filesystems
如何更改 ext4 文件系統中的擴展區大小?
正如您在此處所讀到的,ext4 文件系統具有將塊分組為擴展的擴展功能。它們每個都可以有多達 128MiB 的連續空間。在
e4defrag
中,有類似於以下的行:[325842/327069]/file: 100% extents: 100 -> 10 [ OK ]
文件大小約為 150MiB。所以根據wiki頁面,應該有2個extent而不是10個。
- 有誰知道為什麼範圍是 15MiB 而不是 128MiB?
- 是否有可以檢查確切範圍大小的工具?
- 如何更改大小以使其為 128MiB?
我想我知道它是如何工作的。
我將另一個磁碟連接到我的機器,因為它有一個幾乎空的大分區 ~458G 。我通過以下方式檢查了它的可用空間
e2freefrag
:HISTOGRAM OF FREE EXTENT SIZES: Extent Size Range : Free extents Free Blocks Percent 64M... 128M- : 6 146233 0.12% 128M... 256M- : 5 322555 0.27% 256M... 512M- : 3 263897 0.22% 512M... 1024M- : 6 1159100 0.98% 1G... 2G- : 228 116312183 98.40%
它只是一個連續的空閒塊。所以因為分區幾乎是空的,所以有很多可用空間,你有 228 個 1-2G 的塊。
我在分區裡面放了一個2,5G的大文件,上面的表格稍微變了一點:
HISTOGRAM OF FREE EXTENT SIZES: Extent Size Range : Free extents Free Blocks Percent 2M... 4M- : 5 5114 0.00% 64M... 128M- : 7 170777 0.14% 128M... 256M- : 1 64511 0.05% 256M... 512M- : 4 361579 0.31% 512M... 1024M- : 5 930749 0.79% 1G... 2G- : 227 116025495 98.16%
這並沒有說明任何有關分配的塊範圍的資訊,但它給了我一些想法。當我查看 中的文件時
e4defrag
,有這樣的內容:# e4defrag -cv file <File> [ext 1]: start 34816: logical 0: len 32768 [ext 2]: start 67584: logical 32768: len 30720 [ext 3]: start 100352: logical 63488: len 32768 [ext 4]: start 133120: logical 96256: len 30720 [ext 5]: start 165888: logical 126976: len 32768 [ext 6]: start 198656: logical 159744: len 30720 [ext 7]: start 231424: logical 190464: len 32768 [ext 8]: start 264192: logical 223232: len 30720 [ext 9]: start 296960: logical 253952: len 32768 [ext 10]: start 329728: logical 286720: len 32768 [ext 11]: start 362496: logical 319488: len 32768 [ext 12]: start 395264: logical 352256: len 32768 [ext 13]: start 428032: logical 385024: len 32768 [ext 14]: start 460800: logical 417792: len 32768 [ext 15]: start 493568: logical 450560: len 30720 [ext 16]: start 557056: logical 481280: len 32768 [ext 17]: start 589824: logical 514048: len 32768 [ext 18]: start 622592: logical 546816: len 32768 [ext 19]: start 655360: logical 579584: len 32768 [ext 20]: start 688128: logical 612352: len 32768 [ext 21]: start 720896: logical 645120: len 622
數字
32768
表示塊 (4K),等於 128MiB。其中一些塊較少,我不知道為什麼,因為文件系統是空的,我認為所有的範圍都應該有 32768 個塊。無論如何,我檢查了主分區以查看其可用空間,並且是這樣的:
HISTOGRAM OF FREE EXTENT SIZES: Extent Size Range : Free extents Free Blocks Percent 4K... 8K- : 3955 3955 0.06% 8K... 16K- : 3495 8194 0.13% 16K... 32K- : 2601 13165 0.20% 32K... 64K- : 2622 28991 0.45% 64K... 128K- : 2565 58267 0.90% 128K... 256K- : 1576 71371 1.11% 256K... 512K- : 1331 118346 1.83% 512K... 1024K- : 1058 190532 2.95% 1M... 2M- : 1202 444210 6.89% 2M... 4M- : 1211 884489 13.71% 4M... 8M- : 1249 1803998 27.97% 8M... 16M- : 622 1643226 25.48% 16M... 32M- : 198 1024999 15.89% 32M... 64M- : 16 163082 2.53%
如您所見,沒有可以提供 128M(甚至更多)空間的免費連續塊,這就是為什麼他們在 wiki 上寫到您可以擁有“高達”128M 的範圍。
我不確定為什麼有問題的文件有 10 個擴展區,因為仍有 16 個塊至少為 32M。