KVM Ako zväčšiť / zmenšiť veľkosť disku virtuálneho počítača?

V tomto článku budeme hovoriť o zmene veľkosti diskov virtuálneho stroja KVM, zvážte použité formáty virtuálnych diskov. Ukážeme, ako správne zväčšiť disk virtuálneho stroja v hypervízore KVM v systéme Linux bez straty údajov, a tiež diskutujeme o možnostiach zmenšenia veľkosti disku..

obsah:

  • Zvýšenie mechaniky KVM Virtual Machine
  • Ako zmenšiť veľkosť virtuálneho disku v KVM?

Zvýšenie mechaniky KVM Virtual Machine

Rozšírenie virtuálneho disku KVM

Aby sme mohli pracovať s diskom, musí byť virtuálny počítač vypnutý, inak nebudeme môcť nič robiť. Uvažujme príklad s nárastom disku, ktorého veľkosť bola pôvodne 20 GB.

Ak chcete zobraziť parametre disku virtuálneho počítača KVM, použite príkaz:

qemu-img info / drive_path

Výstup z príkazu bude takýto:

Vidíme, že máme dve polia, ktoré označujú veľkosť, jedná sa o virtual_size a disk_size:

  • virtual_size - veľkosť virtuálneho disku zadaná pri vytváraní alebo rozširovaní disku (v tomto príklade je maximálna veľkosť disku 20 GB);
  • disk_size - aktuálna veľkosť súboru na disku, t. koľko miesta na disku je momentálne obsadené na fyzickom serveri (týka sa iba formátu qcow). V našom príklade zaberá virtuálny disk iba 1,6 GB úložného priestoru.

A hneď o formátoch. Pri vytváraní virtuálnych počítačov na KVM odporúčam používať radšej diskový formát qcow2 ako surový. Neskôr vysvetlím prečo.

Ďalším krokom je rozšírenie disku virtuálneho počítača o 5 GB (pre správne rozšírenie disku by virtuálny počítač nemal mať snímky!).
# qemu-img zmena veľkosti / cesta + 5G

Veľkosť obrázka bola zmenená.

Ak okamžite skontrolujeme výstup informácií o obraze disku, zistíme, že sa rozšíril:

# qemu-img info / drive_path

obrázok: / drive_drive formát súboru cesty: qcow2 virtuálna veľkosť: 25G (26843545600 bytes) veľkosť disku: 1.6G cluster_size: 65536 Špecifické informácie o formáte: kompatibilný: 0,10 bity so zľavou: 16 

Vykonali sme časť práce, ale vyžaduje si to aj prácu z virtuálneho počítača v hosťujúcom OS. Ďalej ukážeme, ako zväčšiť veľkosť disku v hosťoch CentOS 7 a Windows Server 2012..

Ak plánujete pridať ďalší virtuálny disk pre VM na hypervízore KVM, použijú sa qemu-img a virsh..

Rozšírenie oddielov vo virtuálnom stroji Linux CentOS

Po rozšírení disku zo strany servera musíte spustiť virtuálny stroj a pripojiť sa k nemu pomocou ssh. Všetky práce sa vykonajú pomocou nástroja na správu oddielov pevného disku. fdisk.

Po pripojení k serveru skontrolujeme dostupnosť nášho dodatočne pripojeného miesta:

df-h
fdisk -l

Snímka obrazovky ukazuje, že časť / dev / vda2 má veľkosť 20 GB a máme viac voľného miesta na disku.

Opravme tento okamih a rozbaľte časť / dev / vda2 na maximálnu veľkosť:

# fdisk / dev / vda

Vitajte na fdisk (util-linux 2.23.2). Zmeny zostanú iba v pamäti, kým sa nerozhodnete ich napísať. Pred použitím príkazu na zápis buďte opatrní. Príkaz (m pre pomoc): d Číslo oddielu (1,2, predvolené 2): Oddiel 2 je vymazaný Príkaz (m pre pomoc): n Typ oddielu: p primárny (1 primárny, 0 rozšírený, 3 voľný) e rozšírený Vyberte (predvolený p): p Číslo oddielu (2-4, predvolené 2): Prvý sektor (1050624-52428799, predvolené 1050624): Pomocou predvolenej hodnoty 1050624 Posledný sektor, + sektory alebo + veľkosť K, M, G (1050624-52428799, predvolené 52428799): Pri použití predvolenej hodnoty 52428799 2. oddiel typu Linux a veľkosti 24,5 GiB je nastavený príkaz Command (m pre pomoc): w Tabuľka oddielov bola zmenená! Volám ioctl () na opätovné prečítanie tabuľky oddielov. VAROVANIE: Opätovné načítanie tabuľky oddielov zlyhalo pri chybe 16: Zariadenie alebo prostriedok je zaneprázdnený. Jadro stále používa starú tabuľku. Nová tabuľka sa použije pri nasledujúcom reštarte alebo po spustení partprobe (8) alebo kpartx (8) synchronizačných diskov. 

