KVM Jak zvětšit / zmenšit velikost disku virtuálního počítače?

V tomto článku budeme hovořit o změně velikosti disků virtuálního stroje KVM, zvažte formáty použitých virtuálních disků. Ukážeme, jak správně zvětšit disk virtuálního stroje v hypervizoru KVM v systému Linux bez ztráty dat, a také projednat možnosti snížení velikosti disku.

Obsah:

  • Zvýšení jednotky KVM Virtual Machine Drive
  • Jak snížit velikost virtuálního disku v KVM?

Zvýšení jednotky KVM Virtual Machine Drive

Rozšíření virtuálního disku KVM

Abychom mohli s diskem pracovat, musí být virtuální stroj vypnutý, jinak nebudeme moci nic dělat. Vezměme si příklad s nárůstem disku, jehož velikost byla původně 20 GB.

Chcete-li zobrazit parametry disku virtuálního stroje KVM, použijte příkaz:

qemu-img info / drive_path

Výstup z příkazu bude něco takového:

Vidíme, že máme dvě pole, která označují velikost, jedná se o virtual_size a disk_size:

  • virtual_size - velikost virtuálního disku zadaná při vytváření nebo rozšiřování disku (v tomto příkladu je maximální velikost disku 20 GB);
  • disk_size - aktuální velikost souboru na disku, tj. kolik místa na disku je momentálně obsazeno na fyzickém serveru (platí pouze pro formát qcow). V našem příkladu zabírá virtuální disk pouze 1,6 GB úložiště.

A hned o formátech. Při vytváření virtuálních počítačů na KVM doporučujeme použít diskový formát qcow2 místo syrového formátu. Později vysvětlím proč.

Dalším krokem je rozšíření disku virtuálního stroje o 5 GB (pro správné rozšíření disku by virtuální počítač neměl mít snímky!).
# qemu-img změna velikosti / cesta + 5G

Velikost obrázku byla změněna.

Pokud okamžitě zkontrolujeme výstup informací o obrazu disku, uvidíme, že se rozšířil:

# qemu-img info / drive_path

image: / drive_drive formát souboru cesty: qcow2 virtuální velikost: 25G (26843545600 bytes) velikost disku: 1.6G cluster_size: 65536 Specifické informace o formátu: kompatibilní: 0,10 bity refcount: 16 

Část práce jsme provedli, ale vyžaduje to také práci z virtuálního počítače v hostujícím OS. Dále ukážeme, jak zvětšit velikost disku u hosta CentOS 7 a Windows Server 2012..

Pokud plánujete přidat další virtuální disk pro VM na hypervizoru KVM, použijí se qemu-img a virsh..

Rozšíření oddílů ve virtuálním stroji Linux CentOS

Po rozšíření disku ze strany serveru musíte virtuální počítač spustit a připojit se k němu pomocí ssh. Veškeré práce budou prováděny pomocí obslužného programu pro správu oddílů pevného disku. fdisk.

Po připojení k serveru zkontrolujeme dostupnost našeho dodatečně připojeného místa:

df-h
fdisk -l

Snímek obrazovky ukazuje, že část / dev / vda2 má velikost 20 GB a máme více volného místa na disku.

Opravme tento okamžik a rozbalte sekci / dev / vda2 na maximální velikost:

# fdisk / dev / vda

Vítejte na fdisk (util-linux 2.23.2). Změny zůstanou pouze v paměti, dokud se nerozhodnete je napsat. Před použitím příkazu write buďte opatrní. Příkaz (m pro pomoc): d Číslo oddílu (1,2, výchozí 2): oddíl 2 je vymazán Příkaz (m pro nápovědu): n Typ oddílu: p primární (1 primární, 0 rozšířený, 3 volný) e rozšířený Vyberte (výchozí p): str Číslo oddílu (2-4, výchozí 2): První sektor (1050624-52428799, výchozí 1050624): Použití výchozí hodnoty 1050624 Poslední sektor, + sektory nebo + velikost K, M, G (1050624-52428799, výchozí 52428799): Při použití výchozí hodnoty 52428799 Oddíl 2 typu Linux a velikosti 24,5 GiB je nastaven příkaz Command (m pro nápovědu): w Tabulka oddílů byla změněna! Volání ioctl () k přečtení tabulky oddílů. VAROVÁNÍ: Opětné čtení tabulky oddílů selhalo s chybou 16: Zařízení nebo prostředek je zaneprázdněn. Jádro stále používá staré tabulky. Nová tabulka bude použita při příštím restartu nebo po spuštění partprobe (8) nebo kpartx (8) Synchronizace disků. 

