Linux ファイルシステムで inode 番号がどのように使用されているかについていくつか質問があります。これらの質問は関連している可能性がありますが、明確にするために、1つずつ質問します。
Q1: EXT2/3 を例にとると、「第 2 拡張ファイルシステムの設計と実装」から、ブロック グループに i ノード テーブルがあることは知っています。また、i ノードがファイルを提示することも知っています。十分ではありませんか?私の最善の推測は、すべての inode 番号が使い果たされた場合、ファイルシステムは何もしないということです。また、後で一部のファイルが削除された場合、その inode が再利用される可能性があります。
Q2: Linux サーバーで「df -i」を実行すると、次のようになります。
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 1313280 7853 1305427 1% /
devtmpfs 0 0 0 - /dev
tmpfs 525298 4 525294 1% /dev/shm
/dev/sda2 65808 50 65758 1% /boot
/dev/sda5 1313280 146 1313134 1% /opt
/dev/sda6 655776 37 655739 1% /tmp
/dev/sda7 655776 5219 650557 1% /home
/dev/sda8 1313280 840 1312440 1% /var
/dev/sda9 655776 36529 619247 6% /usr
/dev/sda10 6432 11 6421 1% /crash
/dev/sda12 135488 11 135477 1% /usr/local/instances
tmpfs 525298 3 525295 1% /var/run/xenstored
tmpfs 525298 3 525295 1% /var/lib/xenstored
tmpfs 525298 3 525295 1% /var/lib/xend/socket
tmpfs 517536 3 517533 1% /var/run/libvirt/socket
各ファイルシステムには独自の inode 数があり、これらのファイルシステム (devtmpfs や tmpfs など) はすべてroot file systemにマウントされていることがわかります。各ファイルシステムには独自の inode テーブルがあると思いますが、ルートファイルシステムが [0, N] で tmpfs が [N+1, M] のように、異なるファイルシステムの inode 番号は異なる範囲に分散されていますか?
異なるファイルシステムの inode 番号が異なる範囲にある場合 (私はそうは思いません)、ファイルシステムはどのようにして範囲分割について合意を形成するのでしょうか?
異なるファイルシステムの inode 番号が同じ規則 (すべて 0 から始まるなど) に基づいて生成される場合、それらを一緒にマウントすると、異なるファイルシステムが競合する可能性はありますか? 私が知っているように、inode は実行中の OS にファイルを表示します。ルート ファイルシステムのファイルの inode 番号が N で、別のファイル システム (tmpfs など) の別のファイルも inode 番号が N の場合、OS はどうしますか?
PS。私は Linux の初心者で、英語圏の国から来たわけではありません。明確な表現ができていなかったら申し訳ありません。前もって感謝します。