Linux KVM Backup and Restore

Aşağıdaki yönergeleri izleyerek KVM sanallarınızı yedekleyebilir ve yedekten geri dönebilirsiniz.

1. Backup

İlk önce makinelerimizi listeleyelim ve çalışır vaziyette olduğunu görelim.

> virsh list –all

Daha sonra yedekleyeceğimiz vm’i kapatalım.

> virsh shutdown Ubuntu18

Ardından makineleri tekrar listeleyelim ve kapalı olduğunu görelim.

> virsh list –all

Şimdi makineyi (XML dosyasını) aşağıdaki komut/yöntem ile yedekleyelim.

> virsh dumpxml Ubuntu18 > /MyBackup/Ubuntu18.xml

yada

default ta XML lerin tutulduğu “/etc/libvirt/qemu” dizinin altından ilgili XLM’i ilgili backup dizinine cp komutu ile kopyalayabilirsiniz.

Şimdi de disk dosyasını (qcow2) aşağıdaki komut/yöntem ile yedekleyelim.

qcow2 formatındaki disk dosyasını da /MyBackup altına kopyalayalım. Disk dosyalarının default ta tutulduğu yer “/var/lib/libvirt/images/” altındadır.

yada

> virsh domblklist Ubuntu18 komutu ile nerde olduğunu görebilirsiniz. İlgili yerden cp yada scp (remote) komutu ile backup klasörünüze kopyalayabilirsiniz.

> cp /var/lib/libvirt/images/Ubuntu18.qcow2 /MyBackup/Ubuntu18.qcow2

Listeleyip tüm yedeklerimizi görelim.

> ls -lash

NoT: Backup işlemini makineleri kapatmadan da yapabilirsiniz fakat oluşabilecek hatalara yada veri kaybına karşın, kapatıp yapmak sağlıklı olacaktır. Tabi illaki makinenin hizmet kesintisi olmaması gerekiyorsa, dediğim gibi vm açıkkende backup alabilirsiniz.

2. Restore

Şimdi yedekten geri dönme senryosunu uygulayalım. Bunun için XML’i silebilir yada undefine edebilirsiniz.

> virsh undefine Ubuntu18

yada

Sunucu özelliklerinin barındığı XML dosyası silinmiş olsun ve listelediğimizde makinenin gittiğini görebiliyoruz.

> virsh list –all

Şimdi senaryoyu gerçekleştirmek için disk (qcow2) dosyasını silelim.

> rm /var/lib/libvirt/images/Ubuntu18.qcow2

Ve senaryo uygulamasına başlayabiliriz. Hemen backup aldığımız yerden diskin (qcow2)’un olması gereken yere kopyalama işlemine başlayalım.

> cp /MyBackup/Ubuntu18.qcow2 /var/lib/libvirt/images/

Diskin kopyalama işlemi bittikten sonra makine özelliklerinin olduğu XML dosyasını aşağıdaki komut/yöntem ile kullanabilir hale getirelim.

> virsh define –file /MyBackup/Ubuntu18.xml

yada

Sunucu özelliklerinin barındığı XML dosyası bulunduğu dizine tekrar kopyalanmış olsun.

Ardından vm’i başlatarak işlemi tamamlayalım.

> virsh start Ubuntu18

How to install KVM on Ubuntu 16 – Ubuntu üzerine KVM kurulumu, Yapılandırması ve Sanal Makine oluşturulması

KVM Çekirdek tabanlı sanal makine Linux çekirdeği için geliştirilen ve onu bir üstsisteme dönüştüren bir sanallaştırma altyapısıdır.

Kurulumdan önce sunucumuza login olup, cpu muzun destekleyip desteklemediğini anlamak için aşağıdaki komutlar yardımıyla cpu bilgilerini kontrol edelim.

Bu komutun çıktısı olarak “CPU(s):” değeri 0 ise dekteklemiyor, 1 veya 1 den fazla bir değer ise destekliyor manasına gelir.

> egrep -c ‘(svm|vmx)’ /proc/cpuinfo

yada

> lscpu

Aşağıdaki komutla da çekidek modüllerinin yüklü olup, olmadığını kontrol edebilirsiniz.

> lsmod | grep kvm

Şimdi kuruluma geçebiliriz. Aşağıdaki komut ile gerekli tüm paketleri kurup, KVM ortamımızı hazır hale getirelim.

> sudo apt-get install qemu-kvm libvirt-bin bridge-utils virt-manager

Yukarıdaki kurulum komutundan sonra sorunsuz bir kurulum gerçekleştiğini, aşağıdaki komutla doğrulayın.

> kvm-ok

