KVM Kako povečati / zmanjšati velikost diska navideznega stroja?

V tem članku bomo govorili o spreminjanju velikosti diskov navideznega stroja KVM, upoštevali bomo uporabljene formate virtualnih diskov. Pokazali bomo, kako pravilno povečati disk navideznega računalnika v hipervizorju KVM v Linuxu brez izgube podatkov, razpravljali pa bomo tudi o možnostih za zmanjšanje velikosti diskov.

Vsebina:

  • Povečanje pogona navideznega stroja KVM
  • Kako zmanjšati velikost virtualnega diska v KVM?

Povečanje pogona navideznega stroja KVM

KVM navidezna razširitev diska

Za delo z diskom mora biti navidezni stroj izklopljen, sicer ne bomo mogli narediti ničesar. Razmislite o primeru povečanja diska, katerega velikost je bila prvotno 20 GB.

Za ogled parametrov diska navidezne naprave KVM uporabite ukaz:

qemu-img info / drive_path

Izhod iz ukaza bo nekaj takega:

Vidimo, da imamo dve polji, ki označujeta velikost, to sta virtualna velikost in velikost diska:

  • virtual_size - velikost navideznega diska, določena pri ustvarjanju ali razširitvi diska (v tem primeru je največja velikost diska 20 GB);
  • velikost diska - trenutna velikost datoteke na disku, tj. koliko prostora na disku je trenutno zasedenega na fizičnem strežniku (velja samo za format qcow). V našem primeru virtualni disk zavzame le 1,6 GB prostora za shranjevanje.

In takoj o formatih. Pri ustvarjanju navideznih strojev na KVM priporočam uporabo diskovnega formata qcow2 in ne surovega. Kasneje bom razložil, zakaj.

Naslednji korak je razširitev diska navideznega stroja za 5Gb (za pravilno razširitev diska virtualni stroj ne sme imeti posnetkov!).
# qemu-img spremenite velikost / pot poti + 5G

Velikost slike je spremenjena.

Če takoj preverimo izhod informacij o sliki diska, bomo videli, da se je razširila:

# qemu-img info / drive_path

slika: / drive_drive format datoteke: qcow2 virtualna velikost: 25G (26843545600 bytes) velikost diska: 1.6G cluster_size: 65536 Specifične informacije o formatu: compat: 0.10 popustni bitovi: 16 

Del dela smo opravili, zahteva pa tudi delo navideznega stroja v gostujočem OS-u. Nato prikazujemo, kako povečati velikost diska v CentOS 7 gost in Windows Server 2012..

Če nameravate na hipervizorju KVM dodati dodaten navidezni disk za VM, se uporabljata qemu-img in virsh.

Razširitev particij v virtualnem računalniku Linux CentOS

Po razširitvi pogona s strani strežnika morate zagnati virtualni stroj in se nanj povezati prek ssh. Vsa dela bodo izvedena s pomočjo pripomočka za upravljanje particij trdega diska. fdisk.

Po povezavi s strežnikom preverimo razpoložljivost našega dodatno povezanega mesta:

df -h
fdisk -l

Na zaslonu je razvidno, da je odsek / dev / vda2 velikosti 20 Gb in imamo na voljo več prostora na disku.

Popravimo ta trenutek in razširi razdelek / dev / vda2 na največjo velikost:

# fdisk / dev / vda

Dobrodošli v fdisk-u (util-linux 2.23.2). Spremembe ostanejo le v spominu, dokler se ne odločite za njihovo pisanje. Bodite previdni, preden uporabite ukaz za pisanje. Ukaz (m za pomoč): d Številka particije (1,2, privzeto 2): particija 2 se izbriše Ukaz (m za pomoč): n Vrsta particije: p primarna (1 primarna, 0 razširjena, 3 prosta) e razširjena Izberite (privzeto p): str Številka particije (2-4, privzeto 2): Prvi sektor (1050624-52428799, privzeto 1050624): Uporaba privzete vrednosti 1050624 Zadnji sektor, + sektorji ali + velikost K, M, G (1050624-52428799, privzeto 52428799): Z uporabo privzete vrednosti 52428799 particije 2 tipa Linux in velikosti 24,5 GiB je nastavljen ukaz (m za pomoč): w Tabela particij je spremenjena! Klicanje ioctl (), da ponovno prebere tabelo particij. OPOZORILO: Ponovno branje tabele particij ni uspelo z napako 16: Naprava ali vir je zaseden. Jedro še vedno uporablja staro tabelo. Nova tabela bo uporabljena pri naslednjem ponovnem zagonu ali po zagonu partprobe (8) ali kpartx (8) Sinhroniziranje diskov. 

