Combinar discos duros

Hay múltiples formas de combinar dos o más discos duros para disponer del espacio del conjunto en un sólo sistema de ficheros (en lugar de tenerlo fragmentado en varios)

La estrategia clásica es RAID, desde una concatenación secuencial (modo lineal) hasta un reparto que soporte el fallo de dos discos y aproveche todos para acelerar las operaciones de entrada salida (RAID 6). No obstante, con los discos actuales (de varios terabytes) los tiempos de reconstrucción son larguísimos, lo cual hace que la protección frente a fallo sea relativa.

Otra opción versátil es LVM, cuyas últimas versiones han integrado los diversos modos RAID: “a tiras” (stripping), espejo (mirroring o RAID1)… Y además permite combinar trozos (o discos) de distinto tamaño. Y hacer instantáneas (snapshots). Y usar transparentemente un disco de estado sólido (SSD) para acelerar las operaciones E/S del conjunto de discos.

Para el caso más simple, combinar dos discos, podemos optar por…

  • RAID0 (lineal o a tiras)
  • RAID 1
  • Un grupo de volúmenes LVM (VG)
  • una “mancomuna” ZFS (pool)
  • un sistema de ficheros btrfs multidispositivo
  • repartir “a mano” el espacio, montando el sistema de ficheros de uno de los discos dentro del sistema de ficheros del otro

lvm2 extensiones insuficientes

Si al intentar aumentar el tamaño de un volumen lógico se queja de que no hay extensiones libres (” Insufficient free space: X extents needed, but only 0 available”), pero vgs muestra que si las hay, comprueba que la reserva de bloques del disco físico está permitida (por ejemplo, con pvs: en la columna Attr debe aparecer la a de allocatable)

Si no está permitida, puedes habilitarla con el comando


pvchange -x y disco

Gestionar discos controladora LSI en sistema operativo

A veces resulta más práctico gestionar los discos conectados a una controladora RAID desde el sistema operativo. Si la BIOS no ofrece esa posibilidad, se puede buscar la manera de hacerlo en la propia controladora.

La interfaz grafica de LSI WebBIOS (Control-H) puede resultar limitada. Aunque no sea cómoda de usar, la linea de comandos “preboot CLI” (Control-Y) ofrece bastantes opciones. Los comandos son esencialmente los mismos de MegaCLI, con pequeñas diferencias sintácticas. La más importante es que cada guión es necesario (incluido el que va delante de cada comando)

# -a hace referencia al adaptador. Normalmente se puede usar el 0 (-a0)
# -page activa la paginación. En los siguientes ejemplos solo se incluye donde puede hacer falta
#   (salidas multipágina)
# ayuda
-h -a0 -page

# Comprobar si JBOD esta habilitado
-AdpGetProp -EnableJBOD -aALL

# Habilitar JBOD
-AdpSetProp -EnableJBOD -1 -aALL

# Listado de discos. Anotar los números de cabina (enclosure) y ranura (slot) de cada disco, para sucesivos comandos
-PDList -aALL -page

# Habilitar discos (si no se encuentran en estado "Unconfigured-Good"
-PDMakeGood -PhysDrv[Cabina:Ranura,...] -a0

# Configurar los discos como JBOD. Si JBOD no está soportado, aparece el mensaje "Failed to change PD state (...) Exit code 0x1"
-PDMakeJBOD -PhysDrv[Cabina:Ranura,...] -a0

# Crear un "RAID-0 de un solo disco"
-CfgLdAdd r0[Cabina:Ranura] -a0

# Comprobar que se ha creado correctamente
-CfgDsply -a0 -page

Estos comandos también se pueden ejecutar con la herramienta megacli.

Más info:

LSI MegaRAID en le-vert.net

MegaCli en Linux RAID Wiki

GPFS

Sistema de ficheros paralelo de alto rendimiento creado por IBM

Cuotas

# Cuota por defecto
mmdefedquota -u fs0

# Cambiar cuota usuarios
mmedquota -u jcuenca

# Mostrar cuota
mmlsquota

# "Informes"
mmrepquota -u -v -a
mmrepquota -g -v -a

Resolución de problemas

Algunos comandos de gpfs usan una shell distribuida (rsh por defecto). Para aprovechar ssh, configurar así:

mmfsadm dump cfgmgr | awk '/ up / {print $3} /\(cluster/ {exit} /Current clock/ {exit} ' > /tmp/wcoll
export WCOLL=/tmp/wcoll
export GPFS_rshPath=/usr/bin/ssh 
# Test mmdsh date

Comandos útiles GPFS

# inodos disponibles
mmdf /dev/fs1

# aumentar número de inodos máximo
mmchfs /dev/fs1 -F XX 

# informacion detallada (por ejemplo, estado de los hilos para comprobar si hay hilos colgado)
mmfsadm dump all

# reiniciar demonio GPFS, "revocando" cualquier token I/O que tuviese
mmfsadm cleanup

# sólo en casos extremos
mmfsck