VM 実行中の KVM 仮想クローン

VM 実行中の KVM 仮想クローン

virt-clone などのツールを使用せずに、実行中の kvm マシンを複製することは可能ですか?

すでに元の VM が本番環境で稼働しているので、シャットダウンできません。クローン上の一時的なデータ破損 (最初の fsck で修正可能) を気にしない場合は、qcow イメージ ファイルを新しい名前に cp し、そのディスクを使用する新しい VM 定義を作成して、マシンを起動するだけでよいのでしょうか?

答え1

メモリ内のデータを気にしない場合は、バッキングデバイスのスナップショットを作成し、そのスナップショットのコピーを作成できます。

もちろん、これにはスナップショットをサポートするストレージ プールが必要です (BTRFS は仮想マシンのストレージとしては非常に遅いため、主に LVM または ZFS)。

答え2

私はそう思うのみvirt-clone の使用を避けてディスクのクローンを作成することもできます。これは、(すでに述べたように) virt-clone は実行中の VM では動作しないためです。したがって、実際のディスク イメージのコピーを作成するには、別の方法を使用する必要があります。

基本的な答えは、試してみて運が良ければいい、ということだと思います。

ゲストの構成の「スナップショット」を取得するのは簡単です (virsh dumpxml NAMEがそれを実行します)。 複数のディスクがある場合 (つまり、OS ディスクと n+1 のデータ ディスクがある場合)、OS ディスクのクローン作成を避け、代わりに新規インストールを使用できるかどうかを確認します。

しかし、もしどれでもディスク イメージをコピーする以外の方法があれば、おそらくその方法のほうが好ましいでしょう。たとえば、これがすべてデータベース サーバーに関係する場合、インスタンス間でデータを安全にコピーするには、データベース独自の機能を使用するでしょう。ファイル システムを直接処理する場合は、DRBD のようなものが役立つかどうか、または rsync のような単純なものが役立つかどうかを調べる価値があるかもしれません。

基本的に、実際に何をする必要があるかを慎重に検討し、使用中のディスク イメージをコピーしようとするような作業に時間を費やさないようにしてください (コピーがどのように見えるかという問題は別として、ディスクをコピーしようとすると元のディスクにどのような影響が及ぶかについては懸念があります)。

答え3

動作中のVMがありました。その中で、KVMベースマシンにsshで接続し、そのバックアップディスクとスナップショットをnvmeドライブにコピーしましたcp -ar。また、コピーする前に前述のnvmeをフォーマットしてパーティション分割しました...その後、

virsh edit mykvm 

ID とディスクの場所と名前を変更しました...

マシンをシャットダウンして、新しいマシンを再起動しました。消えたのは開いているウィンドウと Chrome セッションだけです...

システム ファイルまたはアプリケーション ファイルを書き込んでいない限り、動作しているようです...

もちろん、私はこれを使用しません。実験し、実験後に結果を元のファイルに実装します。

ただし、これをメインの OS スナップショットとして使用する必要がある場合は、ファイルシステムのチェックを実行してからシステム ファイルのチェック (sha1sum) を実行するか、組み込みのコマンドを使用してシステム ファイルをチェックします。

答え4

これは RAW ディスク イメージ形式では完全に実行可能です。qcow2 についてはわかりません...

Debian.img: x86 ブート セクター。パーティション 1: ID=0x83、アクティブ、開始ヘッド 32、開始セクター 2048、497664 セクター。パーティション 2: ID=0x5、開始ヘッド 59、開始セクター 501758、104353794 セクター、コード オフセット 0x63

Debian2.img: x86 ブート セクター。パーティション 1: ID=0x83、アクティブ、開始ヘッド 32、開始セクター 2048、497664 セクター。パーティション 2: ID=0x5、開始ヘッド 59、開始セクター 501758、104353794 セクター、コード オフセット 0x63

テストのために、実行中の Linux Mint システムをコピーしました。次に、新しいイメージで新しい VM を作成しましたが、起動時にファイル システムの不整合も発生しませんでした。これは小さなデスクトップ VM でしたが、私が「クローン」しようとしていたのは、データベースで高い I/O を実行する、稼働中の LAMP サーバーです。

矛盾については特に気にしていません。LAMP 環境をリセットする時間を節約したかっただけです。最初にベース イメージを作成したり、最初の Web サーバーのスナップショットを作成したりするのは良いアイデアだったと思いますが、完全に構成およびテストした後では遅すぎました。すぐに本番環境で使用し始めました。

関連情報