Apple File System (APFS) について
Apple File System(APFS)は、
Appleが開発したmacOS、iOS、iPadOS、visionOS、tvOS、およびwatchOS向けの先進的な
ファイルシステムです。従来のHFS+(Mac OS拡張フォーマット)が抱えていた課題を根本的に解決し、
フラッシュメモリやSSDに最適化されています。特に暗号化に重点を置き、データ保全性やパフォーマンスの向上を目指して設計されています。
歴史
APFSの開発は、2016年6月13日の
Worldwide Developers Conference (WWDC) 2016で発表されました。これは、1998年から使用されてきたHFS+以来、約20年ぶりの大きな変革でした。2017年の導入を目指し開発が進められ、iOSデバイスには2017年3月27日にiOS 10.3で、macOSデバイスには2017年9月25日にmacOS High Sierraで導入されました。HFS+がシングルスレッドのみに対応していたのに対し、APFSはマルチスレッドに対応し、ファイルタイムスタンプをナノ秒単位で管理できるようになりました。ファイル共有プロトコルとしては、AFPの代わりにSMBが推奨されています。この
ファイルシステムは、2014年よりドミニク・ジャンパオロ氏を中心として、Core Storageとは異なる新しい
ファイルシステムとして開発が始まりました。
設計
APFSは、
Apple Watchから
Mac Proまで、幅広いデバイスに対応できるように設計されています。inodeには64bitの数値が採用され、よりセキュアなストレージが実現しました。HFS+と同様にTRIMコマンドをサポートしており、空き容量の管理とパフォーマンスの向上に貢献しています。これにより、iOS、iPadOS、macOSでは読み書き速度が向上する場合があります。また、iOSデバイスでは、APFSの利用可能データ計算方法の改善により、デバイスの空き容量が増加することもあります。
クローン
APFSのクローン機能を使用すると、同じボリューム内のファイルのコピーを、追加のストレージ容量を消費することなく効率的に作成できます。クローンファイルへの変更は差分データとして保存されるため、ドキュメントの改訂やコピーに必要なストレージ容量を削減できます。
スナップショット
APFSは、特定の時点での
ファイルシステムの読み取り専用インスタンスであるスナップショットをサポートしています。これにより、システムの復元やデータのバックアップが容易になります。
暗号化
APFSは、ディスク全体の暗号化をネイティブにサポートしています。ファイルの暗号化には、以下のオプションが選択できます。
暗号化なし
単一の鍵による暗号化
複数の鍵による暗号化(各ファイルが独立した鍵で暗号化され、
メタデータは別の鍵で暗号化されます)
ファイル数の最大値の増加
APFSではinode数が64bitに増加したため、1つのボリュームに約9 × 10^13個以上のファイルを作成することが可能です。これにより、大量のファイルを扱う環境でもストレージ容量を気にせずに利用できるようになりました。
データの完全性
APFSは、チェックサムを利用して
メタデータの完全性を保証しています。ただし、現時点ではユーザー領域のデータには対応していません。将来のアップデートで対応されることが期待されます。
クラッシュに対する保護
APFSは、システムのクラッシュによる
メタデータの破損を回避するように設計されています。既存の
メタデータを上書きするのではなく、新しいレコードを書き込んでからポインタを更新することで、データの不整合を防止します。また、HFS+のジャーナル
ファイルシステムでは、1回の変更ごとにストレージへの書き込みが2回必要でしたが、APFSではこれを解消し、より効率的な書き込みが可能になりました。
空き容量の共有
APFSでは、複数の論理ドライブ(ボリューム)を同じコンテナ内に作成し、コンテナ間で空き容量を共有できます。
AppleのFusion Driveと同様に、1つの物理
パーティションまたは異なるドライブ上の複数の
パーティションからAPFSコンテナを作成できます。
制限
初期バージョンのAPFSでは、
メタデータのチェックサムによる検証は可能ですが、ユーザーデータには対応していません。また、バイトアドレス可能な
不揮発性メモリの利点を十分に活用できていません。透過的圧縮はGUIからは利用できませんが、CUIから
AppleFSCompression.frameworkを通じて利用可能です。
サポート
macOS
macOS High Sierraでは、フラッシュストレージデバイス上の
ファイルシステムが自動的にAPFSに変換されます。
FileVaultボリュームも変換されますが、Fusion Driveとハードディスクドライブは変換されません。この変換はオプトアウトできず、High Sierra以降のAPFSは以前のmacOS Sierraからは読み取れません。macOS High SierraやmacOS Mojaveでは、
MacBook Pro (2018)専用で、フラッシュストレージデバイスだけでなく、ハードディスクドライブやFusion Driveも自動的にAPFSに変換されます。制限付きの実験段階のAPFSは、古いバージョンのmacOS (Sierra)でもdiskutilコマンドラインユーティリティで使用可能ですが、HFS+の
Unicode正規化が行われないため、英語以外の言語で問題が発生する可能性があります。Sierraのベータ版APFSでフォーマットされたドライブは、新しいmacOS High Sierraと互換性がなく、Time Machine、
FileVaultボリューム、Fusion Driveを利用できません。macOS Big Surでは、APFSボリュームをTime Machineのバックアップ先として利用可能になり、高速でコンパクトになり信頼性が向上しました。
iOS、tvOS、watchOS
iOS 10.3、tvOS 10.2、watchOS 3.2以降では、互換性のあるデバイスで既存のHFSX
ファイルシステムがAPFSに変換されます。
iPadOS、visionOS
APFSを標準サポートしています。
Linux
Linux環境では、Paragon Software社が提供するAPFS for
Linux by Paragon Softwareをインストールすることで、APFSでフォーマットされたボリュームの読み書きが可能です。
関連項目
ファイルシステムの比較
Btrfs
HAMMER
ReFS
Write Anywhere File Layout
ZFS
脚注
Apple File System Guide -
Apple Developer
* BSD界隈四方山話 第58回 APFS -
Appleファイルシステム開発中 - gihyo.jp 後藤大地 2016年7月1日