Linuxファイルシステム比較 – ディスク容量使用効率編
システムの設計時にハードウェア構成のサイジングを行う際には、「ファイルシステムの実効ディスク容量」(= 物理ディスクの容量のうち実際に使用できる容量)を意識して、サーバの内蔵ディスクやディスクストレージのHDD構成を決定する必要があります。
これは、ファイルシステムにはユーザが使用する実データを格納する領域以外に、メタデータやジャーナルログ等を格納する領域が必要となるためです。
このページでは、openSUSE 10.3 で選択可能な主要ファイルシステム(vfat等は除く)を対象に、
- 特別なオプション無しで mkfs を実行した直後の df 結果
- 1KB/10KB/100KB/1000KB のファイルを、それぞれ10000個 作成した後の df 結果
- 1MB (1024KB) ファイルの最大作成可能数
を一覧にまとめていますので、参考にして頂ければと思います。
「実効ディスク容量算出係数」について
9GB HDD(FUJITSU MAJ3091MC) 4本を RAID 0 で構成した領域を対象に測定しています。「Available」や「1MBファイルの最大作成可能数」(1MB * n)の項目に記載の通り、どのファイルシステムを選択したとしても、実容量として「9GB * 4HDD = 36GB」が利用できる訳ではないことに留意して下さい。
参考情報として、ディスク容量の記載スペック値に対して、実際にはどの程度のディスク容量が利用可能となるのかを簡単に算出するための係数を「実効ディスク容量算出係数」として記載しました。この算出係数を用いることで、例えば「36GB」のHDDの上でext3ファイルシステムを使用する場合には「36GB * 0.87 = 31.32GB」となり、実効ディスク容量はおそらく「31GB」程度であろう、と見積もることができます。
この算出係数は「mkfs 直後の df 結果」と「1MBファイルの最大作成可能数」、双方の測定結果から算出しています。当然、使用するHDDやその他の環境条件によって多少の変動はありますが、大まかなサイジングを行う際には十分に有効な数字です。同係数の有用性については、皆様の環境で確かめて頂ければと思います。
mkfs 直後の df 結果
File System | Size (KB) | Used (KB) | Available (KB) | 実効容量 算出係数 | 備考 |
ext2 | 34,993,476 | 49,032 | 33,166,856 | 0.87 | |
ext3 | 34,993,476 | 180,240 | 33,035,648 | 0.87 | |
JFS | 35,517,756 | 4,472 | 35,513,284 | 0.94 | |
ReiserFS | 35,550,716 | 32,840 | 35,517,876 | 0.93 | |
XFS | 35,534,452 | 544 | 35,533,908 | 0.94 | |
NTFS | 35,551,812 | 67,072 | 35,484,740 | 0.94 | 参考 |
ファイル作成後の df 結果(Used) 及び 1MBファイルの最大作成可能数
File System | 1KB*10000 | 10KB*10000 | 100KB*10000 | 1000KB*10000 | 1MB * n |
ext2 | 89,152 | 169,152 | 1,089,152 | 10,089,152 | 32,263 |
ext3 | 220,416 | 300,404 | 1,220,392 | 10,220,388 | 32,135 |
JFS | 50,160 | 130,160 | 1,010,160 | 10,010,160 | 34,661 |
ReiserFS | 44,588 | 154,116 | 1,035,004 | 10,043,964 | 34,647 |
XFS | 64,748 | 148,168 | 1,012,308 | 10,004,048 | 34,690 |
補記事項
- 測定環境 : openSUSE 10.3 (2.6.22.5-31-default)
- 「ext2fs は一部のブロックをスーパーユーザ(root)のために予約しています。普通は、全ブロックのうち 5% が予約されています。これにより、ユーザプロセスがファイルシステムを使い切ってしまったような状況からもうまく修復作業を行えます。」
(出典 : Filesystems HOWTO – Extended ファイルシステム (ext, ext2, ext3) ) - 「ext2fsとext3fsは、スーパーユーザ(もしくは指定されたその他のユーザ)が使うためのブロックを大量に予約する。予約領域のデフォルト値は5%だが、大きなパーティションや、それほど重要でないパーティション(/homeなど)では、これでは多すぎる場合がある。mke2fsで-m reserved-percentageオプションを使用すれば、使用可能な領域を多少増やすことができる。」
(出典 : Open Tech Press – Linuxファイルシステムを最適化する )
関連記事
Linuxファイルシステムベンチマーク第1回 ext2,ext3,JFS,ReiserFS,XFS,NTFS
Linuxファイルシステムベンチマーク第2回 ext3,ext4,JFS,ReiserFS,XFS,NILFS2
HDDベンチマーク手順+性能測定結果一覧 (hdparm,dd,bonnie++)
RAMディスク(/dev/shm)のIO性能をチューニングに活用する方法
SSD I/Oブロックサイズの調整によるチューニング効果検証 (DC S3700編)
「Linux」カテゴリーの記事一覧
参考になるサイト
とあるSIerの憂鬱 – ext4 ファイルシステムのオーバーヘッドを厳密に理解する
LVの容量に対するext4ファイルシステムのオーバーヘッドの割合を詳細に検証されている。
SUSE Linux Enterprise – Linuxファイルシステムの概要
SUSE Linux Enterpriseでサポートされているファイルシステムに関する説明ページ。
ext3、ReiserFS、XFS、BtrFS、OCFS2、各ファイルシステムの推奨用途が記載されている。
@IT – Linuxファイルシステム技術解説
ext3、ReiserFS、JFS、XFS、各ファイルシステムについてそれぞれの特徴を実装面から詳細に解説。
Open Tech Press – Linuxのファイルシステムとファイルの概要
Linuxで選択可能なファイルシステムの中から、適切なファイルシステムを選択するポイントを解説。
MIRACLE LINUX – XFSとExt3では、実際どれくらいパフォーマンスに差があるのでしょうか?
XFSとext3のパフォーマンス比較グラフを掲載。ベンチマークツールにbonnie++を使用している。