世界を動かす技術を、日本語で。

TIL: Appleが「Time Machine」を再びタホで壊した

概要

  • Time Machine のバックアップが 突然停止 し、通知もエラーもなし
  • macOSのSMB設定変更 が原因で、 Synology NAS との互換性問題発生
  • 設定修正 で一時対応可能だが、将来的な再発リスクあり
  • Proxmox+Docker による代替バックアップ案の検討
  • Appleの透明性不足とバグ への不満

Time Machineのバックアップ問題と原因

  • Obsidian vault のトラブルをきっかけに Time Machine から復元を試みるも、バックアップが 2ヶ月間停止 していた事実を発見
  • Synology NASSMB経由 でTime Machineターゲットとして長年利用、これまで問題なし
  • macOSのSMBデフォルト設定変更 (signing_required=no→yes)が原因で、 通知やエラーなし にバックアップが停止
  • バックアップ停止 は復元時まで気づかず、 データ損失リスク の顕在化

一時的な解決策:macOS側のSMB設定変更

  • Macの /etc/nsmb.conf ファイルを編集し、以下を追加
    • [default]
      • signing_required=yes
      • streams=yes
      • soft=yes
      • dir_cache_max_cnt=0
      • protocol_vers_map=6
      • mc_prefer_wired=yes
  • Appleの設定変更 により、 NAS側SMB設定 が合わない場合は手動対応が必須
  • .sparsebundle名非ASCII文字 が含まれていると認識エラーの可能性(今回は該当せず)

Synology NAS側のSMB推奨設定

  • コントロールパネル > ファイルサービス > SMB > 詳細設定 で以下を推奨
    • 最大SMBプロトコル: SMB3
    • Opportunistic Locking :有効
    • SMB2 Lease :有効
    • SMB Durable Handles :有効
    • Server signing :無効または自動
    • Transport encryption :無効
  • DSMのUIによって表記は異なるが、上記設定で 安定運用 可能

バックアップの今後とDockerによる新構成

  • Appleの度重なる仕様変更情報不足 により、 SMB依存のTime Machine 運用に限界
  • Proxmox+ZFS 環境に mbentley/timemachine Dockerイメージを利用し、 独自SMBサーバー 構築を検討
  • docker-compose例:
    • image: mbentley/timemachine:smb
    • container_name: timemachine
    • restart: always
    • network_mode: host
    • 環境変数(TM_USERNAME, PASSWORD等)
    • ZFSボリュームを /opt/timemachine にマウント
  • DockerソリューションSMB実装の柔軟性Synology依存回避 が可能

Appleへの要望と追加の不満

  • Time Machine は多くのユーザーにとって 重要なインフラ
  • Appleは 仕様変更の透明性通知改善 を強化すべき
  • iOS新端末の復元バグ (Restore in Progress 100MB問題)は 6年間未解決
  • Reset Network Settings や再起動で一時対応も、 根本解決されず
  • OS体験重視の開発体制 への改善を強く希望

Hackerたちの意見

macOSの年次アップデートは始まってからあまり良くなかったけど、Tahoeは新たな低さだね。Appleは本当に方向転換が必要だよ。

ハイシエラの頃から、次のメジャーリリースには8月までアップグレードしない習慣に変えた。その頃には、だいたい半ダースくらいパッチが当たってるからね。そう、基本的にいつも1年遅れだけど、新機能は必要ないし。

Tahoeにアップグレードしてから、Time Machineの問題を解決しようとしてるんだけど、USBバックアップなんだ。今のところ、最近の修正方法はどれも効果がない。新しくフォーマットしたディスクへの初回バックアップは実行されるけど、すごく遅い。100%に達するかもしれないけど、決して終わらない。どこかのタイミングでパーセンテージが変わって、バックアップは10%近くで止まったまま。バックアップをキャンセルして再実行すると、また10%くらいまで行って止まる。複数のドライブで試したし、再フォーマットもした。セーフモードで起動したり、ネットワークをオフにしたり、色々やったけど。TimeMachineMechanicアプリも特に役立つフィードバックはないし。同じディスクにフルtarバックアップはできるけど、原因は全く分からない。ネットワーク共有へのバックアップは試してないけど、こんなに難しいはずじゃないよね。明らかに、これを出すときに色々なエッジケースをテストしなかった人がいる。

