Međutim, dosadno je iznova i iznova instalirati operativni sustav unutar VM-a. Ometa vaš tijek rada i zato vam je potreban pouzdan način da:
- Snimite svoj VM u bilo kojem trenutku.
- Imajte mehanizam za korištenje snimke za vraćanje VM-a u prethodno radno stanje.
Prethodno sam razgovarao o tome kako snimke rade u VirtualBoxu, a ovaj put sam htio razgovarati o snimkama u Libvirtu. Koristit ću QEMU-KVM kao pozadinski hipervizor za svoju instalaciju Libvirt. Vaš se slučaj može razlikovati, ali ukupna funkcionalnost i sučelje ne bi se trebali jako razlikovati, jer libvirt pokušava svim silama standardizirati sučelje sučelja.
Ako niste upoznati s libvirtom i qemu-kvm, evo vodiča o tome kako možete postaviti KVM na Debianu.
Izrada snimke
Postoji nekoliko načina na koje možete snimati i upravljati snimkama VM-a. GUI aplikacije poput virt-manager i oVirt nude funkcionalnost, a možete čak i pisati prilagođene skripte za sučelje s libvirt API-jem koji za vas upravlja čitavim nizom snimaka.
Međutim, koristit ću sučelje virsh naredbenog retka kako bih pokazao kako možete upravljati svojim VM-ovima i njihovim snimkama. Ovaj uslužni program dolazi s gotovo svim zadanim instalacijama libvirt i trebao bi biti dostupan u širokom rasponu distribucija.
Za naredbe u nastavku obavezno zamijenite ime mog VM-a, VM1, stvarnim imenom vašeg VM-a. Libvirt često naziva virtualni stroj i spremnike kao Domene. Dakle, ako vidite poruku o pogrešci koja sugerira, recimo, "navedite ime domene", morate navesti ime svog VM-a kao jedan od argumenata naredbi. Upotrijebite sljedeću naredbu za popis svih VM-ova pod upravljanjem Libvirt-a.
$ virsh lista - sveDa biste napravili snimku VM-a, jednostavno pokrenite:
$ virsh snapshot-stvori VM1A da biste popisali sve snimke datog VM-a, upotrijebite naredbu:
$ virsh popis snimaka VM1Ime Stvaranje Vrijeme Država
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 trčanje
Možete vidjeti da je snimka stvorena. Prema zadanim postavkama, naziv snimke je vremenski žig izrade (broj sekundi od UNIX epohe). Stupac Vrijeme stvaranja prikazuje vrijeme stvaranja na razumljiv način, a stupac Stanje prikazuje stanje VM-a kada je snimljeno. Kako se ovaj VM izvodio, stanje snimke također se 'izvodi', ali to ne znači da se i sama snimka izvodi. To se neće promijeniti s vremenom. Ova je značajka poznata i kao snimka uživo i vrlo je vrijedna jer vam omogućuje snimanje VM-a bez zastoja. Gosti KVM-a barem dobro rade sa snimkama uživo.
Međutim, određena radna opterećenja zahtijevaju zaustavljanje VM-a prije nego što bude snimljen. To osigurava da su podaci na snimci dosljedni i da nema napola napisane datoteke ili podataka koji nedostaju. Ako radno opterećenje koje se izvodi u vašem VM-u ima visoki IO, vjerojatno ćete trebati isključiti VM prije stvaranja snimke. Stvorimo jedan na ovaj način.
$ virsh gašenje VM1Domena VM1 se gasi
$ virsh snapshot-stvori VM1Snimka domene 1556533868 kreirana
[zaštićena e-poštom]: ~ # virsh popis snimaka VM1Ime Stvaranje Vrijeme Država
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 trčanje
1556533868 2019-04-29 16:01:08 +0530 isključenje
$ virsh start VM1
Domena VM1 je pokrenuta
Ako želite snimkama dati ime drugačije od vremenske oznake, upotrijebite naredbu:
$ virsh snapshot-create-as VM1 --name snap1Ime Stvaranje Vrijeme Država
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 trčanje
1556533868 2019-04-29 16:01:08 +0530 isključenje
snap1 2019-05-02 22:27:48 +0530 trčanje
Očito je da ga ne morate imenovati snap1, možete odabrati bilo koje prikladno ime.
Vraćanje iz snimke
Napraviti snimku nema koristi ako se ne možete vratiti na nju. U slučaju da se trebate vratiti na snimku, jednostavno upotrijebite naredbu:
$ virsh snapshot-revert $ VMName $ snapshot-nameIme može biti vremenska oznaka ili korisničko ime dodijeljeno snimci.
Uvjerite se da u vašem trenutnom VM-u nema važnih podataka ili ako postoji nešto važno, napravite snimak trenutnog VM-a, a zatim se vratite na stariju snimku.
Prednosti QCOW2
Mehanizam kopiranja i pisanja datoteka qcow2 omogućuje da svaka snimka zauzima vrlo mali prostor. Prostor koji zauzima snimka povećava se s vremenom kako se tekuća slika odudara od snimke. Dakle, sve dok ne prepisujete puno podataka, vaše će snimke zauzimati samo nekoliko MB prostora za pohranu.
To također znači da su i snimke vrlo brze. Budući da mehanizam copy-on-write samo treba označiti vremensku oznaku kada je snimljena snimka. Blokovi podataka zapisani u datoteku qcow2 nakon snimke ne pripadaju joj, ali pripadaju stariji. Jednostavno je to. Moj testni uređaj koristi tvrdi disk od 5400 o / min koji nikako nije na vrhuncu svojih performansi, potrebno je manje od nekoliko sekundi za snimanje trenutne slike VM-a na ovom disku.
Zaključak
Kao i kod većine uslužnih programa povezanih s libvirtom i virsh, funkcija snimke pruža vrlo fleksibilno sučelje s značajkama poslovnog razreda poput snimanja uživo, zajedno s prednostima mehanizma kopiranja i pisanja.
Zadana konvencija imenovanja također olakšava skriptama ljuske povremeno uklanjanje starih snimaka i zamjenu novijim. Jedan od mojih starijih članaka o OpenZFS snimkama i pravilima snimanja također se može primijeniti na vašeg KVM gosta. Za više informacija o uslužnom programu virsh snapshot možete upotrijebiti naredbu virsh help snapshot. Stranica za pomoć vrlo je mala, precizna i lako razumljiva.