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
4. April 2012 at 12:37 pm :
Gracias, me sirvió de maravillas
Saludos
30. April 2012 at 8:37 am :
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.