IDチームの前田です。検証目的で気軽に開発用ツールを導入したら、社内全バックアップを止めてしまったという知見共有になります。
三行まとめ
- 検証目的でDocker Desktop for Macの代替ツールOrbStackに導入
- OrbStackが8TBのスパースファイルを生成。スパースファイルのバックアップが実行され全社で利用しているバックアップシステムが容量不足で停止
- 各種バックアップツールのバックアップ対象から
.orbstack
を除外する設定を入れましょう
OrbStackとは
Docker Desktop for Macの代替ツールで、macOS 上で Linux VM を扱うことができるアプリケーションになります。実際に私も1週間ほど検証で利用して、非常に軽快に動作し、CPUやメモリリソースの消費が少ないため、気に入って使っております。
ある日突然、社内バックアップが残容量不足で停止
社内で導入しているバックアップサービスDruvaが容量不足でエラーになっていることが判明。
Boxも利用しているので、各人のローカルマシン上には業務データは存在せずディスク使用率も非常に低いはずが、Druvaの管理コンソールで使用状況を確認すると2023日6月20日ごろから急激にバックアップ容量の増加が。
バックアップ領域を消費しているユーザの調査
こちらもDruvaの管理画面で確認が出来るので、ユーザ一覧を確認。
「犯人誰だよ!」と思っていたら私だったのでスライディング土下座。
ローカルでの原因調査
日付が私がOrbStackを導入した頃だったのでなんとなく検討はついていたのと、業務でMacbook Pro ストレージサイズ250GBを利用しており、8TB消費している時点で、これはスパースファイルだなぁーとうっすら想像がついていましたが、原因調査を開始。(過去にトラブル調査でLinux上のスパースファイルの調査もしたことがあり予想がつきました)
早速find(1)で原因となっているファイルを調査
find $HOME -size +1000M | xargs ls -l | sort -rn
予想通りOrbStack関連で原因となっているファイルを発見。
こちらのファイルは消しても、OrbStackを再起動すると再度生成されてしまうのと、OrbStack側からは現状サイズ変更などが出来ません
-rw-r--r--@ 1 akira staff 8796093022208 Jul 3 13:09 /Users/akira/.orbstack/data/data.img
ちなみにこちらはGithub Issueでも報告がされていました
- Impossibly large file at ~/.orbstack/data/data.img · Issue #29 · orbstack/orbstack
- .orbstack in the TimeMachine backup show its size 8TB, The consequence is ‘no available space to restore’ · Issue #220 · orbstack/orbstack
ちなみにスパースファイルとは
計算機科学において、スパースファイル(英語: sparse file)とはファイルの一種で、部分的に空のファイルを実際のファイルシステム上で少ない消費容量で効率的に保存する仕組みである。これは、空の領域を実際にディスク上に書き込む代わりに、メタデータと呼ばれる空の領域であることを示す小さな情報を書きこむことで実現される。
スパースファイル – Wikipedia
実際には容量を消費してませんが、見かけ上は大きなサイズのファイルなので、この種の問題がよく発生します。ディスク容量監視のアラートが出て調べたらスパースファイルだったということが過去に何回も。
暫定対応
上記GitHub Issueで言及されていますが、バックアップの対象から .orbstack
ディレクトリを除外することで暫定対策が出来ます。
当社の場合Druvaの管理と設定は、社内の情シス部門が中央管理をしていますので、情シス部門に依頼をしてバックアップ対象から除外をしてもらって対策済。
こちらの事象はDruvaだけでなく、macOSのバックアップ機能であるTime Machineや他のバックアップツールでも同様の事象が発生するようなので同じようにバックアップ対象からの除外設定をいれておきましょう。