仮想マシンへの書き込みがどのように行われるかを理解しようとしています。バックアップ用にコピーしながら実行するのはブロックされないようです。コピーに変更されたファイル(開始ログなど)が含まれていますか?それとも、Windowsなどの「シャドウコピー」からコピーするのですか?
たとえば、仮想マシンの電源が入っている間にレプリケーションを開始すると、何が起こるかについて反対の質問をすることができます。メカニズムが似ていると思います。コピー中に変更があると、コピーされたファイルも変更されますか?私の現在の推測では、コピーされていないファイルが変更された場合にのみ発生します。この方法でコピーされたVMをテストしましたが、目に見える破損はありませんでしたが、他のタスクを実行するためにコピーされた他のファイルに依存してファイルが変更された場合、ファイルが破損する可能性があると想像できます。
したがって、避けられない質問は、仮想マシンの実行中に変更されますが、積極的に使用されていないこれらのファイルはありますか? apt Upgradeを実行するのは悪い考えだと思うかもしれませんが、VMがオンになってアイドル状態で実行されたときにリスクがほとんどなくバックアップを実行できるかどうか疑問に思います。
私はvirt-managerを使用していますが、VMホストソフトウェアよりも画像ファイル形式(qcow2またはraw)に応じて答えが大きく左右されるようです。また、qcow2がこれに関連して、生の画像に比べて長所や短所があるかどうかを知りたいです。
答え1
一貫性のないファイルシステムの状態が表示されますが、QCOW2ディスクイメージを使用するソリューションがあります。qemu-ga
最初のステップでディスク(通常はプリインストール)をクリーンアップするには、ゲストオペレーティングシステムでQEMUゲストエージェント()サービスを実行します。
ゲストディスクをクリーンアップして起動できます(オプション)。
virsh domfstrim $vmname
バックアップ中にディスクを書き込むための一時スナップショットが作成されます。
virsh snapshot-create-as $vmname --no-metadata $snapname --disk-only --quiesce --atomic
を使用することもできます
--diskspec
。望むよりman virsh
。バックアップ用のソースQCOW2ディスクイメージをコピーします(書き込みは一時ディスクイメージ$ snapnameに書き込まれます)。
バックアップが完了したら、一時ディスクイメージをコミットします。
virsh blockcommit $vmname vda --wait --active --pivot --delete
あるいは、
--delete
まだ実装されておらず、一時ディスクイメージがまだ存在する場合です。virsh blockcommit $vmname vda --wait --active --pivot rm /var/lib/libvirt/images/<diskimage>.$snapname
保管の種類に応じて交換してください
vda
。sda