Tačiau tai vargina vėl ir vėl iš naujo įdiegiant operacinę sistemą savo VM. Tai trukdo jūsų darbo eigai, todėl jums reikia patikimo būdo:
- Padarykite savo VM momentinę nuotrauką bet kuriuo momentu.
- Turėkite momentinio vaizdo naudojimo mechanizmą, kad grąžintumėte savo VM į anksčiau veikusią būseną.
Anksčiau aptariau, kaip veikia nuotraukos „VirtualBox“, ir šį kartą norėjau aptarti „Libvirt“ nuotraukas. Savo „Libvirt“ diegimui naudosiu QEMU-KVM kaip „backend“ hipervizorių. Jūsų atvejis gali skirtis, tačiau bendras funkcionalumas ir sąsaja neturėtų būti labai skirtingi, nes „libvirt“ iš visų jėgų stengiasi standartizuoti „frontend“ sąsają.
Jei nesate susipažinę su „libvirt“ ir „qemu-kvm“, čia yra vadovas, kaip galite nustatyti „KVM“ „Debian“.
Momentinės nuotraukos kūrimas
Yra keli būdai, kuriais galite fotografuoti ir tvarkyti savo VM momentines nuotraukas. GUI programos, tokios kaip „virt-manager“ ir „oVirt“, siūlo funkcionalumą ir netgi galite rašyti pasirinktinius scenarijus sąsajai su „libvirt“ API, kuri valdo visą jums skirtų momentinių nuotraukų asortimentą.
Tačiau aš naudosiu virsh komandinės eilutės sąsają, norėdamas parodyti, kaip galite valdyti savo VM ir jų momentines nuotraukas. Šis įrankis yra su beveik visais numatytaisiais „libvirt“ diegimais ir turėtų būti prieinamas įvairiuose platinimuose.
Jei norite toliau pateikti komandas, mano VM pavadinimą VM1 pakeiskite tikruoju savo VM pavadinimu. „Libvirt“ dažnai vadina virtualią mašiną ir konteinerius Domenai. Taigi, jei matote klaidos pranešimą, kuriame siūloma pasakyti „nurodyti domeno vardą“, turite pateikti savo VM pavadinimą kaip vieną iš komandos argumentų. Naudokite šią komandą, kad išvardytumėte visus „Libvirt“ valdomus VM.
$ virsh sąrašas - visiJei norite fotografuoti VM, tiesiog paleiskite:
„$ virsh snapshot-create VM1“Norėdami išvardyti visas konkretaus VM momentines nuotraukas, naudokite komandą:
$ virsh momentinių vaizdų sąrašas VM1Pavadinimo kūrimo laiko būsena
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 veikia
Galite pamatyti, kad momentinė nuotrauka yra sukurta. Pagal numatytuosius nustatymus momentinės nuotraukos pavadinimas yra jos sukūrimo laiko žyma (sekundžių skaičius nuo UNIX epochos). Stulpelyje „Sukūrimo laikas“ rodomas kūrimo laikas suprantamu būdu, o būsena - VM būsena, kai ji buvo užfiksuota. Kai ši VM buvo vykdoma, momentinės nuotraukos būsena taip pat „veikia“, tačiau tai nereiškia, kad pati momentinė nuotrauka veikia. Su laiku tai nesikeis. Ši funkcija taip pat vadinama tiesiogine momentine nuotrauka ir yra gana vertinga, nes leidžia fotografuoti VM be jokių prastovų. KVM svečiai bent jau puikiai dirba su tiesioginėmis nuotraukomis.
Tam tikri darbo krūviai reikalauja, kad sustabdytumėte VM, kol ji bus pastebėta. Tai užtikrina, kad momentinės nuotraukos duomenys yra nuoseklūs ir nėra pusiau parašyto failo ar trūksta duomenų. Jei jūsų VM vykdomas darbo krūvis yra didelis IO, prieš kurdami momentinę nuotrauką tikriausiai turite išjungti VM. Sukurkime vieną tokiu būdu.
$ virsh išjungimas VM1VM1 domenas išjungiamas
„$ virsh snapshot-create VM1“Domeno momentinė nuotrauka sukurta 1556533868
[apsaugotas el. paštu]: ~ # virsh momentinių vaizdų sąrašas VM1Pavadinimo kūrimo laiko būsena
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 veikia
1556533868 2019-04-29 16:01:08 +0530 išjungimas
$ virsh start VM1
Prasidėjo VM1 domenas
Jei norite momentines nuotraukas pavadinti kitu nei laiko žyme, naudokite komandą:
$ virsh snapshot-create-as VM1 - vardas snap1Pavadinimo kūrimo laiko būsena
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 veikia
1556533868 2019-04-29 16:01:08 +0530 išjungimas
snap1 2019-05-02 22:27:48 +0530 veikia
Akivaizdu, kad jums nereikia pavadinti jo snap1, galite pasirinkti bet kokį patogų pavadinimą.
Grįžtama iš momentinės nuotraukos
Fotografuoti nenaudinga, jei negalite prie jo grįžti. Jei norite grįžti į momentinę kopiją, tiesiog naudokite komandą:
$ virsh snapshot-revert $ VMName $ snapshot-namePavadinimas gali būti laiko žyma arba vartotojo priskirtas vardas, suteiktas momentinei nuotraukai.
Įsitikinkite, kad jūsų dabartiniame VM nėra svarbių duomenų, arba jei yra kažkas svarbaus, tada nufotografuokite esamą VM ir grįžkite į senesnę vaizdą.
QCOW2 privalumai
„Qcow2“ failų kopijavimo ant rašymo mechanizmas leidžia kiekvienam momentiniam vaizdui užimti labai mažai vietos. Akimirkos užimama erdvė laikui bėgant didėja, kai einantis vaizdas skiriasi nuo momentinės nuotraukos. Taigi, kol neperrašote daug duomenų, jūsų momentinėms kopijoms reikės tik kelių MB saugyklos.
Tai taip pat reiškia, kad momentinės nuotraukos taip pat yra labai greitos. Kadangi kopijavimo ant rašymo mechanizmas tiesiog turi pažymėti laiko žymę, kai buvo padaryta momentinė nuotrauka. Duomenų blokai, įrašyti į failą qcow2 po momentinės nuotraukos, jam nepriklauso, tačiau senesni. Tai taip paprasta. Mano bandymų stende naudojamas 5400 RPM kietasis diskas, kuris anaiptol nėra pats aukščiausias jo veikimo lygis, vis tiek užtrunka mažiau nei kelias sekundes, kol šiame diske padaroma tiesioginė VM momentinė nuotrauka.
Išvada
Kaip ir daugumoje susijusių su „libvirt“ ir „virsh“ komunalinėmis paslaugomis, momentinių vaizdų funkcija suteikia labai lanksčią sąsają su įmonės lygio funkcijomis, tokiomis kaip tiesioginis momentinis fotografavimas, kartu su „copy-on-write“ mechanizmo pranašumais.
Numatytoji pavadinimų suteikimo tvarka taip pat palengvina „shell“ scenarijus periodiškai pašalinti senas momentines nuotraukas ir pakeisti jas naujesnėmis. Vienas iš mano senesnių straipsnių apie „OpenZFS“ nuotraukų ir momentinių vaizdų politiką taip pat gali būti pritaikytas jūsų KVM svečiui. Norėdami gauti daugiau informacijos apie virsh momentinės nuotraukos naudingumą, galite naudoti komandą viršh help snapshot. Pagalbos puslapis yra labai mažas, tikslus ir lengvai suprantamas.