2017.12.18
OSの深層部分、知れば知るほど奥深い、macOSの仕組みを解き明かす。
フュージョンドライブのおさらい
フュージョンドライブ(Fusion Drive)とは、SSDとHDDを組み合わせることで、SSDの「性能」とHDDの「低コストで大容量」という利点を両立させるアップルのストレージ技術です。フュージョンドライブではSSDとHDDを連結し、1つのドライブのように扱えます。ファイルごとの利用頻度を見てよく使われるファイルはSSDに、あまり使われないファイルはHDDへと適切に配置していきます。よく読むファイルはSSDの上なので高速に読み出せます。
書き込みについても一工夫あります。SSD側には常に4GB程度の空き領域が確保されており、新しいデータはこの空き領域に書き込まれるので高速です。その後、アイドル時に裏でゆっくりHDDへ移動され、次の書き込みに備えます。
こうした工夫で、体感的にはSSDの速さを保ちつつ、1TB、2TB、3TBといった大容量を、HDDのコストで実現するのが、フュージョンドライブです。
このフュージョンドライブは、macOSの持つコアストレージ(CoreStorage)という機能が実現しています。これは一般的なIT用語では論理ボリュームマネージャ(LVM)と呼ばれ、実際のディスクの割り当てと、論理的なボリュームを分離、それぞれを別個管理することで柔軟性を実現する仕組みとなります。
LVMがあると、HDD2本を束ねて1本のディスクに見せかけたり(JBOD)、2本のディスクそれぞれに同じデータを書くことで1本のディスクが壊れてもデータが失われないようにしたり(RAID 1、ミラーリング)などが簡単に実現できます。
コアストレージは、フュージョンドライブだけでなく、ファイルボルト(FileVault2)でも使われています。ソフトは普通にファイルを書き出すのですが、ドライブに書き込む手前でLVMが暗号化し、たとえSSDやHDDを抜き取って別のマシンにつないでも解読できないようにしてくれます。
これまでのmacOSでは、ファイルシステム(HFS+)とLVM(コアストレージ)で役割をうまく分け合うことで、開発が楽になり新機能の追加や性能向上がやりやすくなっていました。