ファイルシステムの比較

この記事は一般的に使用されるファイルシステムのデータの機密性と完全性の観点から比較した資料です。

ファイルシステムのデータの機密性、完全性の比較

ファイルシステム POSIX file
パーミッション
ACL 暗号化 ジャーナリング 誤り検出 誤り訂正
FAT32 No No No No No No
NTFS Yes Yes
(Windows ACL model)
Yes Partial
(Meta data only)
No No
FFS Yes Yes
(POSIX draft ACL)
No No No No
ext2 Yes Yes
(POSIX draft ACL)
No No No No
ext3 Yes Yes
(POSIX draft ACL)
Yes Yes No No
ZFS Yes Yes
(NFSv4 ACL)
Yes Yes Yes Yes
ISO 9660 No No No No No No
UDF YES No No Yes No No
ファイルシステム POSIX file
パーミッション
ACL 暗号化 ジャーナリング 誤り検出 誤り訂正

ジャーナリングファイルシステム

ジャーナリングファイルシステムは、メタデータの書き込みを行っている最中に何らかの原因(例えば電源切断)により書き込み処理が中断した場合にメタデータとして記録した情報に不整合が発生しないようにする機能をサポートするファイルシステムです。メタデータと実データの保護までサポートするファイルシステムもありますが、メタデータのみのジャーナリングをサポートするファイルシステムではシステムクラッシュにともなうファイルシステムの破壊という事態は避けられるものの、ファイルのデータ内容までは保護されません。

ACL(アクセス制御リスト)の標準

ACLの標準を探すと、Draft POSIX ACLと、 NFSv4 を見つけることができますが、 Draft POSIX ACLの方は破棄され標準化されていません。NFSv4の一部の NFSv4 ACLはNFSとWindowsの適切な互換性を提供することを目的に設計され標準化されています。

UDFのアクセス制御リスト

UDF規格では、Windows ACLの規定がありますが、Microsoftによると、Windows側で実装されておらず、実装の予定がないとされています。従って、現状では実質的に ACL をサポートするシステムはありません。

評価

Windows NT系 NTFS、Linux の etx3、 Solaris、FreeBSDの ZFSのファイルシステムを機密性と完全性ついて評価を行います。

データの機密性

パーミッションの設定の柔軟度はNFSv4 ACLsや Windows NT ACL では POSIX file パーミッションより権限を細かく制御できNTFS、 ZFSが同程度に高く相互運用出来ると考えられます。ext3 では Windowsとの相互運用する場合に 権限のマッピングに問題が生じると考えられます。

ファイルの暗号化はディスクそのものを取り外した場合に、バックアップ・メディアから別ディスク上にリストアした場合などは、自由にデータにアクセスできる問題に対応する機能で、ディスク上に記録されたファイルの中身そのものが暗号化され、鍵を持っているユーザのみが復号できます。NTFS、 ZFS、etx3 が暗号化をサポートしていますので同程度だと考えてよいでしょう。暗号化を行う場合には当然にアクセス性能が犠牲になります。

データの完全性

データの完全性に必要な誤り検出と誤り訂正の機能はWindows の NTFS や Linux の ext3 では 誤り検出、訂正がサポートされていませんので、これらをサポートするには RAID を使って補完することになります。 Solaris や FreeBSD では ZFS が使用でき RAID 無しで、 RAID 以上にデータの信頼性が高くなります。YOSBITS では ZFS を使用することを推奨しています。

RAID 5書き込みホール

RAID-5 にはトランザクションが導入されていないので、データの書き換え時に停電など不慮の事故が起こると、データブロックとパリティブロックとの間に修復不可能なな不整合が発生する可能性があり、RAID 5書き込みホールと呼ばれている。ハードウェアRAIDではバッテリを搭載するなどして電源異常時の問題を回避するように構成されている場合が多く、ソフトウェアRAIDでは対応は困難です。ZFS の RAID-Z ではトランザクションが導入されているので、この問題は発生しません。