もっと大きな疑問は、なぜTime Machineがバックアップにネットワークファイルシステムを使い続けるのかってことだよね。あれは脆弱すぎて信頼できない。最近はAPFSのおかげで少し良くなったかもしれないけど、それは単に災害の間隔が少し長くなっただけ(データが消えて再初期化されて、バックアップが全部失われる)。カスタムプロトコルを使ってブロックを保存・復元するT.M.も時々失敗するけど、既存のバックアップを全部ダメにすることはない。追記:私は毎日のバックアップにArqを使ってるけど、時間ごとはT.M.を使ってる。T.M.が最終的にストレージをダメにしたときには、クラウドにしっかりした日次バックアップがあるから心配ないよ。

そもそも、Time Machineがバックアップにネットワークファイルシステムを使い続ける理由は何なんだろう?問題は彼らが失敗することだよ。他の人気のバックアップソリューションはちゃんとできてるし、失敗を黙って隠すこともない。

そもそも、Time Machineがバックアップにネットワークファイルシステムを使い続ける理由は何なんだろう?何と比べて?ネットワーク上のドライブにバックアップできる必要がある時に?

外部からの意見だけど(Time Machineは使ったことない)、最初に思ったのはrsyncがローカルでもネットワーク越しでも素晴らしく動くってこと。ネットワーク越しだと何が問題になるのか全然想像できないよ。部分的な転送を再開できて、チェックサムを比較して一致を確認できるなら、何が問題なの?

SuperDuperの大ファンなんだ。[1] 毎日の差分バックアップをセカンダリSSDに使ってる。Time Machineの時間ごとのバックアップはないけど、SuperDuperのバックアップはシステムディスクが壊れたときに直接ブートできるから安心。cronとrsyncを使えば同じことができると思うけど、面倒だからやってない。[1] https://shirt-pocket.com/SuperDuper/SuperDuperDescription.ht...

これ、ずっと買うリストに入ってるんだ。多分買った方がいいと思う。内蔵のリカバリーインターフェースからの復元は問題ないけど、オフラインのブート可能なバックアップも素晴らしいよね。それに、Time Machineを「標準」のバックアップとして使うのにも干渉しないし。多分、毎月外付けディスクにブート可能なイメージをダンプするためのカレンダーの予定を設定できる。

Time Machineのような時間ごとのバックアップはないけど、SuperDuperのバックアップはシステムディスクが壊れたときに直接ブートできるんだ。まあ、Appleがアップデートでそれを壊さなければだけど。

Time Machineはなぜか高く評価されてるけど(ファイルを復元する時の豪華なスクロールインターフェースとか?)、実際には使えないよね。ネットワーク越しのバックアップが可能だと見せかけてるけど、ネットワーク上では完全に不安定で、数ヶ月後にはバックアップが壊れたって言って、最初からやり直さなきゃいけないって言われる。

わからないけど、私にはうまくいってる。極めて稀にノートパソコンを交換しなきゃいけないとき、ケーブルを繋いでネットワークのバックアップを指示するだけで、1時間後には「私のノートパソコン」に戻ってる。

ファイルを復元する時に見るあの fancy なスクロールインターフェースかな?それが好きな理由なんだ。視覚的な演出は確かに余計な部分もあるけど、タイムラインは本当にいいよね。gitみたいだけど、考えずに使えるのがいいんだ。(言っとくけど、gitの方がずっと優れてるけど、考えなきゃいけないから。)

ローカルシステムにバックアップする時は、めちゃくちゃ使いやすくて信頼性も高いよ。各バックアップ用に別々のスナップショットボリュームを作成して、Finderのインターフェースやおしゃれなスペースインターフェースでナビゲートできるんだ。ネットワーク越しのバックアップも可能で、数年間うまくいってるよ。

同意、SMBでの経験とまったく同じだね。最初はうまくいくけど、結局動かなくなって、削除して最初からやり直さなきゃいけなくなる。最終的には諦めたよ。

たぶん、これが一般ユーザー向けに実際にバックアップを取らせる数少ないバックアップソリューションの一つだからだと思う。USBドライブを差し込んで、プロンプトに「はい」をクリックするだけで終わり。欠点はあるけど、何もないよりはマシだし、通常はそういうトレードオフがあるよね。

