WWDC 2016でAppleが発表した中で多くの開発者の興味を引いたものに、新しいファイルシステムAPFSがある。Appleが公開した予備的な開発者向けドキュメントによると、APFSは次のようなものだという。
Flash/SSDストレージに最適化されており、強力な暗号化、Copy-on-Writeメタデータ、スペース共有、ファイルとディレクトリのクローン、スナップショット、高速ディレクトリ・サイジング、アトミックSafe-Saveプリミティブ、ファイルシステム基盤の改善を特徴としています。
HFS+との簡単な比較
Appleによると、APFSはHFS+の全機能をサポートし、それらを様々な方法で改善しているという。
- HFS+が32ビットのファイルIDを使っているのに対し、APFSは64ビットのinode番号をサポートする。これにより、単一ボリュームに900京以上のファイルを格納することができる。
- HFS+はファイルシステムの全ストレージを一度に初期化しなければならないが、APFSは拡張可能なブロックアロケータを備えており、データ構造の遅延初期化を可能にする。これにより、大規模ボリュームでの性能が大幅に改善される。
- APFSは暗号化に3つのモデル(暗号化なし、単一キー暗号化、マルチキー暗号化)をサポートし、ファイルごとのキーとメタデータキーを管理する。
HFS+を改善するためにAPFSに追加された機能には、Sparse File(疎ファイル)のサポート、TRIMオペレーションの改善、拡張属性のビルトインサポートがある。
APFSの新機能
APFSはいくつかの先進的な機能も提供しており、数年前にAppleがOS Xに移植しようとしたZFSやHAMMERのようなモダンなファイルシステムに属している。
- アップデートをクラッシュセーフにするため、APFSは新しいCopy-on-Writeメカニズムを用いる。
- スペース共有により、共有された物理ボリューム上で複数のファイルシステムを柔軟に拡張することができる。厳密なパーティショニングは必要ない。
- クローンにより、変更されるまで追加のスペースを必要とせずに、ファイルやディレクトリのコピーを作成することができる。変更されたブロックだけがディスクに格納されることになる。この挙動は、
copyItemAtURL:toURL:error:
やcopyItemAtPath:toPath:error:
といったNSFileManager
メソッドにより透過的に強制適用される。 - スナップショットはファイルシステム全体のリードオンリー・インスタンスであり、効率的なバックアップの基礎を提供する。ただし、開発者がスナップショットを管理するためのAPIはまだ提供されていない。
- アトミックセーブにより、成功あるいは失敗する単一トランザクションで、バンドルやディレクトをリネームすることができる。この新しい挙動は、
moveItemAtURL:toURL:error:
やmoveItemAtPath:toPath:error:
といったNSFileManager
メソッドにより透過的に強制適用される。
APFSの使用
現在のところ、APFSはmacOS 10.12の開発者向けプレビューとしてリリースされ、新しいファイルシステムを扱えるようにアップデートされたhdutil
コマンドが提供されている。APFSパーティションを作るには、以下のようにすればよい。
$ hdiutil create -fs APFS -size 1GB foo.sparseimage
これは開発者向けプレビューであり、Appleは開発者に向けて、APFS使用時の動作不良やデータ損失の可能性を警告している。加えて、以下のような制限事項がある。
- 起動ディスクに使えない。
- ケースセンシティブである。
- Time Machine、FileVault、Fusion Driveでうまく動かない。
APFSは2017年に出荷される予定だ。最終的に、30歳を越えるAppleのHFS+ファイルシステムを置き換えることになるだろう。
Rate this Article
- Editor Review
- Chief Editor Action