ファイルシステムへの関心
- 筆者は1984年のMacintoshでファイルシステムに関心を持ち始めた。
- AppleがBe Inc.を買収する可能性があった当時、Be File Systemに大きな期待を寄せていたが、最終的にはNeXTを買収してMac OS Xを開発した。
- 2017年のWWDCで、AppleはmacOS向けのApple File System(APFS)を発表した。
APFSの主な機能
- APFSはHFS+より大きく進化したファイルシステムである。
- 主な機能として、ポイントインタイムスナップショットとコピーオンライトクローンがある。
- スナップショットは、Time Machineバックアップをより信頼性が高く効率的なものにしてくれる。
- クローンファイルは元のファイルとデータを共有するため、Finderでのファイル複製が即座に行われる。
ディスク容量節約のアイデア
- 筆者はAPFSのクローンファイルを活用して、ディスク容量を節約できる方法を考えた。
- 同一内容のファイルをクローンに変換することで、ディスク容量を節約できることを発見した。
- Perlスクリプトを使ってディスク容量節約の可能性をテストし、かなりの容量を節約できた。
Hyperspaceアプリの開発
- 筆者はディスク容量を節約できるアプリを開発することを決意した。
- Hyperspaceという名前のアプリを開発し、Mac App Storeで公開した。
- Hyperspaceは無料でダウンロードできるが、容量節約機能を使うには有料の支払いが必要である。
開発経験と技術
- HyperspaceはSwiftUIとSwift 6を使って開発された。
- Swift 6を初期段階から使って開発したほうが簡単だったと述べている。
- このアプリはファイルを変更するためリスクはあるが、多くのユーザーにとって有用だと期待している。
1件のコメント
Hacker Newsのコメント
ダウンロードして実行してみたところ、"900"個のファイルを整理できると表示された。要約や一覧はなかった。しかし、アプリを購入するよう求められた。役に立つかどうか分からないのに、なぜ買わなければならないのか疑問だ
Hyperspaceには、他のすべてのアプリケーションやmacOSと連携して、ファイルを安全に置き換えるタイミングを調整する方法がない。なぜファイルシステム自体がバックグラウンドで重複排除プロセスを実行しないのか気になる。APFS内で自動的にこれを行うことの欠点は何なのだろうか
無料でスキャンして、得になるかどうか確認したうえで、実際の結果に対して料金を支払うモデルが気に入っている。私もファイルをたくさん保存するほうだが、7GBを回収できた。自分にとっては大きな利益ではないが、こういう機能が存在することに感謝している
dedupというコマンドラインユーティリティを作って、同じことができるようにした。ドライランモードがあり、最適なクローン元を"賢く"選び、ハードリンクやその他のクローンを理解し、メタデータを保持し、HFS圧縮ファイルも適切に扱う。これまで自分のデータを壊したことはないが、あらゆるファイルシステムツールと同様、使用には注意が必要だWWDC 2017でAppleはmacOS向けのApple File System(APFS)を発表した。以前、iOS 10.xアップデートの一環として、すべてのiPhoneをひそかにAPFSへ変換したあと、再びHFS+へ戻したことがあった。ファイルシステムの変更をどうやって巻き戻せたのか気になる
2つのファイルが同一かどうかを確認するのに、どんなアルゴリズムを使っているのか気になる。ハッシュ、ビット単位の比較など、さまざまなアルゴリズムがあるが、これらの技術には欠点がある。大量のファイルに対して最良の方法は何だろうか
ファイルAが2か所にあるとき、このツールを実行すると、A_0を修正したらA_1も修正されるのか、それともA_0の新しい状態だけが反映されてA_1はそのままなのか気になる
NodeJSプロジェクトの大きなフォルダで試したが、8.1GBのフォルダで1GBの節約しか見つからなかった。ユーザーのホームフォルダを含めて再度試したが、1.3GBの節約しか得られなかった。システムとライブラリもスキャンしようとしたが、権限の問題で拒否された。パッケージマネージャーとしてpnpmを使っているので、ディスク使用量はすでに最適化されているようだ。良いアイデアだが、現時点の価格は高すぎて正当化しにくい。月1回のバックグラウンドプロセスとして実行されるとよいと思う
Hyperspaceは少し説明しにくいアプリだ。ドキュメントで長々と説明しようとしていた。Macエコシステムにとって有用な追加機能になることを願っている。ただ、"ファイル重複排除ツール"というシンプルな説明で十分に伝わるはずだ
Windowsには"Dev Drive"という似たような"copy-on-write"機能がある。うまく動くなら、デフォルトになっていてもいいのではないかと思う