Come ridurre la dimensione di un'immagine del disco della macchina virtuale KVM?


11

Come si riduce o si riduce la dimensione di un disco della macchina virtuale KVM?

Ho allocato un disco virtuale da 500 GB (archiviato in /var/lib/libvirt/images/vm1.img) e sto trovando questo eccessivo, quindi ora vorrei liberare un po 'di quello spazio per usarlo con altri virtuali macchinari. Sembra che ci siano molte risposte su come aumentare la memorizzazione delle immagini, ma non ridurla. Ho trovato lo strumento virt-resize , ma sembra funzionare solo con partizioni del disco raw, non immagini del disco.

Modifica: sto usando un LVM con una partizione formattata Ext4.

Modifica: screenshot GParted che mostra il layout della mia partizione LVM. Devo fare molto di più quindi ridimensionare il filesystem. Non conosco un modo sicuro per ridimensionare un LVM. E per favore non dirmi di usare pvresize. Nonostante il suo nome, non supporta il ridimensionamento degli LVM.

Screenshot di GParted

Ci ho provato sudo pvresize /dev/vda5, ma dice solo physical volume "/dev/vda5" changedma in realtà non riduce le dimensioni.

Ho provato a iniziare parteda impostare manualmente la dimensione della partizione (molto pericoloso), ma fare print allmi dà solo l'errore "/ dev / sr0 etichetta disco non riconosciuta".

Modifica: seguendo queste istruzioni , sono stato in grado di ridurre con successo sia i miei volumi logici che fisici (anche se ho dovuto ricordare di attivare e disattivare lvm prima e dopo alcuni comandi, che le istruzioni omettono.

Ora GParted mostra 250 G di spazio libero non allocato. Come posso rimuoverlo dall'immagine del disco KVM e restituirlo all'hypervisor sottostante?


Hai davvero bisogno di ridimensionare il disco virtuale o sarebbe sufficiente compattarlo? Potresti fare quest'ultimo con qualcosa del genere qemu-img -O qcow2 vm1.img vm1-compact.qcow2.
Ansgar Wiechers,

@AnsgarWiechers, Sì, ho ancora bisogno di usare il disco e ho allocato molto più spazio di quanto avrò mai bisogno.
Cerin,

Risposte:


10

Grazie a coloro che hanno pubblicato, ma le tue risposte sono state troppo vaghe per essere di aiuto.

Dopo ore di Google, ho finalmente trovato una guida ( link redatto ) che fornisce istruzioni dettagliate su come ridurre il mio filesystem, i volumi logici e i volumi fisici. Il trucco che manca alla maggior parte delle guide è la necessità di eliminare effettivamente le partizioni fisiche e ricrearle con le dimensioni corrette, perché parted non è in grado di ridimensionare le partizioni lvm.

Ho quindi trovato questa documentazione su qemu-img, che spiega come ridurre un'immagine del disco virtuale in formato non elaborato eseguendo:

sudo qemu-img resize /var/lib/libvirt/images/myvm.img 255G

qemu-img è un ottimo strumento per lavorare con le immagini del disco per kvm. 3 anni dopo il tuo link sembra interrotto, qui la pagina di manuale da die.net linux.die.net/man/1/qemu-img
Louis Loudog Trottier,

E se qualcuno desidera questa comodità ed è bloccato con (non vuole) una VM .qcow2, convertilo prima qemu-img convert -f qcow2 -O raw image.qcow2 image.imge quindi puoi eseguire il comando sopra.
oemb1905,

4

Cosa devi fare,

  • Fai un backup
  • Riduci il / i file system / i * non farlo su un sistema live, ti consiglio di usare un cd live.
  • Crea una nuova immagine del disco della dimensione desiderata.
  • Esegui un sistema operativo live, con le immagini vecchie e nuove allegate come dischi rigidi (virtuali) (non montati)
  • Creare le nuove partizioni della stessa dimensione delle partizioni ridimensionate sul vecchio disco
  • Utilizzare dd per eseguire il mirroring dei dati nella nuova partizione.
  • Potrebbe essere necessario eliminare / rigenerare grub (2) per avviare correttamente.

Ciò può essere realizzato sia tramite GUI che tramite CLI

risorse

Utensili

  • gparted (link omesso a causa di spam, rappresentante non sufficiente)

La parte difficile è "Riduci il filesystem". Sto usando un LVM, che nessuno strumento ha trovato ridimensionamento del supporto. Nemmeno un Live CD GParted.
Cerin,

Penso che questo lo copra, non l'ho usato, quindi per favore segnala tcpdump.com/kb/os/linux/lvm-resizing-guide/shrink.html
daxroc

Ci sono 2 punti principali da osservare: 1) Fai le cose in ordine ( prima riduci il filesystem, poi riduci la partizione, quindi riduci il disco). 2) La procedura / gli strumenti per ridimensionare un filesystem dipendono fortemente dal filesystem reale (che l'OP ha scelto di non rivelare). L'articolo pubblicato da @daxroc non funzionerà con filesystem diversi da ext [234].
Ansgar Wiechers,

@daxroc, devo ridurre sia i volumi logici che fisici. Il tuo link copre solo la riduzione del volume logico.
Cerin,

concordato. backup, nuovo disco, ripristino è il più semplice e sicuro
dyasny

0

Questo ha funzionato davvero bene per me. Comprime e riduce i blocchi 0 nell'immagine del disco. L'immagine si espanderà nel tempo man mano che viene sovrascritta.

qemu-img convert -c -O qcow2 vmdisk.qcow2 vmdisk-comp.qcow2

-4

Prima di fare ciò, ti consiglio di prendere una copia completa dell'immagine del disco così com'è, quindi quando tutto si rompe puoi semplicemente copiarlo di nuovo per ricominciare.

Ci sono 3 cose che devi fare:

1) Ingrandisci l'immagine del disco. Nel tuo host:

qemu-img ridimensiona foo.qcow2 + 32G

Ora il tuo ospite può vedere un disco più grande, ma ha ancora vecchie partizioni e filesystem.

2) Ingrandisci l'immagine della partizione all'interno del disco. A tale scopo, è necessario avviare un LiveCD nel proprio guest, poiché non sarà possibile interferire con una partizione montata. Questo è abbastanza coinvolto e probabilmente la parte più pericolosa. È parecchio da copiare qui, quindi per il momento mi limiterò a collegare. Vuoi fare qualcosa del genere:

http://www.howtoforge.com/linux_resizing_ext3_partitions_p2

OPPURE 2b) la creazione di una nuova partizione sarebbe più semplice (e più sicura) se si desidera solo più spazio di archiviazione. Usa fdisk o cfdisk, o qualunque cosa tu ti senta a tuo agio - dovresti vedere un sacco di spazio non allocato sul tuo disco ospite ora.

3) Infine, se hai ridimensionato la tua partizione esistente, ingrandisci il filesystem all'interno della nuova partizione più grande (questo è in realtà nella guida sopra collegata comunque). All'interno del tuo ospite:


6
Sta cercando di rendere l'immagine più piccola , non più grande.
Michael Hampton,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.