ArchiTecnologia

Aprendizaje abierto. Conocimiento libre.

ArchiTecnologia
CertificacionesLinuxLPI

LPIC-2 Tema 203.2: Mantenimiento de un sistema de archivos en Linux

Nueva entrada sobre las certificaciones LPIC-2, esta vez sobre el tema 203.2 dedicado al mantenimiento del sistema de archivos en Linux. Para ello, los candidatos tendrán que conocer algunas de las herramientas del sistema destinadas a ello, además de saber monitorizar el estado de los medios de almacenamiento con S.M.A.R.T..

En estos exámenes se evaluarán los conocimientos sobre las herramientas y utilidades para manipular sistemas de archivos como los ext2, ext3 y ext4, además de Btrfs (inclusidos subvolúmenes y snapshots), XFS y conocimientos sobre ZFS.

Sobre ZFS

ZFS (Zettabyte File System) es un sistema de archivos, bajo estándar POSIX, creado originalmente por Sun Microsystems (ahora Oracle) para el sistema operativo Solaris. Destaca por su gran capacidad, sencillez de mantenimiento, capacidad de auto-reparación (self-healing) contra corrupción de datos, capacidad de compresión y cifrado transparente, capacidad para instantáneas (snapshots), gran capacidad para un máximo de 248 y tamaños máximos de volúmenes de hasta 16 EB, etc.

El código fuente de ZFS se lanzó bajo licencia CDDL como parte de OpenSolaris, momento en el que sería adaptado para otros sistemas operativos, como un port FUSE y otro nativo para Linux, BSD, o Illumos. y nacería la implementación OpenZFS.

Canonical incluyó ZFS en Ubuntu en 2016, siendo la primera distro en adoptarlo de forma oficial. Incluso se admite de forma experimental para la partición raíz.

La adopción de ZFS en Linux causaría mucha controversia, ya que FSF aseguraba que CCDL no era compatible con la licencia GPL del kernel. Para salvar este obstáculo, se debe compilar y cargar el módulo con el código ZFS por separado.

En 2006 hubo una posible solución a esta incompatibilidad de licencias, y era usando un port experimental de ZFS para FUSE que se ejecutaba desde el espacio de usuario en vez de integrarlo en el kernel. Así no se consideraría un trabajo derivado del núcleo, aunque eso generó penalizaciones de rendimiento importantes, terminando en el abandono en 2016.

Más información – OpenZFS

Herramientas para mantenimiento de sistemas de archivos

Para poder mantener los sistemas de archivos, tienes que conocer una serie de herramientas y utilidades que ya introduje en un artículo previo. Por eso, aquí me limitaré a poner algunos ejemplos frecuentes, de algunas de ellas, que se suelen hacer durante el mantenimiento.

fsck

Esta utilidad es muy importante para verificar y reparar errores en el sistema de archivos. Sus siglas provienen de File System Consistency Check y suele ejecutarse de forma transparente durante el arranque, como recordarás cuando se estudió el fichero /etc/fstab. No obstante, también podrás ejecutarlo en cualquier otro momento con privilegios.

Se puede emplear con tres modos de operación:

  • Comprobar si existen errores y dejar que el usuario decida qué hacer.
  • Verificar errores y hacer reparaciones automáticamente.
  • Comprobar errores pero no realizar ninguna acción.

*IMPORTANTE: no se debe usar fsck con unidades montadas. Siempre se deben desmontar antes de operar sobre ellas.

Para su uso, puedes seguir estos ejemplos:

#Verificar si una partición tiene errores sin reparar
fsck -n /dev/sdb2

#Comprobar y reparar automáticamente los errores de /dev/sdb2
fsck -a /dev/sdb2

#Comprobar solo partición con un sistema de archivos específico
fsck -t ext4 /dev/sdb1

#Realizar una comprobación de los errores de todas las particiones
fsck -A

#Si quieres comprobar todas, pero deshabilitar la verificación de /
fsck -AR

#Comprobar coherencia solo en unidades sin montar
fsck -AM

#Más información
man fsck

 Herramientas para btrfs

El sistema de archivos btrfs también se está haciendo un hueco en Linux. Fue anunciado por Oracle para GNU/Linux, con el objetivo de sustituir ext4. La idea era vencer las limitaciones de este otro FS, como el tamaño máximo de los ficheros soportados. Además, está muy orientado a la tolerancia de fallos, reparación y fácil administración. Es decir, coge algunas ideas del diseño de Resier4 y ZFS.

Pues bien, para mantener la integridad de este tipo de sistema de archivos, tiene sus propias herramientas:

#Listar los subvolúmenes
btrfs subvolume list /btrfs

#Crear una instantánea o snapshot del subvolumen SV1 y llamar SV1-snap
btrfs subvolume snapshot /btrfs/SV1 /btrfs/SV1-snap

#Obtener información del FS
btrfs filesystem df /btrfs
btrfs filesystem show