Potom musíme reštartovať virtuálny počítač a vykonať príkaz, aby sme mohli použiť rozšírenie disku:

# xfs_growfs / dev / vda2

metaúdaje = / dev / vda2 isize = 512 agcount = 4, agsize = 1277888 blks = sectsz = 512 attr = 2, projid32bit = 1 = crc = 1 finobt = 0 spinodes = 0 data = bsize = 4096 blokov = 5111552, imaxpct = 25 = sunit = 0 šírka = 0 názvov blks = verzia 2 bsize = 4096 ascii-ci = 0 ftype = 1 log = interná veľkosť b = = 4096 blokov = 2560, verzia = 2 = sectsz = 512 sunit = 0 blks, lenivý počet = 1 realtime = žiadny extsz = 4096 blokov = 0, obsah = 0 dátových blokov zmenených z 5111552 na 6422272 

# df -h

Použitá veľkosť súborového systému Použitie Využitie% Namontované 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% / beh / užívateľ / 0 

Výsledkom je rozšírený oddiel / dev / vda2. Čo sme presne urobili:

  • fdisk / dev / vda - spustením obslužného programu fdisk pripojením k sekcii / dev / vda
  • / d - odstrániť sekciu, v predvolenom nastavení potrebujeme sekciu 2, takže v nasledujúcom odseku stačí stlačiť kláves Enter
  • / n - vytvorte novú sekciu, v nasledujúcom odseku jednoducho stlačte Enter alebo napíšte p, Ďalej Zadajte, pretože vytvorená sekcia bude predvolene nastavená na 2.
  • Pri zadávaní prvého a posledného sektora tiež stlačíme kláves Enter, ak chceme rozšíriť časť na maximum, ak chcete zadať konkrétnu veľkosť, v poslednom sektore zadajte veľkosť disku tak, ako je to uvedené v ponuke + veľkosť K, M, G Veľkosť nemôže byť menej ako predtým!
  • / w - použiť naše nastavenia.

Po reštartovaní disku skontrolujte pomocou príkazu:

xfs_growfs / dev / vda2

Niektoré zdroje označujú príkaz na dokončenie tohto postupu:

resize2fs / dev / vda2

To však so súborovým systémom xfs nefunguje!

Práce na rozširovaní diskov na virtuálnom počítači CentOS 7 boli dokončené.

Rozšírenie disku v hosťujúcom systéme Windows Server

K virtuálnemu stroju sa pripájame pomocou rdp alebo VNC a vykonávame prácu na rozširovaní disku.

  1. Otvorte Správca serverov -> Nástroje -> Správa počítačov;
  2. V okne, ktoré sa otvorí, vyberte v ponuke Správa diskov, potom by ste mali vidieť všetky svoje jednotky a nepridelené miesto, ktoré sme pridali od hypervízora KVM;
  3. Vyberte požadovanú jednotku a kliknite na položku Extended Volume;
  4. V predvolenom nastavení bude k dispozícii celý priestor na zväčšenie veľkosti disku;
  5. Kliknite na tlačidlo „Ďalej“ a dokončite rozšírenie. Po tomto postupe bude potrebné rozšíriť časť systému;

Chcel by som dodať, že pred procedúrou rozšírenia disku pre virtuálny stroj vám odporúčam zálohovať samotný disk. Zastavte virtuálny počítač a skopírujte obraz disku do záložného adresára alebo do ľubovoľného adresára, ktorý má voľné miesto. Ak sa počas práce niečo pokazí, môžete vždy vrátiť obraz virtuálneho disku zo zálohy.

Ako zmenšiť veľkosť virtuálneho disku v KVM?

Vo svojej práci som sa predtým často stretával s týmto problémom, ale žiaľ nemôžete bezpečne znížiť disk na virtuálnom stroji v KVM! Jedinou prijateľnou veľkosťou na zníženie veľkosti disku virtuálneho stroja KVM vo fyzickom úložisku je kompresia pomocou konverzie.

Na internete je veľa článkov, pravdepodobne kvôli ktorým môžete zmenšiť veľkosť disku vo virtuálnom počítači, ale to nefunguje.

Uvediem niekoľko príkladov, s ktorými som sa stretol a ktoré som osobne skontroloval.