Time Machineはなぜか高く評価されてるよね(ファイルを復元する時の豪華なスクロールインターフェースとか?)昔はTime Machineは信頼性があって、よく設計されてた時期があった。バックアップをみんながアクセスできる素敵な体験にしてくれた。もしあなたのTime Machineの経験が、現代の欠点だらけのバージョンだけなら、その人気が混乱を招くのも理解できる。

外付けSSDをUSBポートに直接接続して使ってるけど、100%問題なく動いてるし、何度か助けられたこともあるよ。でも、Tahoeはインストールしてない。完全にスキップするかもしれないけど、9月にSnow Leopardみたいなクリーンアップリリースを期待してる。

最終的にTMにうんざりして、Vorta経由でborgに切り替えたよ。こっちの方がずっと信頼性が高い。バックアップ中にネットワークから外れたときにエラーメッセージが出たことが何度かあったけど、そのたびにリポジトリは無事だった。

Time Machineを暗号化バックアップに設定すると、実際にはディレクトリツリーの中にギガバイトサイズのバイナリチャンクがたくさんある偽のディスクが作られる。これが安全なのは、ファイルシステムがシンボリックリンクや大文字小文字を区別しないUnicodeファイル名みたいな特別なことをサポートする必要がないから。唯一の欠点は、Mac以外のものに復元するのが面倒だってこと。

これ100%だね。実際、暗号化されたスパースバンドルを使う方が信頼性が高いって面白いよね。NASに簡単に移せるし、そこから復元しても全然問題なかった。もちろん、個人差はあるけどね。

TM用の暗号化されていないスパースバンドルも、TMがサポートしていないネットワークの場所で作成できるよ。

年間で何度もTime Machineのバックアップが壊れたから、結局rsyncでインクリメンタルバックアップのスクリプトを書いたんだ。今はずっと幸せだよ。[1]みたいなのがインスピレーションになるかも。 [1]: https://github.com/perfacilis/backup

Time Machineは全然信用してない。俺の主な防御手段は、ZFSを使ったサーバーにrsyncでバックアップして、毎時スナップショットと週ごとのオフサイトドライブのローテーションだ。ブータブルバックアップにはCarbon Copy Clonerを使ってる。

Carbon Copy Clonerに+1。超信頼性が高くて、サポートも充実してる。 https://bombich.com

TMからZFSへの+1 - ただしsamba越しにね。成功した切断ごとにZFSスナップショットを取ることで、たまに起こる破損も簡単にロールバックできるよ。それに、重要なファイルは毎晩ArcバックアップをB2に取ってる。

AppleのQAプロセスってどうなってるの?毎回のリリースで実行されるかどうかわからないランダムな手動テストに頼ってるの?世界で最も価値のある企業がテストに含めるべきと思われるものがたくさんあるのに、壊れたりそのままだったりするのが不思議。実験としてコンソールを開いて、エラーと故障だけをフィルターしてみて。システムの通常の動作を示す「エラー」が何十個も、何百個も流れてくるよ。(本当にエラーじゃないのか、誰も気にしてないのか、あるいは本当にエラーでAppleがそのまま放置してるのか。)これがOKだと思える人がいるのが不思議。私はTahoeにアップグレードしてない。20年以上Macのパワーユーザーだけど、毎回のリリースがどんどん興味を失わせてる。Unixやスクリプト機能、サードパーティのアプリケーションを求めて来たのに、Unixは後回し、スクリプト機能はすべてセキュリティゲートの向こう側にあって、現代のアプリはすごく大きな後退に見える。

AppleのQAプロセスってどうなってるの?「これでiCloudのサブスクリプションが増えるかどうか?」

MacOSのQAがなかった時期に、誰かがそのことについて話せたかもしれない。あの時は驚きだったけど、今は驚かない。

数年前、同僚がMacOSの最も目立つ機能の一つのチームに参加したんだけど、自動テストが全くなかったって言ってた。

ほとんどのmacOSチームはユニットテストをやってるけど、その品質はかなりバラバラだね。

彼らは主にAppleだけの環境でテストしてると思う。サードパーティのものだと、運が良ければ動くかもしれないけど、保証はないよ…サードパーティのモニターやキーボード、マウス(マウスって何?)とか、SMBデバイスとかね。

NASに対してTime Machineは絶対におすすめしないよ。今日の記事でも「すごく良いけど、必ず壊れるから注意」って書いたし。俺にとって信頼できるのは、MacからS3互換のボリューム(minio)にバックアップするKopiaだね、Synologyで使ってる。