#Forzar la sincronización de datos que no estuvieran escritos
btrfs filesystem sync /btrfs

#Defragmentación de un fichero concreto o un directorio respectivamente
btrfs filesystem defragment -vf /home/system.iso
btrfs filesystem defragment -vf /home

#Redimensionar una partición. Por ejemplo, reducir 2GB una partición
btrfs filesystem resize -2G /btrfs

#Puedes usar + en vez de - para ampliar, o solo usar el número para indicar el nuevo tamaño concreto que quieres que tenga esa unidad. Además de M o K para megas y kilo en vez de gigas.

#Más información
man btrfs

#Convertir un sistema de archivos a Btrfs
btrfs-convert -r /dev/sdc1

#¡IMPORTANTE! Tras la conversión hay que editar /etc/fstab para usar el nuevo UUID y tipo de FS

S.M.A.R.T.

S.M.A.R.T. son las giglas de Self Monitoring Analysis and Reporting Technology. Una tecnología para verificar la salud del disco duro (HDD o SSD). De esa forma, el usuario puede anticiparse y poder realizar una copia de seguridad del contenido, o reemplazar el medio, antes de un fallo irrecuperable.

Esta tecnología se basa en una serie de comprobaciones:

  • Temperatura: un aumento de temperatura suele ser indicativo de problemas en el motor de los HDD.
  • Velocidad de lectura: una reducción de la tasa puede indicar también problemas internos.
  • Tiempo de partida (spin-up): es también indicativo de fallos del motor o cabezal.
  • Contador de sectores reasignados: cuando se reasignan muchos sectores internos suele indicar que la unidad está sufriendo más datos de lo normal y está a punto de fallar.
  • Otros: también miden la velocidad de búsqueda (seek time), altura de vuelo del cabezal, ECC, propiedades eléctricas, fallos de programa en SSD, fallos de borrado en SSD, vida restante según el número de ciclos de escritura y borrado en los SSD, etc.

Para poder trabajar con esta tecnología y obtener datos, puedes usar herramientas como el demonio smartd que se encarga de monitorizar y su fichero de configuración /etc/smartmontools/smartd.conf. Para eso tendrás que tener instalado el paquete smartmontools. Y para operar:

#Mostrar información 
smartctl -a -d /dev/sdb

#Calcular el tiempo estimado de test
smartctl -c  /dev/sdb

#Comprobar el estado de salud del /dev/sdb
smartctl -i /dev/sdb

#Test largo y prolongado o corto y rápido
smartctl --test=long /dev/sdb
smartctl --test=short /dev/sdb

#Mostrar información general de salud de un disco
smartctl -H /dev/sdc

#Mostrar el registro de errores del disco
smartctl -l error /dev/sdc

#Habilitar y deshabilitar SMART en un disco respectivamente
smartctl -s on /dev/sdc
smartctl -s off /dev/sdc

#Ver reslutados del auto-test del disco
smartctl -l selftest /dev/sdb

Otras herramientas para mantenimiento del FS

Por último, también existen otras herramientas que ya introduje en temas previos y que, además de servir para crear y obtener información de los sistemas de archivos, también sirve para su mantenimiento. Aquí tienes algunos ejemplos habituales:

#Comprobar los sectores malos de un disco
mke2fs -c /dev/sdc1

#Simular la creación de un FS para comprobar lo que ocurriría en la stdout
mkfs -t ext3 -n /dev/sda6

#Ver detalles de inode
tune2fs -l /dev/sdc | grep Inode

#Cambiar el Inode-per-group a 8192
mke2fs -i 8192 /dev/sdc

#Cambio del tamaño de Inode en una partición
mke2fs -I 128 -i 8192 /dev/sdc1

#Información del superblock
dumpe2fs -h /dev/sda3
dumpe2fs /dev/sda3

#Obtener información para depuración de un medio
debugfs /dev/sdb2

#Obtener información de la partición XFS
xfs_info /dev/sdc1
#Redimensionar una partición XFS a 256 bloques (1GB, ya que los bloques son de 4096 bytes)
xfs_growfs /dev/sdc4 -D 256

#Mostrar lo que ocurriría durante la reparación del XFS, pero sin hacerlo
xfs_repair -n /dev/sdc1
xfs_check /dev/sdc1

#Reparar el FS
xfs_repair /dev/sdc1

#Backup en XFS
xfsdump –l 0 –L "Copia de seguridad" –f /dev/sdc1 /xfs

#Ver el inventario de copias
xfsdump -l

#Copia de seguridad de un directorio o fichero específico
xfsdump –f /home/prueba /xfs

#Recuperación de las copias realizadas previamente
xfsrestore –f /dev/sdc1 /xfs
xfsrestore –f /home/prueba /xfs

Isaac

Apasionado de la computación y la tecnología en general. Siempre intentando desaprender para apreHender.

Deja una respuesta

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

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar