WWDC で発表された新しい Apple File System は、同社が将来に向けてどのように計画しているかを浮き彫りにしています。ここでは、同社が Mac、iOS、Apple Watch、Apple TV で HFS+ を置き換えるために何を使用するのかを内部的に見ていきます。

Mac の過去 30 年間、Apple のファイル システムは、データが最初は 800K フロッピーに保存され、その後、40 MB のストレージが十分に考慮されていた磁気ハード ドライブに保存されてきました。現在、ハードドライブはテラバイト単位で測定されており、Apple が現在販売しているデバイスのほとんどはフラッシュまたは SSD ストレージを使用しています。

HFS+ は、1990 年代後半に「プラス」リフレッシュされて以来、何度か修正されてきました (主に、より大きなドライブに対応するため)。 Appleはファイルシステムをボルトで強化したジャーナリングこれは、ファイルへの変更の継続的な記録を記録するため、電源喪失などの何か問題が発生した場合に、ファイル システムがディスクを既知の良好な状態に復元できるようにします。

Apple は、大文字と小文字が区別される (ほとんどの Unix システムと同様) HFSX と呼ばれる HFS+ のバージョンも作成しました。このバージョンは、同じディレクトリ内に大文字と小文字のみが異なる複数のファイル (file1h と file1H など) を作成できることを期待するサーバー ソフトウェアで使用します。例)。

そして、Apple が iOS を導入したとき、モバイル デバイスのデータ保護に使用される個別のファイル暗号化をサポートする、Mac の HFSX に基づいた特殊なファイル システムを作成しました。

Apple はまた、HFS+ の下に存在する以下のようなストレージ テクノロジも開発しました。EFIストレージパーティション(Intel の OpenFirmware に相当し、Apple が 10 年前に Intel チップに移行した際に先駆けて採用)コアストレージ、フルディスク暗号化や Fusion Drive などの機能をサポートするために Apple が開発した論理ボリューム形式。論理ボリュームはディスク パーティション上に作成され、ファイル システムで初期化されます。

ただし、HFS+ 自体には依然としていくつかの重大な欠点があり、ファイル システムは下位互換性のないボリュームを必要とせずに効果的に拡張できないいくつかの厳格なデータ構造を使用しているため、新機能を追加し続けると、最終的には過去との互換性が失われます。フォーマット変更。

また、HFS+ は主にシングルスレッドのデータ構造を使用しますが、カタログ ファイルのロックが必要となるため、複数のプロセスが同時に同じデータにアクセスすることが困難になります。

Apple File Systemが2017年にデフォルトになる

Apple は現在、HFS+ に代わる APFS を macOS Sierra の開発者プレビューと呼んでいますが、来年にはプラットフォーム全体のサポートを完了し、すべての Apple 製品のデフォルトのファイル システムになる予定です。

WWDCで同社は、APFSがAppleのすべてのプラットフォームを念頭に置いて設計されており、watchOSからiOS、tvOSからmacOSまで拡張でき、現在同社製品のほとんどがフラッシュまたはSSDストレージを使用しているという事実を活用していると強調した。また、主要な機能として暗号化を念頭に置いて設計されています。完了すると、ユーザーは HFS+ から APFS に適切にアップグレードできるようになります。

完了すると、Microsoft が PC ユーザーを FAT から NTFS に移行したのと同様に、ユーザーは HFS+ から APFS に適切にアップグレードできるようになります。ユーザー データはそのまま残り、APFS は、APFS ボリュームに変換する前に、HFS+ ボリューム上の空き領域内に新しいメタデータを作成します。

将来に向けた新しい Apple ファイル システムの開発

新しい APFS は、今後数十年にわたるテクノロジーをサポートするためのさまざまな新機能を提供します。 Apple は、既存のファイル システムを使用するのではなく、独自の新しい APFS を開発しました。これは、既存のファイル システムのほとんどが Apple とは異なるユースケースに合わせて調整されているためです。

たとえば、最新の高性能ファイル システムの多くは、複数のディスクを備えたサーバーのニーズに合わせて調整されており、多くの場合、遅延ではなくスループットが最適化されています。モバイル デバイスでは、遅延がより重要です。ユーザーは、巨大なファイルをすばやく移動する必要があるよりも、タップしたときにすぐに結果が表示されることを望んでいます。ほとんどの Apple デバイスにはディスクが 1 つしかありません。

