Siiski on VM-i operatsioonisüsteemi ikka ja jälle uuesti installimine väsitav. See takistab teie töövoogu ja seetõttu vajate usaldusväärset viisi:
- Tehke oma VM-ist hetkepilt igal ajahetkel.
- Kasutage mehhanismi hetktõmmise kasutamiseks, et taastada oma VM varem töötavasse olekusse.
Olen varem arutanud, kuidas VirtualBoxis hetktõmmised töötavad, ja seekord tahtsin arutada pilte Libvirtis. Kasutan oma Libvirt installi jaoks taustaprogrammi hüpervisorina QEMU-KVM-i. Teie juhtum võib erineda, kuid üldine funktsionaalsus ja liides ei tohiks olla väga erinevad, sest libvirt püüab kõigest väest standardiseerida liidesed.
Kui te pole libvirt ja qemu-kvm tuttav, siis siin on juhend, kuidas saate Debianis KVM-i seadistada.
Hetkepildi loomine
VM-i hetktõmmiseid saate teha ja hallata mitmel viisil. GUI-rakendused nagu virt-manager ja oVirt pakuvad funktsionaalsust ja võite isegi kirjutada kohandatud skripte liidese libvirt API-ga, mis haldab teie jaoks kogu hetktõmmiste valikut.
Kuid kasutan virshi käsurea liidest, et näidata, kuidas saate oma VM-e ja nende hetktõmmiseid hallata. See utiliit on varustatud peaaegu kõigi libvirt vaikimisi installidega ja see peaks olema saadaval paljudes jaotustes.
Allpool olevate käskude jaoks asendage kindlasti minu VM-i nimi VM1 oma VM-i tegeliku nimega. Libvirt viitab virtuaalsele masinale ja konteineritele sageli kui Domeenid. Nii et kui näete tõrketeadet, mis soovitab öelda „täpsusta domeeninime”, peate käsu ühe argumendina sisestama oma VM-i nime. Järgmise käsu abil saate loetleda kõik Libvirt'i hallatavate VM-id.
$ virsh nimekiri - kõikVM-i hetktõmmise tegemiseks lihtsalt käivitage:
$ virsh hetktõmmis-loo VM1Kõigi antud VM-i hetktõmmiste loendamiseks kasutage käsku:
$ virsh hetktõmmiste loend VM1Nimi loomise aja olek
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 töötab
Näete, et hetktõmmis on loodud. Vaikimisi on hetktõmmise nimi selle loomise ajatempel (sekundite arv UNIX-i ajastust). Veerus Loomise aeg kuvatakse loomise aeg inimesel loetaval viisil ja veerus Olek kuvatakse VM-i olek, kui see hetkeseisuga üles leiti. Selle VM töötamise ajal töötab ka hetktõmmise olek, kuid see ei tähenda, et hetktõmmis ise töötab. See ei muutu aja jooksul. Seda funktsiooni tuntakse ka reaalajas hetktõmmisena ja see on üsna väärtuslik, kuna see võimaldab teil teha VM-i hetktõmmise ilma seisakuteta. Vähemalt töötavad KVM-i külalised otseülekannete abil.
Teatud töökoormused nõuavad siiski, et peate VM-i enne selle hetkeseisu peatama. See tagab, et hetktõmmise andmed on järjepidevad ja pole pooleldi kirjutatud faili ega puuduvaid andmeid. Kui teie VM-is töötaval töökoormusel on kõrge IO, peate enne hetktõmmise loomist VM välja lülitama. Loome ühe sellisel viisil.
$ virsh seiskamine VM1Domeeni VM1 sulgemine toimub
$ virsh hetktõmmis-loo VM1Domeeni hetktõmmis 1556533868 loodud
[meiliga kaitstud]: ~ # virsh hetktõmmiste loend VM1Nimi loomise aja olek
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 töötab
1556533868 2019-04-29 16:01:08 +0530 sulgemine
$ virsh start VM1
Domeen VM1 algas
Kui soovite hetkepiltidele nimetada midagi muud kui ajatempel, kasutage käsku:
$ virsh snapshot-create-as VM1 - nimi snap1Nimi loomise aja olek
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 töötab
1556533868 2019-04-29 16:01:08 +0530 sulgemine
snap1 2019-05-02 22:27:48 +0530 töötab
Ilmselgelt ei pea te seda nimetama snap1, saate valida mis tahes mugava nime.
Piltilt tagasi pöördumine
Hetkepildist pole kasu, kui te ei saa selle juurde tagasi minna. Juhul, kui peate tagasi pöörduma hetktõmmise juurde, kasutage lihtsalt käsku:
$ virsh snapshot-revert $ VMName $ snapshot-nameNimi võib olla ajatempel või hetkepildile antud kasutaja määratud nimi.
Veenduge, et teie praeguses VM-is pole olulisi andmeid või kui on midagi olulist, siis tehke hetkepilt oma praegusest VM-ist ja naaske seejärel vanema hetktõmmise juurde.
QCOW2 eelised
Qcow2 failide kirjutamise ja kirjutamise mehhanism võimaldab igal hetktõmmisel võtta väga väikese ruumi. Hetkepildi võetud ruum suureneb aja jooksul, kui jooksev pilt lahkneb hetktõmmist. Nii kaua, kui te ei kirjuta palju andmeid, võtab teie hetktõmmis ainult paar MB salvestusruumi.
See tähendab ka seda, et ka hetktõmmised on väga kiired. Kuna kopeerimise-kirjutamise mehhanism peab lihtsalt hetktõmmise tegemise ajal ajatempli märkima. Pärast hetktõmmist faili qcow2 kirjutatud andmeplokid ei kuulu sellesse, kuid vanemad. See on nii lihtne. Minu testpink kasutab 5400RPM kõvaketast, mis pole sugugi jõudluse tipus, sellel kettal oleva VM-i reaalajas hetktõmmise tegemine võtab siiski vähem kui paar sekundit.
Järeldus
Nagu enamiku libvirtiga ja virshiga seotud utiliitide puhul, pakub ka hetktõmmise funktsionaalsus väga paindlikku liidest ettevõtteklassi funktsioonidega, näiteks reaalajas hetktõmmis, ja kirjutamise-kirjutamise mehhanismi eelised.
Vaikimisi nimetamiskonventsioon lihtsustab ka shelliskriptide puhul vanade hetktõmmiste perioodilist eemaldamist ja asendamist uuematega. Ühte minu vanemat artiklit OpenZFS-i hetktõmmiste ja hetktõmmispoliitikate kohta saab rakendada ka teie KVM-i külalise jaoks. Virshi snapshoti utiliidi kohta lisateabe saamiseks võite kasutada virshi help snapshot käsku. Abileht on väga väike, täpne ja kergesti mõistetav.