Infra Engineer

ファイルシステムとは
2022.01.31
Lv1

ファイルシステムとは

本記事の対象者

LPIC level1習得を目指す初学者の方
コマンドの基本的な用途について、要点を絞って解説します。


今回の内容

今回は、ファイルシステムについて解説します。

ハードディスクを使用するための過程(再掲)
ファイルシステムとは
inode
ファイルシステムの種類
まとめ
確認問題

ハードディスクを使用するための過程(再掲)

パーティションについて」で説明した通り、Linuxでハードディスクを使用するには以下の過程が必要です。

デバイスファイルを作成する。(基本的には自動で作成される。)
②ディスク内にパーティションを作成する。
③パーティション内にファイルシステムを構築する。
④ファイルシステムをマウントする。

今回の記事では、③で登場する、「ファイルシステム」とは何かについて解説します。
なお、ファイルシステムの実際の作成方法等は別記事で解説します。


ファイルシステムとは

皆さんはデータがハードディスクに物理的にどのように格納されているか意識したことはありますか。
操作したいデータがハードディスクのどの区画からどの区画に格納されているか把握し、その区画を「●●セクタから●●セクタ」と指定し、そのうえでその区画からとってきたデータをメモリ上に読み込んで使用していますか。
恐らくそのようなデータ操作は行っていないでしょう。

皆さんにとって、「データを操作する」とは「ファイルを操作する」のと同義ではないでしょうか。
そう思うのは「ファイルシステム」が存在しているからです。

「ファイルシステム」とは、データという人間には物理的に認識しづらく扱いづらいものを、抽象化し、可視化し、保持し、扱いやすくするためのシステムのことです。
これがあることによって、皆さんは「HDD上の●●セクタから●●セクタのデータを取り出す」という指示ではなく、「/etc/sample.txtを開く」という指示でそのデータを扱えるようになっているのです。

「セクタ」はディスク上の区画を表します。ファイルシステムでは「ブロック」という単位でデータを保存し管理しています。
Linuxではすべてのデータやプログラムをファイルとして階層構造で扱い、その階層構造の頂点にルートディレクトリが存在しています。

 


inode

Linuxのファイルシステムでは、「ファイルの実際の中身」と「ファイルの属性や管理情報」は別々で保持されています。
そのうち後者の「ファイルの属性や管理情報」を保存しているのが「inode」と呼ばれる領域です。(inodeは「index node」の略)

具体的には以下のような情報を保持しています。

  • inode番号
  • ファイルサイズ
  • ファイル所有者のユーザーID
  • ファイルのグループID
  • ファイルモード(ファイルパーミッション)
  • 最終inode更新時(ctime)、最終ファイル更新時(mtime)、最終参照時(atime) を示すタイムスタンプ群
  • そのinodeを指すハードリンクがいくつあるかを示す参照カウント
  • 実際のデータの位置(ディスク上の物理的な場所)

inode番号は、すべてのファイルやディレクトリに割り振られる、重複しない番号です。
そのinode番号に対応するinodeがひとつだけ存在します。
※inodeは、ファイル名は管理していません。ディレクトリがinode番号を用いて管理しています。


ファイルシステムの種類

ファイルシステムには種類があります。
主に以下の点において違いがあります。

  • ジャーナリング機能の有無
  • アクセス速度
  • ディスク使用効率
  • 作成可能なinode数
ジャーナリング機能
ファイルの操作履歴をジャーナル(ログ)に記録する仕組み。ファイルシステム全体の整合性を高速に確認することができる、処理に失敗した際に復旧を高速に行うことができるなどのメリットがあります。

主なファイルシステムの種類一覧

名称 特徴 ジャーナリング機能の有無
ext2 以前のLinuxの標準ファイルシステム。
ext3 ext2にジャーナリング機能を加えたもの。ext2との高い互換性があり、ext2をext3に変換することも可能。
ext4 現在のLinuxの標準ファイルシステム。最大ファイルサイズは16TiBと拡張され、ext3としてマウントすることも可能。
XFS SGI社が開発したファイルシステム。大規模ファイルシステムを効率的に扱うことが可能。
JFS IBM社が開発したファイルシステム。
Btrfs 高度な機能を備えた、Linux用の新しいファイルシステム。
iso9660 CD-ROMのファイルシステム。
ファイルシステムの予約領域
ext3やext4 でファイルシステムを作成すると、デフォルトで5%の予約領域ができます。予約領域はrootだけが書き込める領域で、ディスクの空きがなくなってもrootは予約領域を使って作業ができます。

まとめ

今回は、ファイルシステムについて解説しました。
ファイルシステムのおかげで、私たちはデータという認識しにくい存在をファイルという実体として扱えています。

ファイルシステムの実際の作成方法については、別記事で解説します。

最後に確認問題で今回学習した内容を確かめてください。


確認問題

問題1

ext4ファイルシステムでのrootユーザの予約スペースのデフォルトの割合はどれか。

A) 3%
B) 8%
C) 10%
D) 5%

解答・解説
答え:D
問題1

次のLinuxファイルシステムのうち、新しいファイルシステムを作成する際、固定数のinodeを事前に割り当てるものはどれか。(2つ選択)

A) JFS
B) ext3
C) XFS
D) ext2

解答・解説
答え:B,D

ext2は以前のLinux標準ファイルシステム。ext3はジャーナリング機能を追加したもの。
AはIBM社が開発したファイルシステム。CはSGI社が開発したファイルシステム。EはUnix系システムにある擬似ファイルシステム。