サーバー再構築

週末に、Webとメールを動かしているサーバVMが飛んでしまい、復旧に苦労したので作業メモを残す。

状況:ホストOSの強制再起動に巻き込まれて仮想マシンの仮想ディスクが損傷。 VMDKとしては修復ツールで異常ないたため、APFSとしての損傷したようだ。 OS起動時に駐車禁止マークが表示されてOSボリュームがないとなった。

やったこと:

1..仮想ディスクを別のmacOSの仮想マシンにに共有させて、そちらのOSからディスクユーティリティでボリューム修復を実施。invalid o_xidとか、invalid map objectとかでて修復出来ないとのこと。ここでディスクの普及はあきらめてOSの再インストールを決意。TImeMachineバックアップは障害直前までとれているので簡単に戻るだろうと思ってた。

2. macOS High SIerraのインストールアプリからVMを構築し直してTImeMachineからの復旧を行う。OSをバックアップから直接復旧はAPSFブートが出来ないのでだめだった。 構築中のデータ移行ステップでTImeCapsuleを選択しても一向にバックアップリストが現れず困惑。仕方がないのでOSインストール後に移行ツールを使ってみる。 こちらもTimeCapsuleは認識するけどバックアップリストでず。 おそらくネットワーク越しがまずいのかといったんバックアップデータを外付けHDDに写してそこから移行してみることにする。

3. AppleのナレッジのTimeMachineデータの移行手順をみてデータの移行を実施。ボリュームの権限設定を間違えたのかコピー中にエラーがでて何回かやり直しをした。 新しいOSに外付けHDDをつないで見たけどバックアップリストの状態は相変わらず。いろいろネットで調べて、HDD上のsparsebundleファイルをマウントすればうまくいくことを発見。やっとデータの移行を実施。

4. データ移行後、サーバ設定を見るとIMAPのデータツリーや、Webのコンテンツが戻って無いことを発見。 これまでサーバ移行時はOS->OSで移行ツール使っていたのでデータ引き継げたのかな。TimeMachineは初めてなんで、これでもかとトラブルね。サーバアプリのデータツリーとかはアプリ起動後に作られるようなんで、なんか移行の順番のせいかなと思いいろいろやってみるけど結局だめ。移行ツールでのサーバアプリのTimeMachineデータ移行は断念。

5. 外付けHDDのTimeMachineバックアップから直接データを取り出すことを考えた。 TimeMachineアプリから他のマシンバックアップからファイルを取り出す機能があったので、その方法でデータの復旧にチャレンジ。こちらもHDDのままではバックアップをきちんと認識しないようなので、sparsebundleファイルをマウントして実行。ドック上のTimeMachineアプリをctrl+クリックして他のTimeMachineバックアップをブラウズを選んで実行。

6. とりあえずメールはごそっと復旧ができた。カレンダーはファイルを戻してから、データDBで管理されることに気がついた。DBデータを戻すのはあきらめて、他のMacにローカルキャッシュされていたデータをエクスポートして登録し直しをした。WebコンテンツはWordPressなんで静的データは戻せたけど、DBはどうしようかと思ったけど、OS状態をよく見たら、自分で構築したmysqlはデータごと移行が出来ていた様でプロセスも既に実行状態になっていた。Webのデータを戻してページアクセスしたら普通に使えた。一番面倒だと思っていたものが、さらっと復旧した。

木曜の朝にクラッシュして日曜の深夜に復旧した。転ばぬ先のバックアップだけど復旧手順もちゃんと練習しておかないとな。