GNU/Linux >> Znalost Linux >  >> Linux

Je online změna velikosti disku možná s KVM?

Řešení 1:

Vím, že je to stará otázka, ale našel jsem ji, když jsem hledal řešení, a doufám, že to pomůže někomu dalšímu.

Pokud jde o dnešek, je možné změnit velikost pevného disku na stroji. Našel jsem funkční způsob zde:

https://bugzilla.redhat.com/show_bug.cgi?id=648594

Je třeba provést následující kroky:

  1. Zjistěte název souboru a název zařízení KVM pevného disku, jehož velikost chcete změnit:

    [email protected]:/data# virsh dumpxml test | xpath -e /domain/devices/disk
    Found 2 nodes in stdin:
    -- NODE --
    <disk type="file" device="disk">
      <driver name="qemu" type="qcow2" />
      <source file="/data/test.img" />
      <backingStore />
      <target dev="vda" bus="virtio" />
      <alias name="virtio-disk0" />
      <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0" />
    </disk>
    -- NODE --
    <disk type="file" device="cdrom">
      <driver name="qemu" type="raw" />
      <source file="/data/images/debian-8.2.0-amd64-netinst.iso" />
      <backingStore />
      <target dev="hda" bus="ide" />
      <readonly />
      <alias name="ide0-1-1" />
      <address type="drive" controller="0" bus="1" target="0" unit="1" />
    </disk>
    

Pro nás je zajímavý disk. Měli byste hledat source a alias bloky. Pro mě je název souboru test.img a název aliasu je virtio-disk0 . Před tento název musíte přidat drive- získat název jednotky qemu.

  1. Nyní ve skutečnosti změníme velikost disku pomocí qemu monitor:

    virsh qemu-monitor-command test block_resize  drive-virtio-disk0  100G --hmp
    

Všimněte si, že název souboru byl použit bez přípony .img a disk- byl přidán k aliasu disku. 100G je výsledná velikost disku, kterou chceme mít

  1. Přihlaste se k počítači a zkontrolujte, zda byla skutečná velikost změněna:

    [email protected]:~# fdisk -l
    
    Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x7e6e7f71
    
    Device     Boot  Start       End   Sectors  Size Id Type
    /dev/vda1  *      2048    499711    497664  243M 83 Linux
    /dev/vda2       501758 167770111 167268354 79.8G  5 Extended
    /dev/vda5       501760 167770111 167268352 79.8G 8e Linux LVM
    

A je to! Nyní můžete buď vytvořit nové oddíly, nebo změnit velikost stávajících.

Řešení 2:

AFAIK, to není možné -- můžete přidat nové obrazy disku, a jak jste uvedli, můžete také přidat nové obrazy na svazek LVM, ale aby bylo možné změnit velikost aktivního zaváděcího obrazu disku, musíte jej ukončit dolů a upravit oddíly.

Zde je dobré vysvětlení pro rozšíření obrázku. I když to vyžaduje vypnutí, pravděpodobně byste se mohli obejít jen s několika minutami výpadku, zvláště pokud se vyhnete volbě obrazu --nonsparse a disk gparted přidáte do souboru iso a předem připojíte k hostovi KVM. Doufám, že to pomůže.

Řešení 3:

Myslím, že jste se zasekli v tom, co jste zmínil, pokud to chcete udělat, aniž byste stroj sundali.

Proč prostě nedat virtuálním strojům LUN přímo ze SAN a spravovat tam prostor? To funguje lépe, pokud chcete používat funkce, jako je živá migrace.

KVM je založeno na QEMU, takže veškerá podpora obrazového formátu pochází z tohoto projektu. Zde je dobrý návod, jak změnit velikost různých formátů, které Qemu/KVM podporují. Ale fórum Qemu by bylo dobrým místem pro položení této otázky, pokud zde nenajdete žádné solidní odpovědi.

Další možností, která nemusí být ideální, je použití opravdu velkého formátu qcow2 nebo jiného řídkého formátu obrazu pro jednotky. Takže byste mohli dát každému počítači malý disk pro operační systém a velký řídký obraz pro data pod LVM. Tím by se alespoň zachoval počet virtuálních disků/obrázků, které musíte spravovat. Ale toto tenké poskytování by mohlo být problémem, pokud to uděláte na 1000 počítačích a každý vám zabere volné místo, které vidí.

Věřím, že XEN má v současnosti stejná omezení.

Řešení 4:

Linuxový systém je možné přesouvat mezi disky za běhu. Omezení spočívá v tom, že nemůžete měnit oddíly na disku, který má oddíly v provozu.

Chcete-li to provést, váš kořenový souborový systém musí být na LVM, což často znamená, že musíte mít samostatný spouštěcí souborový systém (to však není nezbytné, jen to usnadňuje práci)

Po zapojení nového disku jej přidáte do LVM pomocí vgextend, pomocí pvmove přesunete rootfs na nový disk, pomocí lvextend a resize2fs rozšíříte logický svazek a souborový systém a poté použijete vgreduce k odstranění starého disku ze svazku skupina. Po vyjmutí lze starý svazek odpojit.

Pro jednoduchý případ máte malý disk pro spouštěcí souborový systém, kterého se nikdy nemusíte dotýkat. Ale pokud je to samo o sobě, je to snadné Chcete-li jej odpojit, odpojte jej, připojte nový a znovu vytvořte spouštěcí disk bez zastavení systému. (jen se při tom nezhroutí)

Poznámka:resize2fs může také zmenšit souborové systémy.


Linux
  1. Příkaz Linux DD – 15 příkladů se všemi možnostmi

  2. Výměna vadného disku RAID 6 za mdadm

  3. Emulace velkých disků v Linuxu pomocí VDO

  1. Spravujte disky pomocí DiskPart

  2. Ansible:je možné změnit velikost souborového systému ext4?

  3. Je možné změnit velikost obrazu disku QEMU?

  1. Zkontrolujte použité místo na disku v systému Linux pomocí du

  2. Chyby při klonování disku s Cat?

  3. Jak vyměnit disk v neredundantním fondu ZFS?