Nato moramo znova zagnati virtualni stroj in izvršiti ukaz za uporabo razširitve diska:

# xfs_growfs / dev / vda2

meta-podatki = / dev / vda2 isize = 512 agcount = 4, agsize = 1277888 blks = sectsz = 512 attr = 2, projid32bit = 1 = crc = 1 finobt = 0 spinodes = 0 podatkov = bsize = 4096 blokov = 5111552, imaxpct = 25 = sunit = 0 swidth = 0 blks poimenovanje = različica 2 bsize = 4096 ascii-ci = 0 ftype = 1 log = notranja velikost = 4096 blokov = 2560, različica = 2 = sectsz = 512 sunit = 0 blks, leno štetje = 1 realtime = noben extsz = 4096 blokov = 0, rtextents = 0 podatkovnih blokov je spremenjenih iz 5111552 v 6422272 

# df -h

Uporabljena velikost datotečnega sistema% Na voljo 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% / škorenj tmpfs 100M 0 100M 0% / run / user / 0 

Kot rezultat smo dobili razširjeno / dev / vda2 particijo. Zdaj, da, kaj točno smo naredili:

  • fdisk / dev / vda - zagnali pripomoček fdisk s povezovanjem na razdelek / dev / vda
  • / d - odsek izbrišemo, privzeto je to 2. poglavje, ki ga potrebujemo, zato v naslednjem odstavku samo pritisnemo Enter
  • / n - ustvarite nov razdelek, v naslednjem odstavku samo pritisnite Enter ali vnesite str, Naprej vnesite, saj bo ustvarjeni razdelek privzeto nastavljen na 2.
  • Pri določitvi prvega in zadnjega sektorja tudi samo pritisnemo Enter, če želimo razdelek razširiti na maksimum, če želite določiti določeno velikost, v zadnjem sektorju določite velikost diska, kot je navedeno v meniju + velikost K, M, G Velikost ne more biti manj kot prej!
  • / w - uporabimo naše nastavitve.

Po ponovnem zagonu preverite disk z ukazom:

xfs_growfs / dev / vda2

Nekateri viri kažejo ukaz za dokončanje tega postopka:

resize2fs / dev / vda2

Vendar to ne deluje z datotečnim sistemom xfs!

Delo za razširitev diska na virtualnem stroju CentOS 7 je končano.

Razširitev diska v gostujočem Windows Server

Na virtualni stroj se povežemo prek rdp ali VNC in opravimo dela na razširitvi diska.

  1. Odprite upravitelja strežnikov -> Orodja -> Upravljanje računalnika;
  2. V oknu, ki se odpre, izberite v meniju Upravljanje z diski, po katerem bi morali videti vse svoje pogone in nedodeljeni prostor, ki smo ga dodali s hipervizorjem KVM;
  3. Izberite želeni pogon in kliknite razširjena glasnost;
  4. Privzeto bo na voljo ves razpoložljivi prostor za povečanje velikosti diska;
  5. Kliknite "Naprej" in dokončajte razširitev. Po tem postopku se bo treba vaš razdelek v sistemu razširiti;

Rad bi dodal, da pred postopkom razširitve diska za virtualni stroj svetujem, da sami varnostno kopirate. Ustavite virtualni stroj in kopirajte sliko diska v mapo z varnostnimi kopijami ali v kateri koli imenik, ki ima prosti prostor. Če med delom kaj gre narobe, lahko sliko virtualnega diska vedno vrnete iz varnostne kopije.

Kako zmanjšati velikost virtualnega diska v KVM?

Pri svojem delu sem že prej pogosto naletel na to težavo, a na žalost ne morete varno zmanjšati diska na virtualnem stroju v KVM! Edina sprejemljiva velikost za zmanjšanje velikosti diska virtualne naprave KVM v fizičnem pomnilniku je stiskanje s pretvorbo.

Na internetu je veliko člankov, domnevno zaradi katerih lahko zmanjšate velikost diska v virtualnem stroju, vendar to ne deluje.

Navedel bom nekaj primerov, na katere sem naletel in ki sem jih osebno preveril.

Zmanjšanje diska KVM s pripomočkom qemu