> brctl show komutuyla da sonradan gelen sanal interface(NIC) i görüntüleyebilirsiniz.

Default’ta Virtual Machine(qcow2) lerin saklandığı dizindir.

/var/lib/libvirt/images/

Not1 : Eğer qcow2 formatında ki diskin yerini bilmiyorsanız aşağıdaki komut(komut ilgili vm in disklerini bulunduğu dizin ile beraber listeler) size nerde olduğunu söyleyecektir.

> virsh domblklist Ubuntu18

Default’ta Virtual Machine images lar için, kurulum iso larının saklandığı dizindir.

/var/lib/libvirt/boot/

Default’ta Virtual Machine özelliklerinin(ram,cpu,disk vs.) xml formatında tutulduğu yerdir.

/etc/libvirt/qemu

Not2 : Aşağıdaki komut ise ilgili makinanın xml formatında tutulduğu özellikleri(ram,cpu,disk vs.) ekrana bastırır.

> virsh dumpxml Ubuntu18

Aşağıdaki iki komutla da mevcuttaki sanal makinaları görüntüleyebilirsiniz.

> virsh -c qemu:///system list

yada

> virsh list –all

Virtual Machine lerinizi GUI olarak yönetmek, oluşturma ve silme gibi işlemler için virt arayüzünü kullanabilirsiniz. Komut aşağıdaki gibidir.

NoT3: Bunu yapabilmek için öncesinde sunucuya ssh bağlantısı yaparken, -X parametresini kullanarak bağlanmalısınız(ssh -X root@192.168.1.100).

> sudo virt-manager

Yada sunucuya ait konsolu direk olarak aşağıdaki komutla alabilirsiniz.

NoT4: Bunu yapabilmek için öncesinde sunucuya virt-viewer paketini kurmalısınız(ubuntu/debian için ’apt install virt-viewer’, Redhat/CentOS için ‘yum install virt-viewer’).

> sudo virt-viewer -c qemu:///system Ubuntu18

Komutlar aracılığı ile sunucuyu yönetimi için aşağıda bir kaç komut paylaşacağım.

Sunucuyu başlatır.

> virsh start Ubuntu18

Sunucuyu kapatır.

> virsh shutdown Ubuntu18

Sunucuyu yeniden başlatır.

> virsh reboot Ubuntu18

Sunucunun özelliklerini değiştirmek için kullanılır(xml dosyasını değiştirir).

> virsh edit Ubuntu18

Sununun barındığı host açıldığında, bu vm de otomatik olarak başlatma seçeneğidir.

> virsh autostart Ubuntu18

Sununun barındığı host açıldığında, bu vm de otomatik olarak başlatma seçeneğini devre dışı bırakır.

> virsh autostart –disable Ubuntu18

Şimdi “virt-install” komtuna bakalım, bu komut aracılığı ile komut satırı üzerinden makine oluşturabilirsiniz. Alltaki komutta örnek komut ile bu işlemi sağlayabilirsiniz. Ben bir çok parametreyi kullandım ama siz tüm parametleri kullanmak zorunda değilsiniz. Zaten kullanmadığınız parametreler yerine default değerler atanacaktır. Tabi sonrasında siz bu değerleri değiştirebilirsiniz. Komutu yürüttükten sonra gui açılıp size kuruluma yönlendirecektir.

> sudo virt-install –virt-type=kvm –name ubuntu-cli –ram 2048 –vcpus=2 –os-variant=Ubuntu16.04 –cdrom=/var/lib/libvirt/boot/ubuntu-18.04-live-server-amd64.iso –network=bridge=eth0,model=virtio –graphics spice –disk path=/var/lib/libvirt/images/ubuntu-cli.qcow2,size=40,bus=virtio,format=qcow2

Şimdi de “virt-clone” komutundan bahsedelim. Adında da anlaşılacağı üzere clone almak için kullanılan komuttur. Kullanımı aşağıdaki gibidir. Fakat vm kapalı durumda iken clone alabilirsiniz, yoksa uyarı verecektir. “Clone ‘Ubuntu18.clone’ created successfully.” uyarısını almalısınız.

> virt-clone –original=Ubuntu18 –name=Ubuntu18.clone –file=/var/lib/libvirt/images/Ubuntu18.clone

Aşağıdaki komut ise vmdk formatındaki bir vm i qcow2 formatına çevirip KVM host unuzda çalıştırmanızı sağlar.

> qemu-img convert -O qcow2 ubuntu.vmdk ubuntu.qcow2

Bir sonraki makalemizde KVM ortamında nasıl yedek alıp sonra aldığımız o yedeği nasıl geri yükleyip, çalışır hale getireceğiz ona bakacağız.