inode ~Unix系ファイルシステムのデータ構造~

今回の記事ではinodeについて解説します。

 

inodeとは

そもそもinodeとはタイトルの副題にもあるとおりUnixファイルシステム

データ構造のことです。

データということは、当然データの中身があります。

inodeの中にもファイルサイズ、所有者、更新日などのさまざまな属性情報

が格納されています。また、データの中身の保存場所もあります。

またinodeにはそれに対応したinode番号が割り振られています。

inode番号はプログラムで処理するときのインデックスの役割をはたします。

 

inode番号(インデックス)とinode(属性情報)がセットになっています。

セットになっていることの意味は後述します。

 

さてこのinode番号ですが無限に割り振れるわけではありません。

以下はAWS上でEC2(Red Hat)を立ち上げて使用しているinode数を確認したものです。

使用したコマンド:df -i

f:id:sinmaiSE:20190226134333p:plain

1_inode

一番上のIUsedを見てもらうと43,828と表示されています。

Mounted onが / になっているので全体で使用しているinodeの総数ということがわかります。

それでは実際にファイルを作成し、値が変化するか見てみましょう。

f:id:sinmaiSE:20190226140116p:plain

2_サンプルテキスト作成

ためしにinode.txtを作成してみました。

IUsedを見ると値が43,829に増えていることがわかります。

次に作成したテキストのinode情報を見てみましょう。

inodeは stat  ファイル名で確認することが出来ます。

f:id:sinmaiSE:20190226140527p:plain

3_inode情報

書いてあることの全てはわかりませんが、Inode番号やファイルサイズ、権限やアクセスなどさまざまな属性情報が確認できます。

さて、これからinodeがコンピュータの中でどう使われているかinode.txtを例に説明していきます。

inode.txtの中身を見たい場合、まずはファイル名(inode.txt)で検索をかけます。

そうするとinode.txtがヒットして、inode.txtのinode番号がわかります。

 

先ほどinode番号とinodeはセットになっていると説明しました。

なのでinode.txtのinode番号がわかると、セットになっているinodeがわかります。

 

inodeの中にはデータの中身の保存場所が書かれています。

ここでようやくコンピュータはデータの中身がわかったので、inode.txtの中身を見ることができる、という流れになります。

 

まとめ

・inode番号とinodeはセット

・inodeにはさまざまな属性情報が入っている

・ファイルの中身を見るときはファイル名→inode番号→inode→ファイル