Linux
如何將 KVM 映像移動到另一個目錄/分區?
我的儲存設備安裝如下:
$ 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/
嗎?請幫忙,我怕崩潰服務,謝謝。
備份原始虛擬機:
- virsh 關閉 wwe
- virsh 列表 –all
- cp /etc/libvirt/qemu/wwe.xml /etc/libvirt/qemu/orig-wwe.xml
- cp /kvm/vhdd/wwe.img /kvm/vhdd/orig-wwe.img
將 VM 映像移動到分區 /mnt/kvm:
- mkdir /mnt/kvm
- mv /kvm/vhdd/wwe.img /mnt/kvm/wwe.img
- 編輯 XML 文件:vim /etc/libvirt/qemu/wwe.xml
From: <source file='/kvm/vhdd/wwe.img'/> To: <source file='/mnt/kvm/wwe.img'/>
- virsh 開始 wwe
**注意:**您可以隨時使用原始文件恢復到原始狀態,但以下是用於在 KVM Infra 中複製和移動 VM 的另一種方法。
KVM - 從可用映像中複製來賓:
1-創建基礎虛擬機並安裝作業系統,關閉基礎虛擬機
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- 從模板複製新虛擬機: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