3

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 の初心者で、英語圏の国から来たわけではありません。明確な表現ができていなかったら申し訳ありません。前もって感謝します。

4

1 に答える 1