ext4とbtrfsファイルシステムのブロックサイズを決定するには?

ext4とbtrfsファイルシステムのブロックサイズを決定するには?

私はext4とbtrfsフォーマットドライブのクォータを知らせるコマンドを探しています。

背景:私はユーザーが個々のファイルを復元できるバックアップシステムを使用しています。システムはrsyncのみを使用し、サーバー側ソフトウェアは使用せず、バックアップは解凍されます。その結果、約3.6TBのファイルができましたが、そのほとんどは非常に小さいです。

私のデータセットの場合、LVMのbtrfsボリュームのストレージ効率は、通常の既存のext4ボリュームよりはるかに低いようです。これは最小ファイルサイズとブロックサイズに関連していると思われますが、どうなるかは不明です。比較のためにこれらの寸法を得るために、btrfs Wikiは「ページサイズ」を使用していると述べていますが、その数値を取得する方法に関する情報は見つかりませんでした。

ベストアンサー1

すべてのファイルに割り当てることができる最小ブロックであるデータブロック割り当てサイズを調べる必要があります。大容量ファイルは複数のブロックで構成されます。そして、大きなファイル(またはすべての小さなファイル)の終わりには、常に最後のブロックが完全に埋められていないため、使用されない「無駄」があります。

私が知る限り、広く使用されているすべてのLinuxファイルシステムはデフォルトで4Kブロックを使用します。これは、これが最新のCPUのデフォルトページサイズであるためです。これは、メモリマップされたファイルとディスクブロック間に単純なマッピングがあることを意味します。 BTRFSとExt4(ほとんどのシステムでは4K)のデフォルトページサイズを知っています。

ext4では、次のようにtune2fsブロックサイズを確認してください/dev/sda1

[root@centos8 ~]# tune2fs -l /dev/sda1 |grep "^Block size:"
Block size:               4096
[root@centos8 ~]#

btrfsで次のコマンドを使用してブロックサイズを確認します(独自/dev/mapper/cr_rootのデバイスパスに変更します。この例では、一般的な暗号化BTRFS-on-LUKSパスを使用します)。

sudo btrfs inspect-internal dump-super -f /dev/mapper/cr_root | grep "^sectorsize"

おすすめ記事