U ovom ćemo članku govoriti o promjeni veličine diskova KVM virtualnog stroja, razmotrite formate korištenih virtualnih diskova. Pokazat ćemo kako pravilno povećati disk virtualnog stroja u KVM hipervizoru na Linuxu bez gubitka podataka, a također ćemo razgovarati o opcijama za smanjenje veličine diska.
sadržaj:
- Povećajte pogon KVM virtualnog stroja
- Kako smanjiti veličinu virtualnog diska u KVM-u?
Povećajte pogon KVM virtualnog stroja
KVM proširenje virtualnog diska
Da bismo radili s diskom, virtualni stroj mora biti isključen, jer u protivnom nećemo moći ništa učiniti. Razmotrite primjer s povećanjem diska čija je veličina izvorno bila 20 GB.
Za pregled parametara diska virtualnog stroja KVM koristite naredbu:
qemu-img info / drive_path
Izlaz iz naredbe bit će ovako:
Vidimo da imamo dva polja koja označavaju veličinu, to su virtualna veličina i veličina diska:
- virtual_size - veličina virtualnog diska navedena prilikom stvaranja ili proširivanja diska (u ovom primjeru maksimalna je veličina diska 20 GB);
- disk_size - trenutna veličina datoteke na disku, tj. koliki je prostor na disku trenutno zauzet na fizičkom poslužitelju (odnosi se samo na format qcow). U našem primjeru virtualni disk zauzima samo 1,6 GB prostora za pohranu.
I odmah o formatima. Prilikom stvaranja virtualnih računala na KVM-u preporučam korištenje qcow2 diskovnog formata, a ne neobrađenog. Kasnije ću objasniti zašto.
Sljedeći je korak proširiti disk virtualnog stroja za 5Gb (za ispravno proširenje diska virtualni stroj ne bi trebao imati snimke!).# qemu-img resize / drive path + 5G
Slika se mijenja.
Ako odmah provjerimo izlaz podataka o slici diska, vidjet ćemo da se proširila:
# qemu-img info / drive_path
slika: / drive_drive format datoteke staze: qcow2 virtualna veličina: 25G (26843545600 bytes) veličina diska: 1.6G cluster_size: 65536 Specifične informacije o formatu: compat: 0.10 refcount bits: 16
Obavili smo dio posla, ali to zahtijeva i rad s virtualnog stroja u gostujućem OS-u. Zatim ćemo pokazati kako povećati veličinu diska u CentOS 7 gostu i Windows Server 2012..
Ako na KVM hipervizor planirate dodati dodatni virtualni disk za VM, koriste se qemu-img i virsh.Proširenje particija u virtualnom stroju Linux CentOS
Nakon što proširite pogon s poslužiteljske strane, morate pokrenuti virtualni stroj i na njega se povezati putem ssh-a. Svi će se poslovi odvijati pomoću uslužnog programa za upravljanje particijama tvrdog diska. fdisk.
Nakon povezivanja s poslužiteljem, provjeravamo dostupnost dodatno priključenog mjesta:
df -h
fdisk -l
Snimak zaslona pokazuje da je odjeljak / dev / vda2 veličine 20 Gb, a mi imamo više dostupnog prostora na disku.
Popravimo ovaj trenutak i proširimo odjeljak / dev / vda2 na maksimalnu veličinu:
# fdisk / dev / vda
Dobrodošli u fdisk (util-linux 2.23.2). Promjene će ostati samo u sjećanju, sve dok ih ne odlučite napisati. Budite oprezni prije upotrebe naredbe za pisanje. Naredba (m za pomoć): d Broj particije (1,2, zadano 2): Particija 2 se briše Naredba (m za pomoć): n Vrsta particije: p primarna (1 primarna, 0 proširena, 3 slobodna) e proširena Odaberite (zadano p): p Broj particije (2-4, zadano 2): Prvi sektor (1050624-52428799, zadano 1050624): Korištenje zadane vrijednosti 1050624 Posljednji sektor, + sektori ili + veličina K, M, G (1050624-52428799, zadano 52428799): Korištenje zadane vrijednosti 52428799 Partition 2 tipa Linux i veličine 24,5 GiB postavljeno je Command (m za pomoć): w Tabela particije je izmijenjena! Pozivanje ioctl () za ponovno čitanje particijske tablice. UPOZORENJE: Ponovno čitanje particijske tablice nije uspjelo s pogreškom 16: Uređaj ili resurs su zauzeti. Kernel i dalje koristi staru tablicu. Nova tablica će se koristiti pri sljedećem ponovnom pokretanju ili nakon što pokrenete partprobe (8) ili kpartx (8) Sinkroniziranje diskova.
Tada moramo ponovno pokrenuti virtualni stroj i izvršiti naredbu za primjenu proširenja diska:
# xfs_growfs / dev / vda2
meta-podaci = / dev / vda2 isize = 512 agcount = 4, agsize = 1277888 blks = sectsz = 512 attr = 2, projid32bit = 1 = crc = 1 finobt = 0 spinodes = 0 podataka = bsize = 4096 blokova = 5111552, imaxpct = 25 = sunit = 0 swidth = 0 blks imenovanja = verzija 2 bsize = 4096 ascii-ci = 0 ftype = 1 log = unutarnja veličina = 4096 blokova = 2560, verzija = 2 = sectsz = 512 sunit = 0 blks, lazy-count = 1 realtime = none extsz = 4096 blokova = 0, rtextents = 0 blokova podataka promijenjeno je iz 5111552 u 6422272
# df -h
Upotrijebljena veličina datotečnog sustava% Naziv na montaži na devtmpfs 485M 0 485M 0% / dev tmpfs 496M 0 496M 0% / dev / shm tmpfs 496M 6,6M 489M 2% / run tmpfs 496M 0 496M 0% / sys / fs / cgroup / dev / vda2 25G 1.3G 24G 6% / / dev / vda1 488M 100M 353M 23% / boot tmpfs 100M 0 100M 0% / run / user / 0
Kao rezultat toga, dobili smo produženu / dev / vda2 particiju. Eto, kako bismo točno napravili:
- fdisk / dev / vda - pokrenuo je program fdisk povezivanjem na odjeljak / dev / vda
- / d - izbrišemo odjeljak, po defaultu nam je potreban drugi odjeljak, pa u sljedećem stavku samo pritisnemo Enter
- / n - stvorite novi odjeljak, u sljedećem stavku samo pritisnite Enter ili utipkajte p, Sljedeće unesite jer će stvoreni odjeljak biti zadan na 2.
- Kada određujemo prvi i zadnji sektor, također samo pritisnemo Enter, ako želimo proširiti odjeljak do maksimuma, ako želite odrediti određenu veličinu, u zadnjem sektoru navedite veličinu diska kako je navedena u izborniku + veličina K, M, G Veličina ne može biti manje nego prije!
- / w - primijenite naše postavke.
Nakon ponovnog pokretanja, provjerite disk sa naredbom:
xfs_growfs / dev / vda2
Neki izvori ukazuju na naredbu za dovršetak ovog postupka:
resize2fs / dev / vda2
Ali to ne radi s datotečnim sustavom xfs!
Rad na proširenju diska na virtualnom stroju CentOS 7 je završen.
Proširenje diska na gostujućem Windows poslužitelju
Povezujemo se s virtualnim strojem putem rdp-a ili VNC-a i radimo na proširenju diska.
- Otvorite Upravitelj poslužitelja -> Alati -> Upravljanje računalom;
- U prozoru koji se otvori odaberite u izborniku Upravljanje diskom, nakon čega biste trebali vidjeti sve svoje pogone i neraspoređeni prostor koji smo dodali iz KVM hipervizora;
- Odaberite željeni pogon i kliknite Prošireni volumen;
- Prema zadanim postavkama nudit će se sav raspoloživi prostor za povećanje veličine diska;
- Kliknite "sljedeći" i dovršite proširenje. Nakon ovog postupka vaš će se odjeljak u sustavu morati proširiti;
Želio bih dodati da prije postupka proširenja diska na virtualnom stroju savjetujem da napravite sigurnosnu kopiju samog diska. Zaustavite virtualni stroj i kopirajte sliku diska u mapu sigurnosne kopije ili u bilo koji direktorij koji ima slobodnog prostora. Ako tijekom rada nešto pođe po zlu, sliku virtualnog diska uvijek možete vratiti iz sigurnosnih kopija.
Kako smanjiti veličinu virtualnog diska u KVM-u?
U svom radu ranije sam često nailazio na ovaj problem, ali nažalost, ne možete sigurno smanjiti disk na virtualnom stroju u KVM-u! Jedina prihvatljiva veličina za smanjenje veličine diska KVM virtualnog stroja na fizičkoj pohrani jest komprimiranje putem pretvorbe.
Na Internetu postoji mnogo članaka, navodno zbog kojih možete smanjiti veličinu diska u virtualnom stroju, ali to ne radi.
Navest ću nekoliko primjera na koje sam naišao i koje sam osobno provjerio.
Smanjivanje KVM diska s uslugom qemu
Brojni resursi opisuju radnje izvedene pomoću uslužnog programa qemu. Predlažu smanjenje veličine diska virtualnog stroja pomoću naredbe:
qemu-img resize / drive_path -5G
- smanjite disk za 5G
Ili ovu opciju s određenom veličinom:
qemu-img resize / 25G drive_path
- naznačite veličinu diska u 25G
Što se događa nakon izvršenja ove naredbe? Pokrećemo poslužitelj i, naravno, sustav se ne podiže:
Pokušao sam najprije smanjiti particiju ispod sustava pomoću uslužnog programa fdisk, ali u ovom slučaju sustav se i prestaje učitavati, čak i ako preskočite korak smanjenja diska s fizičkog poslužitelja i to je logično. Odjeljak koji smanjujemo, sustav i, prema tome, OS, prestaju učitavati, jer kad se disk smanji, informacije su očito uništene.
Smanjivanje virtualnog diska zamjenom slike
Već nije tako uobičajena opcija u uputama - to je smanjenje diska, uz zamjenu starog. Odnosno, stvarate novi virtualni stroj s potrebnom veličinom diska. Nakon toga, staru sliku diska zamijenite novom slikom i sudeći po opisu članaka u različitim izvorima, ovo će uspjeti. I ja sam izvršio provjeru i pokvario je datotečni sustav, kao u prvoj verziji. Dat ću primjer naredbe:
virt-resize / old_drive_ image / new_drive_image
Također su date i mogućnosti, s pretvaranjem diska iz neobrađenog u qcow2 format, ali ja u početku kreiram strojeve u ovom formatu i objasnim zašto.
KVM formati diskova i kompresija diska u qcow2 formatu
Na samom početku članka spomenuo sam ta dva formata.
sirov - prevedeno "sirovo". Prednost formata, maksimalne performanse, svestranost formata. Nedostaci mase, glavni su:
- Disk zauzima sav prostor na disku na fizičkom poslužitelju koji mu je dodijeljen;
- Ne mogu se stvoriti snimke.
Qcow2 - Ovo je izvorni QEMU format hipervizora, kao i QEMU-KVM. Ovo je najpovoljniji format virtualnog diska od svih podržanih u KVM-u. Slika diska se povećava kako se podaci nakupljaju u virtualnom stroju, podržani su snimci.
Za što je dobar qcow2 format? U principu, ne trebate smanjivati veličinu virtualnog diska, jer disk zauzima server, točno onoliko prostora tamo zauzima. Ako se vaši podaci na poslužitelju neprestano prepisuju i ponekad se dogodi da je disk "natečen", lako ga možete komprimirati. Razmislite o ovoj opciji. Poništit ću prostor na disku i izbrisati datoteku:
dd ako je / / dev / zero of = / mytempfile
rm -rf / mytempfile
Prilikom provjere s poslužitelja, slika diska prvo je težila 2,4G, a zatim se proširila na 5,9G:
# du -sh / image_path
2.4G *****
# du -sh / image_path
5.9G *****
To jest, nakon brisanja podataka u virtualnom stroju, disk se nije komprimirao. Da bi datoteka na disku dobila stvarnu veličinu, koristim sljedeću metodu:
Izrađujemo sigurnosnu kopiju datoteke diska, zaustavljamo virtualni stroj, a zatim napravimo sljedeće:
qemu-img pretvoriti -O qcow2 / old_image / new_image
Tada možete provjeriti veličine dva diska:
# du -sh / new_drive
1.6G / ****
# du -sh / old_disk
5.8G / ****
Kao što vidite, veličina komprimiranog diska je 1.6G. Preimenujte novu sliku diska u onu koja nam je potrebna i pokrenite virtualni stroj:
# df -h
Upotrijebljena veličina datotečnog sustava% Naziv na montaži na devtmpfs 485M 0 485M 0% / dev tmpfs 496M 0 496M 0% / dev / shm tmpfs 496M 6,6M 489M 2% / run tmpfs 496M 0 496M 0% / sys / fs / cgroup / dev / vda2 25G 1.3G 24G 6% / / dev / vda1 488M 100M 353M 23% / boot tmpfs 100M 0 100M 0% / run / user / 0
Potvrda s poslužitelja:
# du -sh / slika na disku
1.6G / ****
Metoda djeluje. Za sve vrijeme njegove upotrebe datotečni sustav u virtualnom stroju nikada nije umro. Ali toplo preporučujem da prije takvog rada stvorite kopiju diska ako ne želite izgubiti podatke.
To je sve što sam želio reći u ovom članku. Ako jedan od posjetitelja stranice ima način smanjenja diska na KVM-u, naime smanjenje (ne kompresija) i radni, ponudite svoje mogućnosti i definitivno ću ih testirati.