Potom musíme restartovat virtuální stroj a spustit příkaz, aby se použila přípona disku:

# xfs_growfs / dev / vda2

meta-data = / dev / vda2 isize = 512 agcount = 4, agsize = 1277888 blks = sectsz = 512 attr = 2, projid32bit = 1 = crc = 1 finobt = 0 spinodes = 0 data = bsize = 4096 bloků = 5111552, imaxpct = 25 = sunit = 0 swidth = 0 blks naming = version 2 bsize = 4096 ascii-ci = 0 ftype = 1 log = interní bsize = 4096 bloků = 2560, version = 2 = sectsz = 512 sunit = 0 blks, lenzy-count = 1 realtime = žádný extsz = 4096 bloků = 0, rtextents = 0 datových bloků změněno z 5111552 na 6422272 

# df -h

Použitý souborový systém Využití Využití% Nasazeno 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% / spouštěcí tmpfs 100M 0 100M 0% / běh / uživatel / 0 

Výsledkem je rozšířený oddíl / dev / vda2. Co přesně jsme tedy udělali:

  • fdisk / dev / vda - spustil obslužný program fdisk připojením k oddílu / dev / vda
  • / d - smažte sekci, ve výchozím nastavení potřebujeme sekci 2, takže v dalším odstavci stačí stisknout klávesu Enter
  • / n - vytvořte novou sekci, v dalším odstavci stiskněte klávesu Enter nebo napište str, Další Zadejte, protože vytvořená sekce bude výchozí 2.
  • Při určování prvního a posledního sektoru také stiskneme Enter, pokud chceme rozšířit sekci na maximum, pokud chcete určit konkrétní velikost, v posledním sektoru zadejte velikost disku, jak je uvedeno v nabídce + velikost K, M, G Velikost nemůže být méně než dříve!
  • / w - použít naše nastavení.

Po restartu zkontrolujte disk příkazem:

xfs_growfs / dev / vda2

Některé zdroje označují příkaz k dokončení tohoto postupu:

resize2fs / dev / vda2

Ale to nefunguje se systémem souborů xfs!

Práce na rozšíření disku na virtuálním počítači CentOS 7 byla dokončena.

Rozšíření disku v hostujícím systému Windows Server

Připojíme se k virtuálnímu stroji pomocí rdp nebo VNC a provádíme práci na rozšíření disku.

  1. Otevřete Správce serverů -> Nástroje -> Správa počítače;
  2. V okně, které se otevře, vyberte v nabídce Správa disků, poté byste měli vidět všechny své jednotky a nepřidělené místo, které jsme přidali od hypervizora KVM;
  3. Vyberte požadovanou jednotku a klikněte na Rozšířený svazek;
  4. Ve výchozím nastavení bude veškerý dostupný prostor nabízen ke zvětšení velikosti disku;
  5. Klikněte na "Další" a dokončete rozšíření. Po tomto postupu bude nutné rozšířit vaši sekci v systému;

Chtěl bych dodat, že před procedurou rozšíření disku pro virtuální stroj vám doporučuji zálohovat samotný disk. Zastavte virtuální počítač a zkopírujte bitovou kopii do záložního adresáře nebo do libovolného adresáře, který má volné místo. Pokud se během práce něco pokazí, můžete vždy vrátit obraz virtuálního disku ze zálohy.

Jak snížit velikost virtuálního disku v KVM?

Ve své práci jsem dříve často narazil na tento problém, ale bohužel nemůžete bezpečně redukovat disk na virtuálním stroji v KVM! Jedinou přijatelnou velikostí pro zmenšení velikosti disku virtuálního stroje KVM ve fyzickém úložišti je jeho komprese prostřednictvím převodu.

Na internetu je mnoho článků, pravděpodobně kvůli nim můžete zmenšit velikost disku ve virtuálním počítači, ale to nefunguje.

Uvedu několik příkladů, na které jsem narazil a které jsem osobně zkontroloval.

