Proxmox backup fără pierderi și cu siguranța de comunicare între VM și hypervisor.

Implicat în afacere unde doar Free Open Source salvează ROI(Return on Investment)? Recomand de folosit Proxmox pentru virtualizare, mai dorești să faci backup sau snapshot regular? Hai că găsești aici ajutor clar și corect în acest pas.
Nu prea are importanță dacă ai un server sau cluster de servere în Proxmox, live backup(fără deconectarea mașinei virtualizate) trebuie de făcut în așa mod în cît să nu ai pierderi. Te-ai gîndit la momentul cela dacă se salvează și unde se înregistrează pe discul sistemului de operare virtualizat, în momentul de backup? Hypervisor-ul trebuie să îi comunice mașinii virtuale (VM) că este în regim de backup a datelor să oprească  înregistrarea pe disc a datelor pînă la finisarea operațiunii de backup (snapshot_create: call fsfreeze if agent flag is set începînd cu versiunea 3.4 indicată în http://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_3.4). Despre modul de backup în Proxmox detalii găsiți aici https://pve.proxmox.com/wiki/Backup_and_Restore

Proxmox folosește KVM cu Qemu pentru virtualizare OS(cu părere de rău nu folosește libvirt). Pentru comunicare între VM și Hypervisor folosește qemu-guest-agent care se instalează pe mașina virtuală cu sistemul de operare fie linux, fie windows sau altele compatibile. De mult timp în Proxmox este această funcționalitate dar nu și în GUI, în configurările fiecărei mașini virtuale este opțiunea „Qemu Agent” în interfața web sau în fișierul de configurare din /etc/pve/qemu-server/VMID.conf, (VMID este numărul mașinii virtuale) recomand de activat și rămîne de pornit agentul pe sistemul de operare a fiecărei mașini virtuale. Dacă doriți configurări direct a VM folosiți acest manual https://pve.proxmox.com/wiki/Manual:_vm.conf
În Debian 8 jessie(poate și Ubuntu) în regim utilizator simplu folosim sudo, sau dacă am ajuns în user-ul root atunci folosim comanda:

Necesar de menționat că în source code

https://github.com/proxmox/qemu-server/blob/master/PVE/QemuServer.pm#L3209

se observă adăugarea automată a unui hardware de comunicare necesar conform cerințelor Qemu indicate în

http://wiki.qemu.org/Features/QAPI/GuestAgent

și

http://wiki.libvirt.org/page/Qemu_guest_agent

Prin această interfață serial Virtio se execută comunicarea între ele. Pentru a ne asigura putem vedea în lista echipamentelor cu comanda

cu-agent

a apărut dispozitivul de comunicare.

virtio_console  

Fără acest agent pornit din Proxmox primim un așa răspuns

Fara-agent

Verificarea deplină de comunicare o putem face prin consola hyperviserului Proxmox cu comanda (cifra 140 indică VMID, numărul mașinii virtuale care a fost configurată cu agentul) Apoi în cîmpul gol indicăm

*apăsăm Enter

*apăsăm Enter

primim răspunsul ?

{“return”: 1234}

Răspuns trebuie să primim un mesaj de tipul (1234 este pus doar de verificare a răspunsului)

Ca și în imaginea de mai jos.

raspunsul din consola

răspunsul din consolă

Dacă aveți alt răspuns sau {“return”:} fără cifre atunci este o problemă în comunicarea.

Cu referință la

https://forum.proxmox.com/threads/guest-agent-question-how-can-i-tell-if-its-functional.21146/

Recomand pentru Windows de folosit preventiv driverele VGA (se instalează simplu absolut ”Next-Next”)
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-qemu-ga/qemu-ga-win-7.2.1-1/qemu-ga-x64.msi

Sau poate copiați întreg ISO cu drivere și pentru SCSI controller type HDD Virtio pe de adresa

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.112-1/virtio-win.iso

În Windows și anume în Device Manager se poate de observat diferența și apariția unui nou dispozitiv

Fără agent

Fără agent

Cu dispozitivul VirtIO Serial Driver

Cu dispozitivul VirtIO Serial Driver

Cu numele de VirtIO-Serial Driver

Dacă cineva se sperie și se gîndește ce se întîmple cu baza de date MySQL din RAM al mașinii virtuale, vreau să vă indic că este un script Qemu GuestAgent care o înregistrează baza MySQL (linux) din RAM pe Disk precum e indicat în source code

https://github.com/qemu/qemu/blob/master/scripts/qemu-guest-agent/fsfreeze-hook.d/mysql-flush.sh.sample#L3

În Windows există VssTrace care ajută la Backup https://msdn.microsoft.com/en-us/library/windows/desktop/dd765233%28v=vs.85%29.aspx#using_vsstrace

Dar recomand de făcut backup la sistemelor windows cu instrumentele native create Microsoft.
UPDATE August 2016
Doresc să menționez că verificarea configurărilor se face cu comanda

config-qemu-ga1

În plus fișierul de configurare de care se folosește qemu-ga este situat în

Dar dacă totul este după default/implicit atunci acolo nu este nimic și respectiv trebuie de executat comanda de mai sus.
Dar dacă doriți să modificați ceva diferit de setările default/implicit atunci în acest fișier indicați modificările dar mai întîi de toate transferăm din config default  în fișier cu comanda

mai departe modificăm cu ajutorul lui nano

Pentru update în Debian 8 la ultima versiune 2.6 se face cu comanda.

Pentru Windows (în dependență de versiune) se poate de instalat de pe acest link
qemu-ga-x64 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-qemu-ga/qemu-ga-win-7.3.2-1/qemu-ga-x64.msi
sau
qemu-ga-x86 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-qemu-ga/qemu-ga-win-7.3.2-1/qemu-ga-x86.msi

Dacă executați un Snapshot din Proxmox și în regim de running sau un backup de tip snapshot tot în regim de running, veți găsi în syslog și putem monitoriza systemul live cînd va apărea

anume un rînd în care arată înghețarea systemeului cu ajutorul qemu-ga

Anume acest rînd arată că agentul qemu comunică minunat de bine și execută comanda de la Proxmox pentru înghețarea operațiunilor și de a face un backup/snapshot fără pierderi de date.

Altă metodă de testare este oprirea sericiului qemu-guest-agent

Și apoi pornirea de înghețare a File System cu pornirea agentului în alitate de aplicație și nu de serviciu

dacă ne arată errori atunci nu funcționează adecvat la crearea unui backup consistent.

Tagged , , , , , , , , , , . Bookmark the permalink.

About 3XTron

Bună tuturor, pe parcursul vieții citesc, cunosc, experimentez, cercetez, analizez și încerc să mă dezvolt.

Leave a Reply