Številni viri opisujejo dejanja, izvedena s pomočjo pripomočka qemu. Predlagajo zmanjšanje velikosti diska navideznega stroja s pomočjo ukaza:

qemu-img resize / drive_path -5G - zmanjšajte disk za 5G

Ali pa ta možnost z določeno velikostjo:

qemu-img resize / 25G drive_path - označite velikost diska v 25G

Kaj se zgodi po izvršitvi tega ukaza? Zaženemo strežnik in sistem se seveda ne zažene:

Poskusil sem najprej zmanjšati particijo pod sistemom s pomočjo pripomočka fdisk, vendar v tem primeru sistem preneha nalagati, tudi če preskočite korak zmanjšanja diska s fizičnega strežnika in to je logično. Odsek, ki ga zmanjšujemo, sistem in s tem tudi OS nehata nalagati, ker ko se disk zmanjša, se informacije očitno uničijo.

Zmanjšanje navideznega diska z zamenjavo slike

Že v navodilih ni tako pogosta možnost - to je zmanjšanje diska, z zamenjavo starega. To pomeni, da ustvarite nov virtualni stroj z velikostjo diska, ki jo potrebujete. Po tem zamenjajte staro sliko diska z novo sliko in sodeč po opisu člankov v različnih virih, to deluje. Tudi jaz sem opravil pregled in je zlomil datotečni sistem, kot v prvi različici. Bom dal primer:

virt-resize / old_drive_ image / new_drive_image

Podane so bile tudi možnosti, s pretvorbo diska iz surovega v format qcow2, vendar na začetku ustvarim stroje v tej obliki in razložim, zakaj.

KVM formati diskov in stiskanje diska v formatu qcow2

Na samem začetku članka sem omenil ta dva formata.

surov - prevedeno "surovo". Prednost formata, največja zmogljivost, vsestranskost zapisa. Proti masi so glavni:

  • Disk zavzame ves prostor na disku na fizičnem strežniku, ki mu je bil dodeljen;
  • Posnetkov ni mogoče ustvariti.

Qcow2 - To je izvorni QEMU hipervizorski format, pa tudi QEMU-KVM. To je najbolj priročna oblika navideznega diska od vseh, ki jih podpira KVM. Slika diska se povečuje, ko se podatki nabirajo v virtualnem stroju, podprti so posnetki.

Za kaj je uporaben format qcow2? Načeloma vam ni treba zmanjšati velikosti navideznega diska, saj disk zavzame strežnik, tam je zasedenih točno toliko prostora. Če se vaši podatki na strežniku nenehno prepisujejo in se včasih zgodi, da je disk "otekel", ga lahko enostavno stisnete. Razmislite o tej možnosti. Odpravila bom nekaj prostora na disku in nato izbrisala datoteko:

dd, če je = / dev / zero of = / mytempfile
rm -rf / mytempfile

Pri preverjanju s strežnika je slika diska najprej tehtala 2,4 G in se nato razširila na 5,9 G:

# du -sh / image_path

2.4G *****

# du -sh / image_path

5.9G *****

To pomeni, da po izbrisu podatkov v virtualnem stroju disk ni stisnil nazaj. Da bi datoteka na disku dobila dejansko velikost, uporabim naslednji način:

Varnostno kopiramo datoteko diska, ustavimo virtualni stroj in naredimo naslednje:

qemu-img pretvoriti -O qcow2 / old_image / new_image

Nato lahko preverite velikosti obeh diskov:

# du -sh / new_drive

1.6G / ****

# du -sh / old_disk

5.8G / ****

Kot vidite, je velikost stisnjenega diska 1,6 G. Preimenujte novo sliko diska v tisto, ki jo potrebujemo in zaženite virtualni stroj:

# df -h

Uporabljena velikost datotečnega sistema% Na voljo 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% / škorenj tmpfs 100M 0 100M 0% / run / user / 0 

Preverjanje s strežnika:

slika # du -sh / disk

1.6G / ****

Metoda deluje. Za ves čas uporabe datotečni sistem v virtualnem stroju še nikoli ni umrl. Vendar toplo priporočam, da pred takšnim delom ustvarite kopijo diska, če ne želite izgubiti podatkov.

To je vse, kar sem želel povedati v tem članku. Če ima kdo od obiskovalcev spletne strani delujoč način za zmanjšanje diska na KVM, in sicer zmanjšanje (ne stiskanje) in delujočega, ponudite svoje možnosti in zagotovo jih bom preizkusil.