Redukcia disku KVM pomocou nástroja qemu

Akcie vykonané pomocou obslužného programu qemu opisujú viaceré zdroje. Navrhujú zmenšiť veľkosť disku virtuálneho počítača pomocou príkazu:

qemu-img resize / drive_path -5G - zmenšiť disk o 5G

Alebo túto možnosť so špecifickou veľkosťou:

qemu-img resize / 25G drive_path - uveďte veľkosť disku v 25G

Čo sa stane po vykonaní tohto príkazu? Spustíme server a systém sa samozrejme nespustí:

Pokúsil som sa najprv znížiť oddiel zo systému pomocou obslužného programu fdisk, ale v tomto prípade sa systém zastaví aj načítanie, aj keď vynecháte krok zmenšenia disku z fyzického servera a je to logické. Časť, ktorú obmedzujeme, systém a podľa toho aj OS, sa zastaví načítavanie, pretože keď sa disk zmenší, informácie sú zjavne zničené..

Redukcia virtuálneho disku so substitúciou obrazu

V pokynoch už nie je taká bežná možnosť - to zmenšuje disk a nahradzuje starý. To znamená, že vytvoríte nový virtuálny stroj s veľkosťou disku, ktorú potrebujete. Potom nahraďte starý obraz disku novým obrazom a podľa popisu článkov z rôznych zdrojov to bude fungovať. Tiež som urobil kontrolu a zlomil to systém súborov, ako v prvej verzii. Uvediem príklad príkazu:

virt-resize / old_drive_ image / new_drive_image

Možnosti boli tiež dané, s konverziou disku zo surového do formátu qcow2, ale na začiatku vytváram stroje v tomto formáte a vysvetľujem prečo.

Formáty diskov KVM a kompresia diskov vo formáte qcow2

Na samom začiatku článku som spomenul tieto dva formáty.

surový - preložené „surové“. Výhoda formátu, maximálny výkon, univerzálnosť formátu. Nevýhody, hlavné sú:

  • Disk zaberá všetok diskový priestor na fyzickom serveri, ktorý mu bol pridelený;
  • Nie je možné vytvárať snímky.

qcow2 - Toto je natívny formát hypervízora QEMU, ako aj QEMU-KVM. Toto je najpohodlnejší formát virtuálneho disku zo všetkých podporovaných v KVM. Obraz disku sa zvyšuje s hromadením údajov vo virtuálnom stroji, snímky sú podporované.

Pre čo je formát qcow2 vhodný? V zásade nemusíte zmenšovať veľkosť virtuálneho disku, pretože disk zaberá na serveri presne toľko miesta, koľko je na ňom obsadené. Ak sa vaše údaje na serveri neustále prepisujú a niekedy sa stáva, že disk je „opuchnutý“, môžete ho ľahko komprimovať. Zvážte túto možnosť. Vymažem nejaké miesto na disku a potom zmažem súbor:

dd ak = / dev / nula = / mytempfile
rm -rf / mytempfile

Pri kontrole zo servera obraz disku najskôr vážil 2,4 G a potom expandoval na 5,9 G:

# du -sh / image_path

2,4 G *****

# du -sh / image_path

5,9 G *****

To znamená, že po odstránení informácií vo virtuálnom počítači sa disk nekomprimoval späť. Na získanie skutočnej veľkosti súboru na disku používam nasledujúcu metódu:

Zálohujeme súbor disku, zastavíme virtuálny počítač a potom urobíme nasledujúce kroky:

qemu-img konvertovať -O qcow2 / old_image / new_image

Potom môžete skontrolovať veľkosť týchto dvoch diskov:

# du -sh / new_drive

1,6 G / ****

# du -sh / old_disk

5,8 G / ****

Ako vidíte, veľkosť komprimovaného disku je 1,6 G. Premenujte nový obraz disku na disk, ktorý potrebujeme, a spustite virtuálny počítač:

# df -h

Použitá veľkosť súborového systému Použitie Využitie% Namontované 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% / beh / užívateľ / 0 

Overenie zo servera:

# du -sh / obraz disku

1,6 G / ****

Metóda funguje. Systém súborov vo virtuálnom stroji nikdy nezomrel. Dôrazne však odporúčam, aby ste pred takou prácou vytvorili kópiu disku, ak nechcete stratiť údaje.

To je všetko, čo som chcel v tomto článku povedať. Ak má jeden z návštevníkov stránok spôsob, ako znížiť disk na KVM, konkrétne redukciu (nie kompresiu) a funkčnú, ponúknite svoje možnosti a určite ich otestujem.