Apple File System ( APFS )は、Apple Inc.がmacOS Sierra (10.12.4) [ 6 ]以降、iOS 10.3、tvOS 10.2 [ 7 ]、watchOS 3.2 [ 8 ]、およびすべてのバージョンのiPadOS [ 9 ] [ 10 ]向けに開発および展開した独自のファイルシステムです。APFSは、1998 年以来使用されてきた APFS の前身であるHFS+ (Mac OS Extendedとも呼ばれる)の根本的な問題を解決することを目的としています。APFS はソリッドステートドライブストレージに最適化されており、暗号化、スナップショット、メタデータの整合性の処理の改善をサポートしています。[ 11 ] [ 12 ]
Apple File Systemは、1998年から使用されてきたHFS+の後継として、2016年6月のAppleの開発者会議(WWDC)で発表されました。 [ 11 ] [ 12 ] APFSは、iOS 10.3のリリースとともに2017年3月27日に64ビットiOSデバイス向けに、 macOS 10.13のリリースとともに2017年9月25日にmacOSデバイス向けにリリースされました。[ 13 ] [ 8 ]
Appleは2018年9月に、暗号化されていない非Fusionストレージデバイス上のAppleファイルシステムへの読み取り専用アクセスをサポートするAPFSの部分的な仕様を公開した。ソフトウェア暗号化の仕様は後に文書化された。[ 14 ]
このファイルシステムは、比較的容量の小さいデバイスでも、容量の大きいデバイスでも使用できます。64ビットのinode番号を使用し、[ 2 ]データ保護と呼ばれる技術を使用することで、より安全なストレージを実現します。APFSコードは、HFS+コードと同様に、TRIMコマンドを使用してスペース管理とパフォーマンスを向上させます。APFSが利用可能なデータを計算する方法により、iOSおよびmacOSでの読み書き速度が向上し、[ 8 ] iOSデバイスのスペースも向上する可能性があります。[ 15 ]
APFS はGPTパーティション スキームを使用します。GPT スキーム内には、1 つ以上の APFS コンテナ (パーティション タイプ GUID は7C3457EF-0000-11AA-AA11-00306543ECAC ) があります。各コンテナ内には 1 つ以上の APFS ボリュームがあり、それらはすべてコンテナに割り当てられた領域を共有し、各ボリュームには APFS ボリューム ロールを設定できます。macOS Catalina (macOS 10.15) では APFS ボリューム グループが導入されました。これは、 Finder が1 つのボリュームとして表示するボリュームのグループです。APFS の firmlinks はハード リンクとソフト リンクの間にあり、ボリューム間をリンクします。
macOS Catalinaでは、システムボリュームの役割(通常は「Macintosh HD」という名前)が読み取り専用になり、macOS Big Sur(macOS 11)では署名付きシステムボリューム(SSV)となり、ボリュームスナップショットのみがマウントされるようになりました。データボリュームの役割(通常は「Macintosh HD - Data」という名前)は、システムボリュームのオーバーレイまたはシャドウとして使用され、システムボリュームとデータボリュームは両方とも同じボリュームグループに属し、Finderでは1つのボリュームとして表示されます。
クローンを使用すると、オペレーティングシステムは追加のストレージ領域を占有することなく、同じボリューム上に効率的なファイルコピーを作成できます。クローンされたファイルへの変更はデルタエクステントとして保存され、ドキュメントの改訂とコピーに必要なストレージ領域が削減されます。[ 10 ]ただし、同じファイルの 2 つのコピーをもう 1 つのクローンとしてマークしたり、他のタイプのデータ重複排除を行うためのインターフェイスはありません。
この機能は、 macOSのデフォルトのファイルマネージャであるFinderアプリケーションを使用してユーザーがファイルをコピーすると自動的に利用可能になりますが、コマンドを使用する場合は利用できません。[ 16 ]コマンドラインでこれを行うには、macOS のユーティリティにはシステムコールを使用できるようにするパラメータがあります。[ 17 ]cpcp-cclonefile
APFSボリュームは、ファイルシステムの特定時点の読み取り専用インスタンスを作成するためのスナップショットをサポートしています。 [ 10 ]
Appleファイルシステムは、フルディスク暗号化[ 2 ]と、以下のオプションによるファイル暗号化をネイティブにサポートしています。
APFSは64ビットのinode番号をサポートしており、 1つのボリュームで9京個(2⁶³ )を超えるファイルをサポートしています。 [ 2 ] [ 5 ]
Apple File System は、メタデータのデータ整合性を保証するためにチェックサムを使用しますが、実際のユーザーデータには使用せず、代わりにストレージハードウェアのエラー訂正コード(ECC) メカニズムに依存しています。[ 18 ]
Apple File System は、システム クラッシュによって発生するメタデータの破損を回避するように設計されています。既存のメタデータ レコードをその場で上書きするのではなく、まったく新しいレコードを書き込み、新しいレコードを指し示してから古いレコードを解放します。これは、書き込み時にリダイレクトする方式として知られています。これにより、更新中に発生するクラッシュによって、古いデータと新しいデータが混在するレコードが破損するのを防ぎます。また、HFS+ ジャーナル ファイルシステムのように、変更を最初にジャーナルに書き込み、次にカタログ ファイルに書き込むという二重書き込みも回避できます。[ 18 ]
APFS は、Deflate (Zlib)、LZVN (libFastCompression)、およびLZFSEを使用して、個々のファイルに対して透過的な圧縮をサポートしています。これら 3 つはすべてLempel-Ziv型のアルゴリズムです。この機能は HFS+ から継承されており、リソース フォークまたは拡張属性を使用して、同じ AppleFSCompression / decmpfs システムで実装されています。HFS+ と同様に、decmpfs でラップされたルーチンを使用しないツールでは透過性が損なわれます。[ 19 ]
APFSでは、同じコンテナ内に複数の論理ドライブ(ボリュームと呼ばれる)を配置できる機能が追加され、そのコンテナ(ブロックデバイス)内のすべてのボリュームに空き領域が利用可能になります。 [ 20 ]
APFSは前身のHFS+に比べて数多くの改良点を含んでいるものの、いくつかの制限事項も指摘されている。
APFS はユーザーデータのチェックサムを提供しません。[ 21 ]また、バイトアドレス指定可能な不揮発性ランダムアクセスメモリも利用しません。[ 22 ] [ 23 ]
ハードディスクドライブ(HDD)上に APFS が存在する場合、ファイルの列挙や、一般的にはすべてのinodeメタデータの列挙は、はるかに遅くなります。これは、 HFS+のようにメタデータを固定の場所に保存するのではなく、APFS では実際のファイル データと一緒にメタデータを保存するためです。SSD では、可動部品がないため、このメタデータの断片化は問題になりませんが、HDD では、ドライブの読み書きヘッドが物理的に散在するデータ断片を探し出す必要があるため、パフォーマンスが大幅に低下します。[ 24 ]
さらに、APFS の重要な機能の 1 つは「コピーオンライト」です。これは、元のデータを直接コピーするのではなく、元のデータへの参照を作成することで、ファイルの複製を高速化します。この機能により、スナップショットや高速ファイルコピーなどの機能が実現します。コピー後にファイルが変更されると、APFS は変更のために新しいエクステント (データブロック) を作成するため、時間の経過とともに断片化が進みます。この問題は、ファイルの複数のバージョンを作成するTime Machineなどのアプリケーションで悪化し、断片化がさらに増加してパフォーマンスが低下します。[ 25 ]そのため、APFS は一般的に HDD での使用には推奨されません。特に、頻繁なファイル変更、コピー、またはスナップショットの使用を伴うワークロードには適していません。[ 26 ]
HFS+ とは異なり、APFS はディレクトリへのハードリンクをサポートしていません。[ 3 ] [ 27 ] Mac OS X 10.5 (Leopard) から macOS 10.15 (Catalina) に含まれるTime Machineバックアップ ソフトウェアのバージョンはディレクトリへのハードリンクに依存していたため、当初 APFS はバックアップ ボリュームのサポート オプションではありませんでした。 [ 28 ] [ 27 ]この制限はmacOS 11 Big Surで解消され、現在では APFS が新しい Time Machine バックアップのデフォルトのファイルシステムとなっています (既存のHFS+フォーマットのバックアップ ドライブも引き続きサポートされています)。[ 29 ] macOS Big Sur の Time Machine の実装と APFS フォーマットのドライブの組み合わせにより、HFS+ フォーマットのバックアップ ドライブよりも「高速でコンパクト、かつ信頼性の高いバックアップ」が可能になります。[ 30 ] [ 31 ]
macOS Sierra 10.12.4には、いくつかの制限がある実験版 APFS が提供されています。これはコマンドラインユーティリティから利用できます。これらの制限の中には、 HFS+ が Unicode 正規化を実行するのに対し、APFSはUnicode 正規化をdiskutil実行しないため、英語以外の言語で問題が発生するというものがあります。[ 37 ] [ 38 ] Sierra 版の APFS でフォーマットされたドライブは、macOS や APFS の後のバージョンの互換性がない可能性があり、また、Sierra 版の APFS はTime Machine、FileVault ボリューム、または Fusion Drivesでは使用できません。 [ 39 ]
macOS 10.13 High Sierra以降、フラッシュストレージを搭載したすべてのデバイスは自動的に APFS に変換されます。[ 40 ] macOS 10.14 Mojave以降では、Fusion Driveとハードディスクドライブもインストール時にアップグレードされます。[ 41 ]アップグレードのメインのユーザーインターフェイスには、この変換を無効にするオプションはなく、High Sierra バージョンの APFS でフォーマットされたデバイスは、以前のバージョンの macOS では読み取れません。[ 40 ]startosinstallユーザーは、コマンドラインでインストーラのユーティリティを使用して を渡すことで、APFS 変換を無効にできます--converttoapfs NO。[ 42 ]
macOS Big Sur 11.2.1以降、FileVaultボリュームはAPFSに変換されません。代わりに、macOSは外部FileVaultドライブをMac OS拡張(ジャーナリング)形式でフォーマットされたCoreStorage論理ボリュームとしてフォーマットします。FileVaultドライブはオプションで暗号化できます。
iOS 10.3、tvOS 10.2、watchOS 3.2では、互換性のあるデバイスで既存のHFSXファイルシステムを APFS に変換します。[ 13 ] [ 8 ] [ 43 ]
今日の Mac では APFS ボリュームが広く普及しており、このフォーマットは 2016 年に導入されたにもかかわらず、サードパーティ製の修復ユーティリティは、Apple による完全なドキュメントの公開が遅れているため、APFS ボリュームのサポートにおいて依然として大きな制限を抱えています。DiskWarrior の開発元である Alsoft によると、Apple が 2018 年に部分的に APFS フォーマットのドキュメントを公開したことで、APFS ディスクを安全に再構築できるバージョンの DiskWarrior の作成が遅れているとのことです。[ 44 ] MicroMat の TechTool や Prosoft の Drive Genius などの競合製品も、APFS のサポートを強化すると予想されています。
補足:Finderのコピーはスペース効率の良いクローンを作成しますが、コマンドラインからのcpはそうではありません。
APFS は現在、ディレクトリのハード リンクがないため Time Machine と互換性がありません。これはかなりひどい実装であり、Time Machine の信頼性に疑問が生じる原因となっている可能性があります。
ファイルシステム(APFS)にアクセスするためのライブラリとツール
{{cite web}}: CS1 maint: url-status (リンク)