/etc/mke2fs.conf と tune2fs 間の ext4 inode 比率の不一致

/etc/mke2fs.conf と tune2fs 間の ext4 inode 比率の不一致

インストーラーを使用して、ソフトウェア RAID 10 構成で Debian Strech をインストールしました。ドライブは 4 つあり、それぞれ 14 TB です。パーティションはインストーラーによって ext4 でフォーマットされました。inode 比はデフォルトで 16384 です。

/proc/mdstat を cat する
パーソナリティ: [raid10] [raid1] [リニア] [マルチパス] [raid0] [raid6] [raid5] [raid4]
md3 : アクティブ RAID10 sdc4[1] sda4[0] sdb4[2] sdd4[3]
      27326918656 ブロック スーパー 1.2 512K チャンク 2 ニアコピー [4/4] [UUUU]
      ビットマップ: 5/204 ページ [20KB]、65536KB チャンク

md2 : アクティブ RAID1 sdd3[3] sdc3[1] sda3[0] sdb3[2]
      976320ブロックスーパー1.2 [4/4] [UUUU]

md1 : アクティブ RAID10 sdd2[3] sdc2[1] sda2[0] sdb2[2]
      15616000 ブロック スーパー 1.2 512K チャンク 2 ニアコピー [4/4] [UUUU]

未使用のデバイス:
mdadm --detail /dev/md3
/dev/md3:
        バージョン: 1.2
  作成時間: 2020年3月8日(日) 16:21:02
     レイドレベル: raid10
     配列サイズ: 27326918656 (26060.98 GiB 27982.76 GB)
  使用された開発サイズ: 13663459328 (13030.49 GiB 13991.38 GB)
   レイドデバイス: 4
  デバイス合計数: 4
    永続性:スーパーブロックは永続的である

  インテントビットマップ: 内部

    更新時間: 2020年4月1日水曜日 01:00:06
          状態: きれい
 アクティブデバイス: 4
動作デバイス: 4
 故障したデバイス: 0
  予備デバイス: 0

         レイアウト: near=2
     チャンクサイズ: 512K

           名前: aaaaaaa:2 (ホスト aaaaaaa のローカル)
           UUID: xxxxxxxxxxxxxxxxxxxxxxxx
         イベント : 26835

    番号 メジャー マイナー RaidDevice 状態
       0 8 4 0 アクティブ同期セット-A /dev/sda4
       1 8 36 1 アクティブ同期セット-B /dev/sdc4
       2 8 20 2 アクティブ同期セット-A /dev/sdb4
       3 8 52 3 アクティブ同期セット-B /dev/sdd4

/etc/mke2fs.conf を編集する
[デフォルト]
        基本機能 = sparse_super、large_file、ファイルタイプ、resize_inode、dir_index、ext_attr
        default_mntopts = acl、user_xattr
        定期的なfsckを有効にする = 0
        ブロックサイズ = 4096
        inode_size = 256
        inode比率 = 16384

今私は実行します:

tune2fs -l /dev/md3
tune2fs 1.43.4 (2017年1月31日)
ファイルシステムボリューム名:   
最終マウント日: /
ファイルシステム UUID: xxxxxxxxxxxxxxxxxxxxxxxxxxx
ファイルシステムのマジックナンバー: 0xEF53
ファイルシステムのリビジョン番号: 1 (動的)
ファイルシステムの機能: has_journal ext_attr dir_index filetype needs_recovery extend 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
ファイルシステムフラグ: signed_directory_hash
デフォルトのマウントオプション: user_xattr acl
ファイルシステムの状態: クリーン
エラー動作: 続行
ファイルシステム OS タイプ: Linux
iノード数: 426983424
ブロック数: 6831729664
予約ブロック数: 341586483
空きブロック: 6803907222
空き i ノード: 426931027
最初のブロック: 0
ブロックサイズ: 4096
フラグメントサイズ: 4096
グループ記述子のサイズ: 64
グループあたりのブロック数: 32768
グループあたりのフラグメント数: 32768
グループあたりの i ノード数: 2048
グループあたりの Inode ブロック数: 128
RAID ストライド: 128
RAID ストライプ幅: 256
フレックスブロックグループのサイズ: 16
ファイルシステム作成日: 2020年3月8日(日) 16:24:38
最終マウント時間: 2020 年 3 月 31 日火曜日 12:06:30
最終書き込み時間: 2020年3月31日火曜日 12:06:21
マウント数: 17
最大マウント数: -1
最終確認日: 2020年3月8日(日) 16:24:38
チェック間隔: 0 ()
生涯書き込み容量: 27 GB
予約ブロック uid: 0 (ユーザー root)
予約ブロック gid: 0 (グループ ルート)
最初のiノード: 11
iノードサイズ: 256
必要な追加サイズ: 32
希望追加サイズ: 32
ジャーナル i ノード: 8
デフォルトのディレクトリハッシュ: half_md4
ディレクトリハッシュシード: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ジャーナルバックアップ: inode ブロック
チェックサムタイプ: crc32c
チェックサム: 0x30808089

inodeあたりのバイト数 = (ブロック数/inode数) * ブロックサイズ

私の場合: inode あたりのバイト数 = (6831729664/426983424) * 4096 = 16 * 4096 = 65536

tune2fs -l 出力で比率が 65536 と表示されるのはなぜですか。16384 であるはずです。

私のノートパソコンにも同じ Debian strech ディストリビューションがインストールされており、/etc/mke2fs.conf と tune2fs -l の間に矛盾はありません。

答え1

ファイルシステムのサイズが16TiBを超えているため、mke2fsデフォルトでは、inode 比率が 65,536 バイトの「巨大な」ファイルシステム タイプに設定されています。-Tリンクされたマニュアル ページのオプションと、次hugeのタイプを参照してくださいmke2fs.conf

        huge = {
                inode_ratio = 65536
        }

関連情報