Administración avanzada de dispositivos de almacenamiento
Requisitos y objetivos
1. Requisitos
Los conocimientos necesarios para la certificación LPIC-1:
Nociones de base sobre los dispositivos, las particiones y los sistemas de archivos.
Edición de archivos.
Comandos de gestión de directorios y archivos.
2. Objetivos
Al final de este capítulo, deberá poder:
Configurar e implementar software RAID.
Administrar los diferentes tipos de discos.
Gestionar los dispositivos iSCSI.
Configurar y administrar LVM (Logical Volume Manager).
Gestión de los dispositivos de almacenamiento
Este tema está dividido en tres partes con pesos diferentes.
1. Configuración de discos RAID
Peso |
3 |
Objetivos |
Configurar e implementar software RAID. Esto incluye los niveles de RAID 0, 1 y 5. |
a. Competencias principales
-
Archivos de configuración y herramientas de gestión del software RAID.
b. Elementos empleados
-
mdadm.conf
-
mdadm
-
/proc/mdstat
-
Partición de tipo 0xFD
2. Optimizar el acceso a los dispositivos de almacenamiento
Peso |
2 |
Objetivos |
Configurar el núcleo para administrar diferentes tipos de discos. Conocer las herramientas de software para listar y modificar la configuración de los dispositivos iSCSI. |
a. Competencias principales
-
Herramientas y comandos para configurar el DMA para los dispositivos IDE, incluyendo ATAPI y SATA.
-
Herramientas y comandos para configurar discos SSD (Solid State Drive), incluyendo AHCI y NVMe.
-
Herramientas y comandos para configurar o analizar los recursos del sistema (por ejemplo, las interrupciones).
-
Conocimientos básicos del comando sdparm y su uso.
-
Herramientas y comandos de gestión de dispositivos iSCSI.
-
Conocimientos básicos de SAN, incluyendo los protocolos específicos (AoE, FCoE).
b. Elementos empleados
-
hdparm, sdparm
-
nvme
-
tune2fs
-
fstrim
-
sysctl
-
/dev/hd*, /dev/sd*, /dev/nvme*
-
iscsiadm, scsi_id, iscsid y iscsid.conf
-
WWID, WWN, n° LUN
3. Logical Volume Manager
Peso |
3 |
Objetivos |
Crear y suprimir... |
Configuración de los discos RAID
La tecnología RAID (Redundant Array of Independent Disks) permite combinar diferentes dispositivos para que sean vistos como un solo espacio de almacenamiento para las aplicaciones. De esta manera se puede mejorar el tiempo de acceso y/o la fiabilidad de los dispositivos de almacenamiento. Las diferentes técnicas empleadas se definen con respecto al nivel de RAID usado. Los niveles más corrientes son RAID 0, 1 y 5; los que se estudiarán en el marco de la certificación.
Se puede administrar el RAID en modo hardware, con los controladores de discos especializados o en modo software, desde el sistema operativo.
Linux implementa un piloto de gestión de software del RAID, el piloto md (Multiple Device piloto), que gestiona los niveles más corrientes de RAID, 0, 1 y 5, y que debe ser estudiado en el marco de la certificación.
Otras soluciones pueden implementarse para gestionar el software RAID en Linux: RAID LVM o RAID directamente soportado por el gestor de sistema de archivos ZFS o Btrfs.
1. Los principales niveles de RAID
a. RAID 0
RAID 0 (agregación de bandas, striping) combina distintos discos en un solo conjunto. Los bloques de datos se reparten en bandas de tamaño idéntico que están repartidas uniformemente en los diferentes discos. Las operaciones de entrada/salida pueden ser, por lo tanto, muy rápidas, ya que los controladores de los discos las pueden efectuar de manera simultánea.
Sin embargo, la fiabilidad del conjunto es bastante baja ya que al perder un disco perderá el conjunto de los datos. No hay redundancia en los datos almacenados y la coherencia de los volúmenes lógicos se destruye en el caso de fallo en un disco.
El espacio de almacenamiento útil de un conjunto RAID 0 es igual a la capacidad útil del más pequeño de los discos multiplicado por el número de discos que lo componen, ya que no hay redundancia de datos y que las bandas de datos están repartidas de manera uniforme en los discos (cada disco tiene que tener el mismo número de bandas).
Ventajas:
-
Rapidez de lectura y escritura del conjunto de los bloques.
-
Uso óptimo del espacio de los discos, siempre y cuando los discos sean del mismo tamaño.
Inconvenientes:
-
No hay redundancia de datos, por lo tanto, no hay tolerancia frente a fallos.
-
La pérdida...
Optimizar el acceso a los dispositivos de almacenamiento
Linux puede gestionar una gran variedad de dispositivos de almacenamiento, de tipo local o remoto. Según el tipo de dispositivo y su uso, puede ser necesario modificar la configuración de acceso al dispositivo para optimizar su rendimiento. Existen muchas herramientas y comandos que pueden ayudar al administrador a configurar y monitorear los recursos del almacenamiento de los sistemas.
1. Gestión de los discos duros locales
El administrador debe poder determinar los periféricos locales de almacenamiento reconocidos por el sistema, listar sus características y, eventualmente, modificar su configuración para mejorar el rendimiento de las entradas/salidas o corregir conflictos. Debe poder, también, determinar cuáles son los tipos de periféricos de almacenamiento adaptados al sistema, en función de los pilotos instalados y, si fuera necesario, saber instalar nuevos pilotos.
a. Determinación de los archivos especiales
En Linux, cada periférico de almacenamiento está gestionado por un archivo especial en modo de bloque, asociado al piloto cargado para ese tipo de periférico. La detección de los periféricos de almacenamiento y la creación de los archivos especiales correspondientes se hace, generalmente, de manera automática y durante el arranque del sistema (excepto para los dispositivos extraíbles, detectados automáticamente durante la actividad del sistema).
Esos archivos especiales se encuentran en el directorio /dev. Su nombre está determinado por el núcleo, según algunas convenciones de nombres, en función del tipo de dispositivo y del orden de detección del dispositivo con respecto a su tipo.
Un archivo especial Linux no es un archivo de disco, no contiene ningún dato almacenado. En realidad se trata de un punto de comunicación con el piloto del dispositivo, gestionado por el núcleo. Cuando una aplicación «escribe» en el archivo especial, el núcleo transmite los bytes emitidos por la aplicación al piloto del dispositivo en cuestión. A la inversa, cuando una aplicación «lee» el archivo especial, el núcleo le transmite los bytes emitidos por el piloto de dispositivo en cuestión.
Cada archivo especial Linux posee un número...
Logical Volume Manager
La gestión tradicional de los discos que consiste en una o distintas particiones por disco, pudiendo contener cada una un sistema de archivos o un espacio de swap, impone límites en términos de flexibilidad de uso y de evolución, en particular:
-
Un sistema de archivos no puede ocupar distintos discos (exceptuando las técnicas de RAID).
-
El tamaño máximo de un sistema de archivos depende del tamaño de la partición que lo contiene y es delicado aumentar el tamaño de una partición y, por lo tanto, de su sistema de archivos.
Estas distintas limitaciones y restricciones han llevado a proponer una nueva herramienta de gestión del espacio de almacenamiento, el Gestor de volúmenes lógicos (LVM, Logical Volume Manager).
El principio es de implementar una capa lógica intermediaria entre los gestores de sistemas de archivos y el material de almacenamiento. El gestor de sistemas de archivos ve los volúmenes lógicos en lugar de las particiones o discos. Estos volúmenes lógicos son administrados por el gestor LVM, que hace de enlace entre los dispositivos usados. De esta manera, podemos dejar atrás la mayoría de las limitaciones evocadas anteriormente:
-
Un sistema de archivos puede extenderse entre distintos discos físicos.
-
Se puede, mucho más fácilmente, aumentar el tamaño máximo de un sistema de archivos.
-
Se pueden combinar controladores de discos de tecnologías diferentes, o discos locales y remotos dentro de un sistema de archivos.
-
Se puede añadir un disco físico en caliente y utilizarlo para agrandar un sistema de archivos existente.
Se puede combinar perfectamente el RAID de hardware o software con LVM, permitiendo el beneficio de la tolerancia de fallos y la flexibilidad de los volúmenes lógicos.
La tecnología LVM, originaria de Linux, se implementó en el núcleo Linux en los años 2000 y se utiliza a gran escala en entornos de producción desde hace años. La versión actual se llama LVM2.
El Gestor de volúmenes lógicos Linux LVM puede gestionar por sí mismo diferentes niveles de RAID de software o apoyarse en el módulo de gestión del RAID visto anteriormente, md. En la certificación solamente se pide conocer la gestión de RAID...
Validación de lo aprendido: preguntas/respuestas
Responda a estas preguntas abiertas, parecidas a las que le harán en el examen de la certificación, pero estas últimas lo serán de tipo test o pidiéndole una respuesta corta que introducirá mediante el teclado.
1. Preguntas
1 ¿Cuál es la diferencia entre una partición y un volumen lógico LVM?
2 ¿Cuál es la diferencia entre un iniciador iSCSI y un objetivo iSCSI?
3 ¿Cuál es el número mínimo de discos necesarios para montar una configuración en RAID 5?
4 ¿Cuáles son las diferencias entre los niveles de RAID 0 y 1?
5 ¿Puede extenderse un volumen lógico en varios discos?
6 ¿Cuáles son los diferentes métodos para configurar un volumen lógico con una tolerancia frente a fallos de tipo espejo?
7 ¿Qué opción del comando lvcreate permite crear un volumen lógico instantáneo (snapshot)?
8 ¿Qué comando permite interactuar con el servicio udev?
9 ¿Cómo se puede aumentar el tamaño de un sistema de archivos ext4 montado, creado en un volumen lógico?
10 ¿Qué opción del comando mdadm permite crear un volumen RAID?
2. Resultado
En las páginas siguientes encontrará las respuestas a estas preguntas. Por cada respuesta correcta cuente un punto.
Número...
Trabajos prácticos
Aquí se proponen ejercicios para implementar algunos de los puntos abordados en el capítulo. En cada uno de ellos se da un ejemplo comentado de la realización del ejercicio, que deberá adaptar a la configuración de sus sistemas.
1. Configuración de un espacio de almacenamiento en RAID 1 (espejo)
Tiene que configurar un nuevo espacio de almacenamiento en la máquina alpha, dedicado a una nueva aplicación de programación/desarrollo. Para ello, le va a atribuir un sistema de archivos de tipo ext4, de 5 Gb, que tendrá que montarse durante el arranque del sistema en el directorio /opt/programacion. Por cuestiones de seguridad, el sistema de archivos de la aplicación usa un volumen RAID de nivel 1 (espejo), administrado por md.
Comandos y archivos útiles
-
blkid
-
fdisk
-
pvs
-
mdadm
-
mkfs
-
mkdir
-
mount
-
/etc/fstab
Etapas
1. |
Identifique los dispositivos de almacenamiento del servidor alpha reconocidos por el sistema. Observe la configuración actual (discos, particiones, organización LVM…). |
2. |
Instale dos discos duros (o memorias USB) de capacidad más o menos idéntica, al menos 5GB. Determine su archivo especial en modo de bloque asociado. |
3. |
Cree un volumen RAID md de nivel 1 usando estos dos discos, y compruebe después sus características. |
4. |
Cree un sistema de archivos ext4 en el volumen RAID. Cree el directorio de montaje /opt/programacion y monte el sistema de archivos. Cree algunos directorios y archivos en el directorio /opt/programacion. Declare el sistema de archivos en montaje automático en el archivo /etc/fstab. Compruebe el correcto funcionamiento después de haber reiniciado el sistema. |
5. |
Limpieza: desmonte el sistema de archivos, suprima la línea que creó en /etc/fstab, y después suprima el volumen RAID. |
Resumen de los comandos y resultados en pantalla
1. |
Identifique los dispositivos de almacenamiento del servidor alpha reconocidos por el sistema. Observe la configuración actual (discos, particiones, organización LVM…). |
El servidor alpha corre una distribución Debian 11. Para conocer los dispositivos de almacenamiento reconocidos por el sistema, se puede usar el comando blkid:
root@alpha:~# blkid
/dev/sda1: UUID="2c504926-f120-4739-a8a3-d4137b6ec3de" BLOCK_SIZE="1024"
TYPE="ext2"...