Saltar al contenido

¿Es posible reducir en línea un volumen EXT4 con LVM?

Solución:

Solución 1:

Como decía el mensaje, solo puedes crecer un sistema de archivos ext4 en línea. Si desea reducirlo, primero deberá desmontarlo.

Según el responsable del mantenimiento del sistema de archivos ext4, Ted Ts’o:

Lo sentimos, no se admite la reducción en línea.

Solucion 2:

Si el caso es un servidor remoto sin consola, puede reducir el sistema de archivos usando initramfs mientras reinicia. Debe agregar resize2fs a initramfs y ejecutarlo antes de montar root.

Ejemplo de Debian / Ubuntu:

/ etc / initramfs-tools / hooks / resizefs (ejecutable):

#!/bin/sh

set -e

PREREQS=""

prereqs() { echo "$PREREQS"; }

case $1 in
    prereqs)
        prereqs
        exit 0
    ;;
esac

. /usr/share/initramfs-tools/hook-functions

copy_exec /sbin/e2fsck
copy_exec /sbin/resize2fs
    
exit 0

/ etc / initramfs-tools / scripts / local-premount / resizefs (ejecutable)

#!/bin/sh

set -e

PREREQS=""

prereqs() { echo "$PREREQS"; }

case "$1" in
    prereqs)
        prereqs
        exit 0
    ;;
esac

# simple device example
/sbin/e2fsck -yf /dev/sda1
/sbin/resize2fs /dev/sda1 5G # see size info below
/sbin/e2fsck -yf /dev/sda1

# complex device example
# activate md-raid containing FS/PV
#/sbin/mdadm -A /dev/md0
# activate VG containing FS
#/sbin/lvm vgchange -ay vg0
# resize
#/sbin/e2fsck -yf /dev/vg0/root # or /dev/md0
#/sbin/resize2fs /dev/vg0/root 5G
#/sbin/e2fsck -yf /dev/vg0/root

Ahora corre update-initramfs -u -k kernel-name para actualizar initramfs para el kernel kernel-name que está configurado como predeterminado en su cargador de arranque (grub). En caso de falla de arranque, puede arrancar con otro kernel / initramfs sano sin modificar. O puedes usar all para actualizar todos los núcleos, pero luego no tiene vuelta atrás.

Compruebe que no tiene ninguna herramienta en su sistema que haga crecer el sistema de archivos automáticamente (por ejemplo, cloud-init – comentario resizefs en /etc/cloud/cloud.cfg).

Reiniciar. Verifique el tamaño del sistema de archivos. Elimine los scripts initramfs y ejecute update-intiramfs -u -k kernel-name de nuevo.

Ahora puede encoger el dispositivo subyacente con parted resizepart / mdadm --grow --size= / lvresize -L. El tamaño del dispositivo debe ser mayor que el tamaño del sistema de archivos de los scripts. La forma más sencilla de no cometer errores: si se planifica el tamaño del dispositivo: 6G. establezca el tamaño de fs en el script en 5G. después de cambiar el tamaño de fs: cambie el tamaño del dispositivo a 6G, luego aumente fs al máximo en línea con resize2fs /dev/sda1. Ahora su fs encaja perfectamente en su dispositivo.

Para dracut (Fedora, CentOS) use la misma lógica (/usr/lib/dracut/modules.d).

Esto es muy útil para cifrar o mover rootfs, sin espacio libre disponible para la nueva partición.


Solución 3:

Sí, puede reducir / mover / hacer crecer una partición raíz sin reiniciar (ni livecd, ni usbkey): consulte esta respuesta. Está muy bien escrito y es fácil de seguir, aunque bastante largo y un poco arriesgado.

resize2fs no se puede encoger en línea ext4 particiones. Esta limitación, cuando se aplica en la partición raíz, puede llevarlo a pensar que no puede evitar reiniciar el host para permitir reducir la root partición, que podría ser algo que desee evitar. El proceso vinculado le permitirá desmontar la partición raíz sin reiniciar. Así que en esta luz no es estrictamente hablando en línea cambio de tamaño con respecto al estado montado de la partición, sin embargo, sigue siendo un cambio de tamaño en línea con respecto al estado en línea de la red o la accesibilidad del host.

Por supuesto, si solo desea hacer crecer su partición ext4, debe atenerse al funcionamiento convencional resize2fs soluciones.

La solución general que he vinculado funcionará en cualquier tipo de solución dedicada o VPS, por ejemplo.

TLDR; esta solución implica pivot_root para tmpfs así que puedes umount de forma segura su partición raíz viva y juegue con ella. Una vez hecho esto, pivot_root de nuevo en su nueva partición raíz.

Esto permite prácticamente cualquier manipulación en el sistema de archivos raíz (moverlo, cambiar el sistema de archivos, cambiar su dispositivo físico …).

Personalmente he usado esto, y también funciona muy bien en el sistema Debian, pero la guía se escribió inicialmente en 2007 para redhat, la respuesta que he vinculado se actualizó para CentOS7. Es muy probable que funcione en tu OpenSUSE, aunque probablemente con alguna adaptación.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *