Vmware ESXi でデルタファイル (ディスク) に復元するにはどうすればいいですか?

Vmware ESXi でデルタファイル (ディスク) に復元するにはどうすればいいですか?

VMware Server ESXi (無料版) の使用

仮想マシン (win 2k3 r2 サーバー) があります。最初にプロビジョニングしたときに、スナップショットを取得しました。最近、Windows ディスクを拡張するために、標準的なハードウェアベースの方法を使用してプライマリ ドライブをクローン化しようとしました (knoppix を使用して、ドライブを新しいドライブにクローン化し、起動可能にしてから、Windows 内から diskpart を介してパーティションを拡張するつもりでした)。このプロセスは失敗しました。クローン ドライブ (vmware gui 経由) を元のドライブと置き換えて起動し、完了するように設定しようとしました。これはうまくいきませんでした。マシンは起動しませんでした。起動順序、ディスクの場所、および通常行うすべての基本事項を確認しました。

安全策として、すべての設定を元に戻して、マシンが元のドライブから起動するようにし、ディスクを拡張するより良い方法を見つけようとしました (最終的に見つけました)。しかし、元のドライブでマシンの電源を入れると、作成した最初のスナップショットに戻り、それ以降のすべての変更が失われました。

ファイル システムを調べていくつかのファイルを見つけました。ここのキーファイルは「delta」という名前のファイルだと思います。これが必要なディスクだと想定していますが、仮想マシンで実際にそのドライブ/ファイルを使用する方法が見つかりません。既存のドライブを追加しようとしても、追加できません。

何らかの方法でそのデルタを元のドライブにコミットし、そこから再度起動する必要がありますか? 正しい方向を示してもらえますか?

その後、「vmkfstools」を使用してドライブを拡張する適切な方法を発見しましたが、これを試すにはマシンを元の状態に戻す必要があります。ご協力いただければ幸いです。

答え1

運が悪かったかもしれませんが、バックアップがない場合は、構造化されたアプローチを取るのは大変な作業になるかもしれません。

VM の電源をオフにした状態で、VM フォルダー内のすべてのファイルのコピーを作成し、安全な場所に保管します。ファイルは破損している可能性がありますが、最初からやり直す場合に備えて完全なコピーを用意しておく必要があります。

SSH シェルまたは SCP ユーティリティ (Windows を使用している場合は、Veeam FastSCP または Tunnellier が便利です) を使用して、VM フォルダーを見つけ、.vmdk 拡張子を持つすべてのファイルを探します。ベース ディスク用に 2 つ (VMname1.vmdk という小さな記述子ファイルと、実際のディスク データを含む VMname1-flat.vmdk というかなり大きなファイル) があり、スナップショット デルタごとに同様のペア (VMname1-00001.vmdk という小さな記述子ファイルと、このスナップショットの有効期間中にベース ディスクに加えられた変更を含む VMname1-00001-delta.vmdk という大きなファイル) があります。これらは、VM 上のすべてのアクティブなスナップショットに関するすべてのメタデータを含むスナップショット管理ファイル (VMname.vmsd ファイル) でも参照されます。仮想マシン自体のすべての設定は .VMX ファイルに保存されており、その中には (重要な) ディスクの現在アクティブな VMDK の場所への参照も含まれます。これは最新のスナップショット デルタを指します。

次に、VMware は内部 ID (CID と呼ばれる) と記述子 VMDK 内の ParentFileNameHint と呼ばれるパラメータを使用して、ベースディスクに到達するまで各デルタをその親 (それ自体がデルタである可能性があります) に再帰的にリンクします。デルタ自体は完全なディスクではないため、機能するには親の未変更のコピーにリンクする必要があります。親ファイルが変更されている場合は、ほぼ確実に運が悪くなります。

デルタ ファイルとそれに関連する記述子を手動で移動して、失われたものを修正できますが、これはベース ディスクまたは中間デルタに変更が加えられていない場合にのみ機能します。記述子ファイルはすべてテキスト エディターで編集できます。

これを理解したら、次の文章を読んでください。SANBarrow の CID チェーン修理ガイドそれは、縫い合わせることが可能であれば、どうやって縫い合わせるかを考えるのに役立ちます。

最後に、スナップショットをバックアップとして使用しないでください。スナップショットはその目的には適しておらず、アクティブなときに大幅な追加の IO オーバーヘッドが発生します。

答え2

通常、デルタ ファイルは、ディスクを複製するとき、またはクローン作成時に作成されるファイルです。デルタは、コピー中に電源がオフになっていないライブ VM に加えられたすべての変更を保存する 1 回限りのファイルです。クローン、複製などを終了すると、デルタ (変更) がライブ VM に書き戻されます。デルタは + 変更であるため、デルタに戻すことはできないと思います。

補足: vmkfstools を使用してディスクを拡張することについても言及していますが、これは非ダイナミック ディスクでは機能しません。diskpart および/または vmkfstools はダイナミック プライマリでのみ機能すると確信しています。新しいディスクを作成してシステムに追加できる場合。

答え3

VMwareスナップショットは、スナップショットを撮った瞬間からディスクへのすべての変更を新しいファイル(デルタファイル)に書き込むことによって機能します。スナップショットに戻ると、システムはデルタを削除し、バム、スナップショット前の時点に戻ります。スナップショットを削除すると、システムはすべての変更を元のファイルにマージしますが、スナップショットをかなり前に作成した場合は、時間がかかることがあります。

質問では、ホスト上のファイルに何を行ったかが特に明確ではありませんが、システムがすでにスナップショットを元に戻したように思われるので、ホストは VM にスナップショットがあるとは考えていないため、おそらく運が悪いでしょう。ただし、私が試す方法は次のとおりです。

  1. スナップショットに依存しないバックアップを作成するポリシーを実装します。
  2. VM の電源をオフにします。
  3. すべてのファイルを安全な場所にコピーします。
  4. スナップショットを削除してみてください。
  5. 何が起こるか見てみましょう。ステップ 3 で期待どおりの結果が出なかった場合は、ステップ 5 に進みます。
  6. 新しいスナップショットを撮ります。
  7. 手順 5 で作成されたデルタ ファイルの上に、バックアップからすべてのデルタ ファイルをコピーします。
  8. 何が起こるか見てみましょう。ステップ 6 で期待どおりの結果が出なかった場合は、運命を受け入れ、失ったものを回復する努力を始めましょう。

幸運を祈ります、 --jed

関連情報