クサン

Apple はすでに、macOS 上のストレージ エリア ネットワーク用の高性能の共有ファイル システムをサポートしています。クサン、専用のメタデータ コントローラーを使用して、ファイバー チャネル経由で同じボリュームにアクセスする複数のプラットフォーム ユーザーをサポートします。

既存の HFS+ ユーザーのより一般的なニーズに対応するために、Apple は、現在世界中で 10 億台を超える消費者デバイスのインストール ベースの一般的な使用シナリオに合わせて特別に調整された、高度な代替ファイル システムを開発しました。

APFS の高度な新しい構造

APFS は新機能を導入するだけでなく、将来の拡張を念頭に置いて設計されています。これには、64 ビット i ノード番号へのジャンプが含まれます (各ファイルを追跡するために使用されます。HFS+ およびその 32 ビット カタログ レコードと比較してください)。 APFS では、これによりディスク上で 9 京 (100 万兆) を超えるファイルが有効になります。

APFS の拡張された新しい i ノード構造は、ファイルとディレクトリの情報が単一のカタログ ファイルに保持されることに関連する HFS+ の中核的な問題にも対処しているようです。これにより、アクセスがシリアル化され、複数のスレッドがすべてファイル システムにアクセスしようとするとログジャムが発生します。

また、APFS は、HFS+ の 1 秒タイムスタンプを新しいナノ秒タイムスタンプで改良し、並行して書き込まれるファイルの順序を区別できるようにします。 APFS には拡張ブロック アロケータもあり、ユーザーは新しい非常に大規模なディスクまたは RAID アレイをセットアップし、システムが (HFS+ の要求に応じて) ディスク全体のゆっくりとした初期化を完了する前にそれを使用し始めることができます。

APFS では、スパース ファイルのサポートも追加され (HFS+ には仮想サポートのみが含まれます)、HFS+ ジャーナリングに必要なオーバーヘッドを超えてパフォーマンスを最大化するために使用される新しいコピーオンライト メタデータ スキームが実装されています。また、HSF+ では B ツリー属性ファイルとして追加された拡張ファイル属性のサポートも組み込まれています (HFS+ は、たとえば、アクセス コントロール リストのアクセス許可属性を保存するために使用します)。

また、APFS は、Apple のすべてのプラットフォームにわたるフルディスク暗号化と個別ファイル暗号化のサポートを調和させ、デバイスが物理的に第三者によって取得された場合でもデータ アクセスを保護するように設計されたユーザー データとメタデータに複数のキーを使用します。

APFS を既存の Apple RAID ボリュームと使用して、ソフトウェア ベースのストライピング (パフォーマンスのため) とミラーリング (データ保護)、または単純なディスク スパンニング (コスト削減のため) を提供できます。また、ハードウェア RAID デバイスでも使用できます。

現在の開発者プレビューはまだ Apple の Fusion ドライブ (SSD と従来の回転ハード ドライブを RAID のようなハイブリッド デバイスで組み合わせたもの) をサポートしていませんが、それは明らかに予定されています。 Apple はまた、同社の新しいファイル システムは、回転する磁気ディスク ストレージとは異なる特性を示すフラッシュおよび SDD ストレージという現代の現実に基づいて設計されていることも強調しました。

Apple File System に組み込まれた新機能

APFS は、HFS+ の基本設計を大幅に進化させ洗練させたほか、さまざまなまったく新しい機能も導入しています。

これには、複数のボリュームがディスク上の空きスペースを要求できるようにするスペース共有が含まれます。つまり、4 TB ディスクには 4 つの 4 TB ボリュームを作成でき、ボリュームの 1 つにより多くのスペースを割り当てるためにボリュームを再分割する必要が生じることなく、必要に応じて各ボリュームを拡張できます。これは、ディスク上の特定のディスク ボリュームで非常に大きなファイルを作成する必要がある仮想マシンのユーザー (または Boot Camp Windows ユーザー) に特に有益です。

