Apple File System

Apple File System (APFS) は、Appleが開発したmacOS、iPadOS、iOS、visionOS、tvOSおよびwatchOS 向けのファイルシステムである。これらのOSで使われてきたHFS+ (Mac OS 拡張フォーマットとも呼ばれる) の根本的な問題を解決することを目的としている。APFSは フラッシュメモリおよびSSDに最適化されており、暗号化に重点を置いている。 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（英語版）とは異なる新しいファイルシステムとして開発が始まった。 このファイルシステムはApple WatchからMac Proにまでスケールしている。inodeには64bitの数が採用され、よりセキュアなストレージになっている。APFS のコードでは、HFS+ と同様に TRIMコマンド が使われており、空き容量の管理とパフォーマンスの改善に貢献している。これにより、iOS, iPadOSとmacOSでは、読み書きの速度が向上する場合があり、iOSデバイスではAPFSの利用可能データの計算方法の改善により、デバイスの空き容量が増加することがある。 クローンを利用することで、オペレーティングシステムは、同じボリュームにあるファイルのコピーを追加のスペースを消費せずに効率よく作成できる。クローンファイルに対してなされた変更は、差分データとして保存されるため、ドキュメントの改訂やコピーに必要なストレージ容量が削減できる。 APFSは、ポイントインタイムで読み取り専用のファイルシステムのインスタンスを作成することで、スナップショットをサポートする。 APFSはネイティブにディスク全体の暗号化に対応している。ファイルの暗号化には以下のオプションが選択できる。 暗号化なし 1つの鍵による暗号化 複数の鍵による暗号化 (各ファイルが独立した鍵で暗号化され、メタデータが別の鍵で暗号化される) APFS はinodeの数が64bitに増加したため、1つのボリュームに 9 × 10 13 {\textstyle 9\times 10^{13}} 個以上のファイルを作成することが可能になった。 APFSはチェックサムを利用してメタデータの完全性を保証している。ただし、現時点ではユーザー領域のデータには未対応である。 APFSはシステムのクラッシュによるメタデータの破損を回避できるように設計されている。既存のメタデータを置き換えるように上書きするのではなく、初めに完全に新しいレコードとして書き込み、新しいデータにポインタを変更した後に、古いデータを開放するようになっている。この仕組みにより、データの更新中にクラッシュした場合に、同じレコード中に古いデータと新しいデータが部分的に混在するような事態を避けることができるようになった。また、HFS+ ジャーナルファイルシステムではファイルをジャーナルに書き込んだ後にカタログファイルにもう一度書き込む必要があり、1回の変更のたびにストレージに2回書き込まなければならないという問題があったが、これも解消した。 APFS は複数の論理ドライブ (ボリュームと呼ばれる) を同じコンテナ内に作成し、コンテナ間で空き容量を共有できるようになった。AppleのFusion Drive（英語版）の機能と同様に、1つの物理パーティションからでも2つの異なるドライブ上の2つのパーティションからでも、APFSのコンテナを作ることができる。 初期バージョンのAPFSでは、メタデータに対してはチェックサムを利用して完全性の検証ができるが、ユーザーデータに対してはできない。また、バイトアドレス可能な不揮発性メモリ の利点を活用できない。現時点では、圧縮の機能も利用できない。 macOS High Sierraでは、フラッシュストレージデバイス上のすべてのファイルシステムを、自動的にAPFSに変換する。FileVaultボリュームも変換されるが、Fusion Driveとハードディスクドライブは変換されない。ユーザーはこの変換をオプトアウトすることはできず、High Sierraバージョン以降のAPFSは、前のバージョンのmacOS Sierraからは読み取れなくなる。 MacBook Pro (2018)専用のmacOS High SierraやmacOS Mojaveでは、インストール先がフラッシュストレージデバイスの場合だけではなく、ハードディスクドライブや Fusion Drive の場合も、自動的にAPFSに変換する。 制限付きの実験段階のバージョンの APFS が、古いバージョンの macOS (Sierra) でも、コマンドラインの diskutil ユーティリティで利用できる。HFS+が行う Unicode 正規化 を行わないという制限があるため、英語以外の言語では問題が発生する。SierraのベータバージョンのAPFSでフォーマットされたドライブは、新しいバージョンのmacOS High Sierraと互換性がなく、Time Machine、FileVault volumes、またはFusion Driveを使用できない。 macOS Big SurでAPFSのボリュームを Time Machine のバックアップ先として利用する事に対応し、より高速でコンパクトとなり、信頼性を増した。 iOS 10.3、tvOS 10.2、およびwatchOS 3.2以降では、互換性のあるデバイスでは、既存のHFSXファイルシステムがAPFSに変換される。 APFSを標準サポートしている。 各種Linuxにおいては、Paragon Software社が提供するAPFS for Linux by Paragon Softwareをインストールすることによって、APFSでフォーマットされたボリュームの読み書きが可能となる。 ファイルシステムの比較 Btrfs HAMMER ReFS Write Anywhere File Layout ZFS ^ a b c d Warren, Tom (March 27, 2017). “Apple is upgrading millions of iOS devices to a new modern file system today”. The Verge. Vox Media. March 27, 2017時点のオリジナルよりアーカイブ。March 27, 2017閲覧。 ^ Roger Fingas (June 13, 2016). “'Apple File System' will scale from Apple Watch to Macs, replace HFS+”. Apple Insider. July 23, 2016時点のオリジナルよりアーカイブ。2016年7月23日閲覧。 ^ a b c d Hutchinson, Lee (2016年6月14日). “Digging into APFS, Apple's new file system”. Ars Technica. Condé Nast. 2024年9月17日閲覧。 ^ a b Weintraub, Seth (June 13, 2016). “Apple File System (APFS) announced for 2017, scales ‘from Apple Watch to Mac Pro’ and focuses on encryption”. 9to5Mac. March 28, 2017時点のオリジナルよりアーカイブ。March 27, 2017閲覧。 ^ a b Hutchinson, Lee (June 13, 2016). “New file system spotted in macOS Sierra [Updated]”. Ars Technica. Condé Nast. 2024年8月10日時点のオリジナルよりアーカイブ。March 27, 2017閲覧。 ^ a b Clover, Juli (March 27, 2017). “Apple Releases iOS 10.3 With Find My AirPods, APFS, App Store Review Tweaks and More”. MacRumors. March 27, 2017時点のオリジナルよりアーカイブ。March 27, 2017閲覧。 ^ a b Introducing Apple File System - WWDC 2016 - Session 701 - iOS, macOS, tvOS, watchOS ^ “APFS in Detail: Overview”. Adam Leventhal's blog. 2016年7月14日閲覧。 ^ Apple Inc. “Apple File System Guide (Features)”. July 1, 2017閲覧。 ^ a b Adam Leventhal (June 19, 2016). “APFS in Detail: Data Integrity”. June 21, 2016時点のオリジナルよりアーカイブ。2016年6月19日閲覧。 ^ “Archived copy”. October 23, 2016時点のオリジナルよりアーカイブ。2017年6月10日閲覧。 ^ H. Leventhal, Adam (2016年6月26日). “A ZFS developer’s analysis of the good and bad in Apple’s new APFS file system”. Ars Technica. オリジナルの2024年8月24日時点におけるアーカイブ。. https://web.archive.org/web/20240824095346/https://arstechnica.com/gadgets/2016/06/a-zfs-developers-analysis-of-the-good-and-bad-in-apples-new-apfs-file-system/  ^ Harris, Robin (2016年6月24日). “Why Apple's APFS won't last 30 years”. ZDNet. オリジナルの2024年6月22日時点におけるアーカイブ。. https://web.archive.org/web/20240622053702/https://www.zdnet.com/article/why-apples-apfs-wont-last-30-years/  ^ a b c “Prepare for APFS in macOS High Sierra”. Apple.com (September 7, 2017). 2017年9月19日閲覧。 ^ Reed, David (2017年3月24日). “APFS’s “Bag of Bytes” Filenames”. Michael Tsai. 2021年2月12日閲覧。 ^ APFS is currently unusable with most non-English languages – The Eclectic Light Company Archived June 8, 2017, at the Wayback Machine. ^ “How to Format a Drive With the APFS File System on macOS Sierra”. オリジナルのOctober 26, 2016時点におけるアーカイブ。. https://web.archive.org/web/20161026171416/http://www.howtogeek.com/272741/how-to-format-a-drive-with-the-apfs-file-system-on-macos-sierra/ October 26, 2016閲覧。  ^ “Apple Developer Documentation”. developer.apple.com. 2021年11月6日閲覧。 “APFS-formatted backup volumes are now supported for faster, more compact, and more reliable backups. New local and network Time Machine backup destinations are formatted as APFS by default.” ^ “jakepetroules/Filesystem” (英語). GitHub. March 29, 2017閲覧。 ^ “APFS for Linux by Paragon Software”. Paragon Software. 2021年2月12日閲覧。 Apple File System Guide - Apple Developer BSD界隈四方山話 第58回　APFS - Appleファイルシステム開発中 - gihyo.jp 後藤大地 2016年7月1日