Me encontré recientemente con una base de datos que no arrancaba. Esta base de datos está ubicada en un servidor Linux, así que descartando posibles causas del problema, hice un df -h para ver el procentaje de ocupación de los filesystems del S.O. Fue entonces cuando vi que el filesystem sobre el que reside la base de datos, al que llamaremos "montaje", estaba totalmente lleno (Use%: 100%):
HOST# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 95G 12G 79G 13% / devtmpfs 420G 8.0K 420G 1% /dev tmpfs 420G 80K 420G 1% /dev/shm tmpfs 420G 10M 420G 1% /run tmpfs 420G 0 420G 0% /sys/fs/cgroup /dev/sda1 148M 0 148M 0% /boot/efi /dev/montaje 1.3T 1.3T 0 100% /montaje
Este "montaje" está montado sobre un clúster de IBM Spectrum Scale. Tras ver que no podía liberar espacio en el directorio, decidí añadir un disco al clúster para darle más espacio a /montaje.
Para añadir un disco a un clúster de IBM Spectrum Scale, primero debemos añadir un disco físico o virtual al sistema operativo. Añadí un disco de 1 TB a la máquina virtual y luego miré qué letra se le había asignado al disco a nivel de sistema operativo:
HOST# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 128G 0 disk ├─sda1 8:1 0 148M 0 part /boot/efi ├─sda2 8:2 0 95.9G 0 part / └─sda3 8:3 0 32G 0 part [SWAP] sdb 8:16 0 250G 0 disk └─sdb1 8:17 0 250G 0 part sdc 8:32 0 1T 0 disk └─sdc1 8:33 0 1024G 0 part sdd 8:48 0 1T 0 disk sr0 11:0 1 4.1G 0 rom sr1 11:1 1 4.1G 0 rom sr2 11:2 1 8.5M 0 rom
Vi que era el disco "sdd". Me dirigí entonces al directorio /var/mmfs/config y copié el fichero usado en la creación del primer nodo del cluster (NSD server) hacia un nuevo archivo:
HOST# cp disk.list.data.gpfsnode01 disk.list.data.gpfsnode01.new.adddisk
Edité este archivo cambiando los siguientes valores:
device=/dev/sda por device=/dev/sdd
nsd=data01node01 por nsd=data03node01
De modo que el archivo quedó así:
%nsd: device=/dev/sdd nsd=data03node01 servers=gpfsnode01 usage=dataAndMetadata failureGroup=1001 pool=system
Para saber qué nombre usar en el campo "nsd" (para no introducir un nombre que ya estuviese en uso), ejecuté el comando mmlsnsd para listar los Disk Name ya usados en el clúster:
HOST# mmlsnsd File system Disk name NSD servers --------------------------------------------------------------------------- montaje data01node01 gpfsnode01 montaje data02node01 gpfsnode01
Preparé el disco para ser añadido al clúster con el comando mmcrnsd -F:
HOST# mmcrnsd -F disk.list.data.gpfsnode01.new.adddisk -v yes mmcrnsd: Processing disk sdd
Hecho esto, el disco data03node01 quedó preparado para ser añadido al clúster:
HOST# mmlsnsd File system Disk name NSD servers --------------------------------------------------------------------------- montaje data01node01 gpfsnode01 montaje data02node01 gpfsnode01 (free disk) data03node01 gpfsnode01
Por último, añadí el disco al clúster con el comando mmadddisk:
HOST# mmadddisk montaje -F disk.list.data.gpfsnode01.new.adddisk The following disks of montaje will be formatted on node HOST: data03node01: size 1048576 MB Extending Allocation Map Checking Allocation Map for storage pool system Completed adding disks to file system montaje.
Verifiqué que se hubiera añadido el disco al clúster:
HOST# mmlsnsd File system Disk name NSD servers --------------------------------------------------------------------------- montaje data01node01 gpfsnode01 montaje data02node01 gpfsnode01 montaje data03node01 gpfsnode01
Con el disco ya añadido al clúster, vi que el espacio total de "montaje" había incrementado en 1 TB. Gracias a esto, el filesystem ya no estaba al 100% de uso:
HOST# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 95G 12G 79G 13% / devtmpfs 420G 8.0K 420G 1% /dev tmpfs 420G 80K 420G 1% /dev/shm tmpfs 420G 10M 420G 1% /run tmpfs 420G 0 420G 0% /sys/fs/cgroup /dev/sda1 148M 0 148M 0% /boot/efi /dev/montaje 2.3T 1.3T 0 50% /montaje
Llegados a este punto, probé a levantar la base de datos y ya arrancó sin problemas.
Fuentes:
https://www.ibm.com/support/knowledgecenter/STXKQY_4.2.0/com.ibm.spectrum.scale.v4r2.adm.doc
https://www.ibm.com/support/knowledgecenter/STXKQY_4.2.0/com.ibm.spectrum.scale.v4r2.adm.doc