第12章 ファイル管理
ファイルシステムとは
ファイルシステムとは、ファイル名・更新日付などの属性データとファイルデータ本体を効率よく管理するための仕組みです。オペレーティングシステムが異なれば、利用できるファイルシステムも異なります。
※ Linux で利用できるファイルシステムの一例
FS名 | 内容 | 最大サイズ | 最大ファイルサイズ |
---|---|---|---|
ext2 | Berkeley Fast File System を参考にした16ビット構造 | 16TB | 2TB |
ext3 | ext2にジャーナル機能付加と機能拡張 | 2~32TB | 16GB~2TB |
ext4 | ジャーナリングファイルシステム。ファイルの断片化防止などさまざまな機能拡張によりパフォーマンスが向上 | 1EB | 16TB |
ReiserFS | 小さなファイルの扱いに向いたジャーナリングファイルシステム | 8TB | 16TB |
XFS | SGI社が提供したジャーナリングファイルシステム | 8EB | 8EB |
JFS | IBM社が提供したジャーナリングファイルシステム | 512TB | 4PB~8EB |
※ Windows で利用できるファイルシステムの一例
FS名 | 内容 | 最大サイズ | 最大ファイルサイズ |
---|---|---|---|
FAT16 | セクタという領域を一次元配列で管理するファイルシステム。現在は使われない | 2GB(NT:4GB) | 2GB(NT:4GB) |
FAT32 | セクタという領域を一次元配列で管理するファイルシステム。外付ディスクなどで使われており、 Windows 以外でも利用できる | 2TB(2KBセクタ:8TB) | 4GB |
NTFS | NT/XP/Vista用ジャーナリングファイルシステム | 256TB | 16TB(16EB) |
exFAT | フラッシュメディア向けファイルシステム | 8ZB(512Bセクタ時) | 16TB(16EB) |
※ CD / DVD のファイルシステム
FS名 | 内容 |
---|---|
ISO9660 | ISO(国際標準化機構)で標準化されたファイルシステム、 Joliet や RockRidge や Apple の規格拡張が存在、CD や DVD に利用される |
ジャーナリング機能とは
ジャーナリングとは、ファイルシステムに対する書き換え処理のコマンドをファイルシステムに逐一記録する機能です。コンピュータが急停止するなどの障害時に有効になります。例えば、コンピュータが急停止し、ファイルのデータがファイルシステムに書き込み途中である場合、書き込み途中のファイルが作られなかった状態に戻します。
iノード
ext3 (ext2) ファイルシステムは、ファイルやディレクトリに対し、i ノード番号というユニークな番号を割り振って管理しています。ファイルシステムを作成した時に i ノード領域という場所が確保され、ファイルのディスク上の位置やアクセス権限などの情報が保持されています。
注意しなければならないのは、i ノード領域が足りなくなると、ファイルシステムにデータを書き込める空き領域があったとしても、新規のファイルが作成できなくなります。
ext3 ファイルシステムの i ノード領域の使用状況を確認するには、 df コマンドに -i オプションをつけて実行します。実際に以下のコマンドを実行して、確認して見ましょう。
# df -i
(i ノード情報を表示)
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/centos-root 3248128 144129 3103999 5% /
devtmpfs 123092 357 122735 1% /dev
tmpfs 127029 1 127028 1% /dev/shm
tmpfs 127029 490 126569 1% /run
tmpfs 127029 16 127013 1% /sys/fs/cgroup
/dev/sda1 524288 327 523961 1% /boot
tmpfs 127029 6 127023 1% /run/user/42
tmpfs 127029 17 127012 1% /run/user/0
※ 項目の説明
Inodes: iノード領域の全体数
IUsed: iノード領域の使用数
IFree: iノード領域の残り数
IUse%: iノード領域の使用率
Mounted on: マウント位置
ファイルに割り振られている i ノード番号も以下のコマンドを実行することで確認できます。
# ls -il /bin | sort
34212 lrwxrwxrwx. 1 root root 7 Apr 24 16:19 /bin -> usr/bin