もう 1 つの新機能であるクローンを使用すると、ストレージ容量を消費することなく、ファイルまたはディレクトリ全体を即座に「コピー」できます。これは、ドキュメントまたはワークフロー全体を「複製」し、各コピーに複数の独立した変更を加えるというアイデアをサポートします。変更は個別に保存されるため、並列プロジェクトの大部分を 1 つの元のコピーとして保存でき、無駄になるディスク領域を大幅に節約できます。

APFS は、ファイル システム レベル全体でクローンのように機能するスナップショットもサポートしています。特定の時点でのファイル システム全体の状態を保存し、新しい変更を個別に記録するため、システムはすべてを効率的にバックアップし、クリーン スレートのスナップショットにロールバックできます。これは教育やその他の共有システムに応用できるほか、ハード リンクを使用してバックアップ ポイントを保存する Apple の既存の Time Machine に比べて、より効率的で複雑ではないデバイスのバックアップ方法となります。

もう 1 つの新機能は高速ディレクトリ サイズ設定です。これにより、ファイル システムはフォルダーとそのすべてのコンテンツによって使用される容量を計算し、この数値を最新の状態に保つことができます。 HFS+ は、フォルダーの情報を取得するたびにこの情報を定期的に再計算する必要があります。これは、このデータをフォルダー ディレクトリ自体に単純に保存したり、この情報をファイル システム階層に浸透させることができないためです (子項目は親をロックできないため)。

Apple のプラットフォーム上の多くのファイルやアプリは、実際には単純にするために単一の項目として見せかけているコンテンツのディレクトリ (「バンドル」) であるため、APFS では、アップデートの保存時にプロセスが確実に安全に保存できるようにする Atomic Safe-Save と呼ばれる機能を導入しています。中断されると、項目が部分的に保存されます (破損する可能性があります)。このプロセスは、正常に完了するか完了しないかのどちらかですが、ステータスが不確実な分割状態にはならないため、「アトミック」です。

Apple File Systemの起源と進化

Apple が何年にもわたって HFS+ を拡張してきたことは注目に値します。 Apple がファイル システムの第一人者である Dominic Giampaolo を 2002 年に雇ったのは、同社がまだ大きなモバイル デバイス ビジネスを展開する前であり、Mac がクラシックな Mac OS 9 から新しい OS X に移行したばかりで、あと 4 年間は PowerPC ベースであり続けることになる時期でした。年。

BeOS ファイル タイプを使用すると、ユーザーは MIME タイプ、アイコン、アプリケーション バインディング、ファイル名拡張子および属性を設定できます。

ジャンパオロは、おそらく 1996 年に BeOS 用に設計された当時の高度なファイル システムである BeFS を開発したことで最もよく知られています (上)。これは、ユーザーがリレーショナル データベースのようにデータを迅速に検索できるように、システムがインデックスを作成できる拡張ファイル属性メタデータに大きく依存していました。現在、iTunes とフォトも同様に、アイテムのコレクションを並べ替えて検索しやすい方法で表示しています。

文字通りジャンパオロ本を書きましたファイルシステムの設計について。 Apple に入社後、彼はファイル システム ジャーナリングを HFS+ (Mac OS X 10.3 ではデフォルトでオンになっていた) に追加することに取り組み、その後、BeFS スタイルのインデックス付きメタデータ検索を Mac に導入する Spotlight プロジェクトを開始しました (この機能は初めて登場しました)。 2005年)。

ジャンパオロはまた、Time Machine とバックアップ用のワイヤレス Time Capsule 製品にも取り組み、初期の開発を支援しました。文書とデータ2011 年に iCloud が実装されました。

同氏はまた、「出荷されなかったファイルシステム」に関する作業についても言及し、Apple はこれとは別に、ZFS2009 年にこの取り組みを放棄するまで、Mac 上での開発が行われていました (これは明らかにライセンスの問題に関連していましたが、iPhone の突然の台頭も Apple の戦略を変えた可能性があります)。

Giampaolo は現在、ストレージおよびファイル システムのシニア ソフトウェア エンジニアとして、ファイル システム関連の機能を開発してきた数十年の経験を活かして、APFS に取り組んでいます。

来年導入されると、APFS は新しい新機能を有効にし、パフォーマンスと最新のストレージ システムの利用を最適化するだけでなく、将来的には新しいファイル システムの進歩を導入するための拡張可能なプラットフォームとしても機能します。