元の VM をバックアップ:

元の VM をバックアップ:

ストレージ デバイスは次のようにマウントされています。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/md2        193G   35G  148G  19% /
/dev/md4        492G   73M  466G   1% /mnt

私のKVMイメージは/kvm/vhdd/パーティション上のにあります/dev/md2

ls -l /kvm/vhdd/wwe.img
-rw------- 1 libvirt-qemu kvm 163611607040 Mar  9 09:12 /kvm/vhdd/wwe.img

/dev/md4このイメージ パーティション、つまりディレクトリを移動する必要があります/mnt

どうすればいいですか?仮想マシンを停止できます。しかし、停止した後は何をすればいいですか? 単に作成するだけですかcp?それとも構成を編集する必要がありますか?私は

grep -R "/kvm" /etc/
/etc/libvirt/qemu.conf:#    "/dev/ptmx", "/dev/kvm", "/dev/kqemu",
/etc/libvirt/storage/autostart/iso.xml:    <path>/kvm/iso</path>
/etc/libvirt/storage/autostart/vhdd.xml:    <path>/kvm/vhdd</path>
/etc/libvirt/storage/iso.xml:    <path>/kvm/iso</path>
/etc/libvirt/storage/vhdd.xml:    <path>/kvm/vhdd</path>
/etc/libvirt/qemu/wwe.xml:    <emulator>/usr/bin/kvm-spice</emulator>
/etc/libvirt/qemu/wwe.xml:      <source file='/kvm/vhdd/wwe.img'/>
/etc/libvirt/qemu/autostart/wwe.xml:    <emulator>/usr/bin/kvm-spice</emulator>
/etc/libvirt/qemu/autostart/wwe.xml:      <source file='/kvm/vhdd/wwe.img'/>
/etc/default/libvirtd:# Start libvirtd to handle qemu/kvm:
/etc/default/qemu-kvm:# /run/hugepages/kvm
/etc/apparmor.d/libvirt/libvirt-68d2ecf6-4569-49cc-871f-042a42ad1c03.files:  "/kvm/vhdd/wwe.img" rwk,

/kvm/vhdd/構成でこのパスを置き換える必要がありますか? 助けてください。サービスがクラッシュするのではないかと心配です。よろしくお願いします。

答え1

元の VM をバックアップ:

  1. ヴァーシュがWWEを閉鎖
  2. virsh リスト --all
  3. /etc/libvirt/qemu/wwe.xml をコピー /etc/libvirt/qemu/orig-wwe.xml
  4. cp /kvm/vhdd/wwe.img /kvm/vhdd/orig-wwe.img

VM イメージをパーティション /mnt/kvm に移動します。

  1. mkdir /mnt/kvm

  2. mv /kvm/vhdd/wwe.img /mnt/kvm/wwe.img

  3. XML ファイルを編集: vim /etc/libvirt/qemu/wwe.xml

    From: <source file='/kvm/vhdd/wwe.img'/>
    
    To: <source file='/mnt/kvm/wwe.img'/>
    
  4. ヴァーシュがWWEを始める

注記:元のファイルを使用していつでも元の状態に復元できますが、以下は KVM インフラで VM を複製および移動するために使用される別の方法です。



KVM - 利用可能なイメージからゲストを複製:

1-ベースVMを作成してOSをインストールし、ベースVMをシャットダウンします

virsh shutdown basevm

2- XMLファイルをtemplate.xmlにダンプし、そのイメージをtemplate.qcow2にコピーします。

virsh dumpxml basevm > /etc/libvirt/qemu/template.xml
cp /home/kvm/images/basevm.qcow2 /home/kvm/images/template.qcow2

3- template.xmlでディスクソースファイルをtemplate.qcow2に指定します。

<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2' cache='none'/>
  <source file='/home/kvm/images/template.qcow2'/>
  <target dev='vda' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>

4- template.qcow2 で virt-sysprep を実行してイメージをリセットします。たとえば、SSH キーの削除、新しい MAC アドレスの作成、ログ ファイルのクリーンアップなどを行います。

virt-sysprep -a /home/kvm/images/template.qcow2

5- この時点以降、ベース VM は不要になります。使用していない場合は削除してください。

virsh undefine basevm
rm /home/kvm/images/basevm.qcow2

6- テンプレートから新しい VM を複製する: template.xml および template.qcow2

virt-clone --connect qemu:///system --original-xml /etc/libvirt/qemu/template.xml --name server --file /home/kvm/images/template.qcow2

KVM - ゲストを別のホストに移動する:

1- 上記の手順の後、xml とイメージ ファイルを新しいホスト KVM に転送します。

scp /etc/libvirt/qemu/template.xml kvm02:/etc/libvirt/qemu/template.xml
scp /home/kvm/images/template.qcow2 kvm02:/home/kvm/images/template.qcow2

virt-sysprep -a /home/kvm/images/template.qcow2
virsh define /etc/libvirt/qemu/template.xml
virsh start vm

答え2

私の理解では、/kvm/vhdd/wwe.img を /mnt 内のどこか (たとえば /mnt/kvm/vhdd/wwe.img ) に移動する必要があるということでしょうか?

もしそうなら、私はこうします:

  • 仮想マシンを停止し(VM自体のpoweroffまたはその他のコマンドを使用)、virt-manager(またはvirsh)で停止状態になるまで待機します。

  • 画像ファイルを新しい場所に移動する

  • VM定義内のイメージの場所を変更します:

  • virt-manager GUIを使用する(VM定義からHDDを削除し、新しい場所から再度追加する)

  • または、virsh を使用する場合 (VM 名が 'wwe' であると仮定)、例:

    ~# virsh dumpxml wwe > wwe.xml
    
    ~# sed "s[file='/kvm/vhdd/wwe.img'[file='/mnt/kvm/vhdd/wwe.img'[" wwe.xml > wwe_new.xml
    
    ~# diff wwe.xml wwe_new.xml
    

    (ファイルの場所の変更のみが差異として表示されます)

    ~# virsh undefine wwe
    
    ~# virsh define wwe_new.xml
    
  • VMを再起動します。

答え3

すでに述べたことに加えて、virsh edit/etc 内の xml ファイルを直接編集するのではなく、 を使用することをお勧めします。このファイル内のコメントには次のように書かれています。

<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh edit vmname
or other application using the libvirt API.
-->

実際の手順は次のようになります。

  1. virsh shutdown <vmname>
  2. mv oldpath/image.qcow newpath/image.qcow
  3. virsh edit <vmname> タグ tag を検索し<source file="...">、それに応じてパスを変更します。
  4. virsh start <vmname>

関連情報