2017.01.23
OSの深層部分、知れば知るほど奥深い、macOSの仕組みを解き明かす。
SSDにやさしいAPFS
先月号で掲載した前編では、現在Macで使われているファイルシステム「HFS+」が、新しいファイルシステム「APFS(Apple File System)」へと切り替わること、また、なぜ切り替わらねばならないのかを説明しました。今回は、APFSが主流になったとき、どうMacが変わっていくのかを解説していきます。
まずAPFSでは、SSDをはじめとするフラッシュストレージに対しての最適化が行われると謳われています。HFS+はHDDなどのディスクストレージに対して最適化されていましたが、APFSは高速アクセスやムダな書き込みを減らすことで、フラッシュストレージの寿命を延ばすよう設計されています。
また、ファイルシステムの中で行う処理を減らし、機敏に動作する「低遅延」なデザインなのもポイントです。そのため高速アクセスを減らしても、ストレージの性能にデメリットはなく、逆に処理は速くなるでしょう。
HFS+は、その拡張性の高さから20年もの永きにわたって第一線で活躍できました。APFSも同様に高い拡張性を持っているので、今後のmacOSやiOS、 tvOS、ウォッチOSのすべてで使えるようになっています。
加えて、フォルダサイズの計算が速くなるのもAPFSならでは。HFS+では、フォルダ自身のファイルサイズを記録していませんでした。そのため、ファインダでフォルダのサイズを参照するたびに毎回フォルダ内のファイルサイズを計算する必要があり、時間がかかっていました。
APFSでは、フォルダサイズを一瞬で表示することができます。細かい仕組みは説明されていませんが、おそらくファイルシステムにある程度の計算結果を記録しておき、すぐに表示できるように準備しているものと予想されます。
クローンとスナップショット
APFSのユニークな機能の1つが「クローン」です。これは、ストレージ上の既存のファイルとまったく同じ内容のファイル(クローン)を即座に作り出すという機能です。普通のコピーとの違いは、クローンとオリジナルのファイルは、ストレージ上のデータを共有しているというところ。ファイルをコピーする場合は、ファイルのすべてを読み取って別のスペースに書き出さなくてはならず時間がかかりますが、クローンはただ「共有している」とマークするだけなので、一瞬で作成が完了するのです。
ではオリジナル、もしくはクローンの内容を変更したらどうなるでしょう? そのとき、APFSは「書き換えられるデータのあるブロック」だけを別にコピーして書き換えを行います。書き換えられたファイルはコピーされたブロックを参照し、書き換えられなかったほうのファイルは元々のブロックを参照します。このように、「書き込む瞬間に書き込み部分だけをコピーして書き換えを行う」ことを「コピーオンライト(書き込み時コピー)」と呼びます。