systemadmin.es > Storage > Sistemas de ficheros > Como reducir un sistema de ficheros ext3 con LVM para crear un volumen nuevo

Como reducir un sistema de ficheros ext3 con LVM para crear un volumen nuevo

Ayer vimos como ampliar un sistema de ficheros ext2 o ext3 en caliente con LVM, hoy veremos el caso de reducir un sistema de ficheros para crear otro volumen.

Supongamos que tenemos este sistema de ficheros:

Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/anf14-postgres  2.0G  818M  1.1G  43% /var/postgres/data

Como que, de momento, no esta soportado reducir un sistema de ficheros en caliente, primero de todo tendremos que parar todos los servicios que usen este punto para a continuación desmontar el sistema de ficheros:

# umount /var/postgres/data

Pasamos un fsck para assegurar que no hay algún problema que pueda después corromper los datos:

# e2fsck -f /dev/anf14/postgres
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/anf14/postgres: 35158/261120 files (0.1% non-contiguous), 217396/522240 blocks

A continuación reducimos el sistema de ficheros con resize2fs. Calculando bien los números no hay problema, pero personalmente prefiero siempre reducir un poco más el sistema de ficheros para luego ampliarlo a lo que de el disco:

# resize2fs /dev/anf14/postgres 1000M
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/anf14/postgres to 256000 (4k) blocks.
The filesystem on /dev/anf14/postgres is now 256000 blocks long.

A continuación reducimos el volumen LVM, en este caso 255 extends que, en este caso (4MB por extend), són 1020MB:

# lvresize -l 255 /dev/anf14/postgres
  WARNING: Reducing active logical volume to 1020.00 MB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce postgres? [y/n]: y
  Reducing logical volume postgres to 1020.00 MB
  Logical volume postgres successfully resized

A continuación podemos ampliar los 20MB de margen que hemos dejado:

# resize2fs /dev/anf14/postgres
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/anf14/postgres to 261120 (4k) blocks.
The filesystem on /dev/anf14/postgres is now 261120 blocks long.

Esta medida de precaución es simplemente para evitar el típico uno de más que se quita que rompe algo importante. A continuación ya podemos montar de nuevo la partición:

# mount -a

El parámetro -a de mount indica que monte todos los sistemas de ficheros que se mencionan en el fstab, por lo que normalmente es la forma más rápida de remontar un sistema de ficheros que hemos tenido que desmontar.

A continuación ya tenemos espacio en el volume group para definir un nuevo volumen:

# lvcreate -l 255 -n mysql anf14
  Logical volume "mysql" created

Creamos el sistema de ficheros:

# mkfs.ext3 /dev/anf14/mysql
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
130560 inodes, 261120 blocks
13056 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
16320 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Creamos el punto donde tiene que ir y montamos:

# mkdir -p /var/mysql/datadir
# mount /dev/anf14/mysql /var/mysql/datadir

2 comments to “Como reducir un sistema de ficheros ext3 con LVM para crear un volumen nuevo”

  1. Gracias, me sirvió de maravillas

    Saludos

  2. Hola,
    Podrias aclarar por ejemplo, como hacerlo cuando la particion a ampliar es la raiz /
    He probado a arrancar en modo single, pero no puedo desmontar el / y por tanto modificar el tamaño. Supongo que la unica solucion seria usar un live cd ¿no?
    Gracias de antemano.
    Un saludo.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>