Configuré un invitado Ubuntu en un host CentOS KVM con inicialmente 6 GB de espacio en disco. ¿Cómo hago para aumentar el espacio en disco del invitado Ubuntu desde la línea de comandos?
EDITAR # 1: estoy usando un archivo de imagen de disco (qemu).
Respuestas:
qemu-img resize vmdisk.img +10G
para aumentar el tamaño de la imagen en 10 Gbfuente
start the VM, resize the partitions and LVM structure within it normally
¿Cómo hacerlo? Por favor explícalo.Método en línea (usando qemu, libvirt y virtio-block)
Para bien o para mal, los siguientes comandos se ejecutarán incluso si el disco virtual de destino está montado. Esto puede ser útil en entornos donde el disco no se puede desmontar (como una partición raíz), la VM debe permanecer encendida y el propietario del sistema está dispuesto a asumir el riesgo de corrupción de datos . Para eliminar ese riesgo, deberá iniciar sesión en la máquina virtual y desmontar primero el disco de destino, algo que no siempre es posible.
Realice lo siguiente desde el hipervisor KVM.
Aumente el tamaño del archivo de imagen de disco en sí (especifique la cantidad a aumentar):
Obtenga el nombre del dispositivo virtio, a través del shell libvirt (
drive-virtio-disk0
en este ejemplo):Indique al controlador virtio que detecte el nuevo tamaño (especifique la nueva capacidad total):
Luego inicie sesión en la VM. La ejecución
dmesg
debe informar que el disco virtio detectó un cambio de capacidad. En este punto, continúe y cambie el tamaño de sus particiones y estructura LVM según sea necesario.fuente
Estas preguntas por defecto del servidor son similares pero más específicas, ¿cambiar el tamaño del disco en línea KVM? & Centos Xen redimensionando la partición DomU y el grupo de volúmenes . El primero hace la pregunta de cómo aumentar un invitado KVM mientras está en línea, mientras que el segundo es específico de XEN usando LVM. Estoy preguntando cómo lograr esto mientras el KVM está desconectado.
NOTA: Este enlace fue útil para el MÉTODO N. ° 1 y muestra cómo lograr aumentar el espacio en disco de un KVM (basado en ext3). CÓMO: Cambiar el tamaño de una imagen de máquina virtual KVM .
Una cosa a tener en cuenta con los invitados KVM es que las particiones que están usando en su interior pueden afectar el método que puede usar para aumentar su espacio en disco.
MÉTODO # 1: Las particiones están basadas en ext2 / ext3 / ext4
Los frutos de este método son los siguientes:
Ahora con el archivo mykvm.img más grande en la mano, inicie gparted y extienda la partición existente en el espacio de disco recién agregado. Este último paso básicamente extiende la partición del sistema operativo para que pueda hacer uso del espacio extra.
MÉTODO # 2: Las particiones están basadas en LVM
Estos son los pasos que seguí aproximadamente para cambiar el tamaño de un invitado KVM que usaba LVM internamente.
ejecute fdisk dentro de VM y elimine y vuelva a crear la partición LVM
Reiniciar la VM
Cambiar el tamaño del volumen físico LVM
Cambiar el tamaño del volumen lógico LVM
Crecer el sistema de archivos
Lo anterior es mi ejemplo, pero seguí los pasos en este sitio web
fuente
virt-manager
y he utilizado los métodos 1 y 2 ampliamente antes de migrar nuestros servidores KVM a una versión más nueva de KVM (CentOS 5 -> CentOS 6). Ahora uso elqemu-img resize
método también.lvextend /dev/Volgroup/lvname /dev/vda2
(todo en una línea, donde / dev / vda2 sería su volumen físico). Sin ninguna otra opción, usará el tamaño máximo en ese grupo de volúmenes.Cambiar el tamaño y expandir las particiones internas en un solo paso
Tenía un host Ubuntu con una imagen de archivo de invitado qcow2 y quería cambiar el tamaño del disco y expandir las particiones apropiadas, todo en un solo paso. Requiere que configure las utilidades del sistema de archivos invitado libvirt, pero de todos modos es útil tenerlas disponibles.
Inspiración de aquí: http://libguestfs.org/virt-resize.1.html
El comando de teclado aquí es:
virt-resize
Preparación:
Ahora haga lo siguiente:
1) cerrar el invitado:
2) Verifique el tamaño actual y vea el nombre de la partición que desea expandir usando la utilidad libvirt:
sudo virt-filesystems --long --parts --blkdevs -h -a name-of-guest-disk-file
3) Cree el nuevo disco de salida (40G):
4) Copie lo antiguo a lo nuevo mientras expande la partición apropiada (suponiendo que su partición de disco del paso 2 fuera / dev / sda1):
5) Cambie el nombre del archivo indisk como copia de seguridad, cambie el nombre del disco externo como indisk (o modifique el XML invitado)
6) Reinicie el invitado y pruebe el nuevo archivo de disco cuidadosamente antes de eliminar el archivo original
7) Beneficio!
fuente
-o preallocation=metadata
crea un archivo disperso. Con esa opción, asigna previamente el tamaño completo.-o preallocation=metadata
y, si no lo hace, también debe omitir eltruncate
paso.virt-resize
crecerá el archivo según corresponda de todos modos.Si está utilizando LVM dentro de la VM, la forma más sencilla de hacerlo sería agregar un nuevo disco virtual a la VM y expandir el grupo de volúmenes y los volúmenes lógicos.
Para verificar si está utilizando LVM run
sudo pvs; sudo vgs; sudo lvs
, obtendrá algo como esto:si el sistema operativo de la VM está usando LVM. En el ejemplo anterior, la VM tiene un disco virtual de 30 Gbytes, configurado usando LVM con un grupo de volúmenes llamado vgWWW que contiene dos volúmenes lógicos, uno para intercambio y otro para todo lo demás.
Si LV está en uso en la VM:
sudo pvcreate /dev/vdb
sudo vgextend vgWWW /dev/vdb
sudo lvextend --extents +100%FREE /dev/vgWWW/root
(o algo así comosudo lvextend --size +8G /dev/vgWWW/root
si no desea aumentarlo por completo, este ejemplo agregaría 8 Gb al volumen)resize2fs /dev/vgWWW/root
Nota: lo anterior supone que los nombres vg / lv son los mismos que en mi ejemplo, lo cual es poco probable, cambie según corresponda, también si la VM ya tenía una unidad virtual llamada
vdb
la nueva será otra cosa (vdc
y así sucesivamente)Nota:
resize2fs
solo funcionará en el sistema de archivos ext2, ext3 y ext4. Si está utilizando algo más, se producirá un error y no hará nada.Nota: como está cambiando el tamaño de un sistema de archivos en vivo
resize2fs
, no se le solicitará que ejecutefsck
primero como lo haría para un sistema de archivos desmontado, simplemente continuará. Es posible que desee ejecutar una comprobación del sistema de archivos de solo lectura, no hay problemas antes de continuar.fuente
Es posible hacer cambios de tamaño en línea. libvirtd admite esto de forma nativa:
Encuentra el nombre del dispositivo de bloque. Debería ser algo como "vda"
Cambiar el tamaño del dispositivo virtual:
He aquí un ejemplo se amplío el
vda
disco desde50GB
que51GB
porundercloud
VM.Ahora eche un vistazo a los detalles del archivo de imagen .qcow2:
Ahora cambiemos el tamaño del dispositivo de bloqueo vda:
Y confirma:
Luego puede usar este script dentro de la VM para mostrar los comandos para cambiar el tamaño de los dispositivos de bloque y fs: https://github.com/mircea-vutcovici/scripts/blob/master/vol_resize.sh .
fuente
Existe la posibilidad de aumentar el tamaño del disco de su VM sin reiniciar la VM si está utilizando la unidad virtio y LVM.
(Opcional) Cree una partición primaria con fdisk para obtener / dev / vdb1, luego use kpartx -a / dev / vdb para releer la tabla de particiones
Use vgextend vg_name / dev / vdb1 (o / dev / vdb si no creó una partición)
Ya terminaste
fuente
De esta manera puede expandir la partición que desee:
Ver más ejemplos aquí .
fuente
Otra forma de hacerlo
vaya a hacer un nuevo escaneo de disco y después de que pueda hacer el cambio de tamaño de su lvm.
fuente
Si tiene LVM en su VM, esto es una locura fácil y rápida.
sudo system-config-lvm
en la terminal) *.La GUI me pareció bastante intuitiva, pero siga los siguientes pasos si tiene problemas.
¡Nota! Al menos en CentOS 6 LVM GUI no está instalado de manera predeterminada, pero puede instalarlo con
yum install system-config-lvm
.fuente
Cambiar el tamaño de la imagen:
aumenta el tamaño de la imagen en 16 GB.
Si su imagen tiene GPT (tabla de particiones GUID), el tamaño de la unidad utilizada en GPT diferirá del nuevo tamaño, debe solucionarlo con
gdisk
:o con
parted
:Por alguna razón, el
parted
arreglo no funciona cuando no se presenta tty (por ejemplo, al aprovisionar con Vagrant), así que lo usogdisk
.Aumente el tamaño de la partición para llenar todo el espacio disponible:
La
x a 2 <Enter>
parte es opcional y necesaria si está utilizando BIOS heredado.MY_PARTITION_GUID=...
y lasc $MY_PARTITION_GUID
partes también son opcionales y necesarias solo si usa el UUID de partición en/etc/fstab
o en otro lugar.Reiniciar o releer particiones con
partx -u $MY_DRIVE
opartprobe
.Extender partición, ejemplo para
ext2
,ext3
oext4
:fuente
Puede usar solus vm con gparted montado. Una vez utilizado con gparted, puede iniciar fácilmente el sistema y ajustar el espacio. Asegúrese de tener establecida la prioridad de arranque correcta. Como referencia, consulte la siguiente URL que podría ser útil. https://greencloudvps.com/knowledgebase/11/How-to-Extend-the-Hard-drive-on-KVM-after-upgrading-VPS.html
fuente