Redukce KVM disku pomocí nástroje qemu

Řada zdrojů popisuje akce provedené pomocí obslužného programu qemu. Navrhují zmenšit velikost disku virtuálního počítače pomocí příkazu:

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

Nebo tuto možnost s konkrétní velikostí:

qemu-img resize / 25G drive_path - uveďte velikost disku v 25G

Co se stane po provedení tohoto příkazu? Spouštíme server a systém se samozřejmě nespustí:

Pokusil jsem se nejprve zmenšit oddíl zpod systému pomocí obslužného programu fdisk, ale v tomto případě se systém také zastaví načítání, i když vynecháte krok zmenšení disku z fyzického serveru a to je logické. Sekce, kterou omezujeme, systém a podle toho i OS, zastaví načítání, protože když se zmenší disk, informace se zjevně zničí.

Redukce virtuálního disku se substitucí obrazu

V pokynech již není tak běžná možnost - to zmenšuje disk a nahrazuje starý. To znamená, že vytvoříte nový virtuální stroj s požadovanou velikostí disku. Poté vyměňte starý obraz disku za nový a podle popisu článků z různých zdrojů to funguje. Také jsem provedl kontrolu a rozbil systém souborů, jako v první verzi. Uvedu příklad:

virt-resize / old_drive_ image / new_drive_image

Možnosti byly také dány, s převedením disku ze surového do formátu qcow2, ale já jsem původně vytvořil stroje v tomto formátu a vysvětlil, proč.

Formáty disku KVM a komprese disku ve formátu qcow2

Na samém začátku článku jsem zmínil tyto dva formáty.

syrové - přeloženo „surové“. Výhoda formátu, maximální výkon, univerzálnost formátu. Nevýhody, hlavní jsou:

  • Disk zabírá veškerý diskový prostor na fyzickém serveru, který mu byl přidělen;
  • Nelze vytvářet snímky.

Qcow2 - Toto je nativní formát hypervizoru QEMU a také QEMU-KVM. Toto je nejpohodlnější formát virtuálního disku ze všech podporovaných v KVM. Obraz disku se zvyšuje, jak se hromadí data ve virtuálním stroji, snímky jsou podporovány.

K čemu je formát qcow2 vhodný? V zásadě nemusíte zmenšovat velikost virtuálního disku, protože disk zabírá server, přesně tak, kolik místa je na něm obsaženo. Pokud se vaše data na serveru neustále přepisují a někdy se stane, že disk je „nabobtnalý“, můžete jej snadno komprimovat. Zvažte tuto možnost. Vymažu místo na disku a poté smažu soubor:

dd if = / dev / zero = / mytempfile
rm -rf / mytempfile

Při kontrole ze serveru obraz disku nejprve vážil 2,4 G a poté expandoval na 5,9 G:

# du -sh / image_path

2,4G *****

# du -sh / image_path

5,9G *****

To znamená, že po odstranění informací ve virtuálním počítači se disk nekomprimoval zpět. Aby soubor na disku získal skutečnou velikost, používám následující metodu:

Zálohujeme soubor disku, zastavíme virtuální počítač a poté uděláme následující:

qemu-img převést -O qcow2 / old_image / new_image

Pak můžete zkontrolovat velikost těchto dvou disků:

# du -sh / new_drive

1,6 G / ****

# du -sh / old_disk

5,8 G / ****

Jak vidíte, velikost komprimovaného disku je 1,6 G. Přejmenujte nový obraz disku na ten, který potřebujeme, a spusťte virtuální počítač:

# df -h

Použitý souborový systém Využití Využití% Nasazeno 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% / spouštěcí tmpfs 100M 0 100M 0% / běh / uživatel / 0 

Ověření ze serveru:

# du -sh / obrázek disku

1,6 G / ****

Metoda funguje. Po celou dobu jeho používání systém souborů ve virtuálním stroji nikdy nezemřel. Důrazně však doporučujeme, abyste před takovou prací vytvořili kopii disku, pokud nechcete ztratit data.

To je vše, co jsem chtěl v tomto článku říct. Pokud má jeden z návštěvníků webu způsob, jak snížit disk na KVM, konkrétně redukci (nikoli kompresi) a funkční, nabídněte své možnosti a já je určitě vyzkouším.