LFCS #6: Cómo ensamblar particiones como dispositivos RAID y crear copias de seguridad del sistema

La Linux Foundation lanzó la certificación LFCS (Linux Foundation Certified Sysadmin), una brillante oportunidad para los administradores de sistemas de todo el mundo para demostrar, a través de un examen basado en el rendimiento, que son capaces de realizar soporte operativo general en sistemas Linux: soporte del sistema, diagnóstico de primer nivel y monitoreo, además de la escalada de problemas, cuando sea necesario, a otros equipos de soporte.

La serie se titulará Preparación para el LFCS (Linux Foundation Certified Sysadmin) Partes 1 a 33 y cubrirá los siguientes temas:

No. Title
Part 1 How to Use ‘Sed’ Command to Manipulate Files in Linux
Part 2 How to Install and Use Vi/Vim in Linux
Part 3 How to Compress Files & Directoires and Finding Files in Linux
Part 4 How to Partition Storage Devices in Linux
Part 5 How to Mount (Samba and NFS) Filesystems in Linux
Part 6 How to Assemble Partitions as RAID Devices and Create System Backups
Part 7 Managing System Startup Processes and Services (SysVinit, Systemd, and Upstart
Part 8 How to Manage User & Groups, File Permissions, and Sudo Access
Part 9 Linux Package Management with Yum, RPM, Apt, Dpkg, Aptitude, and Zypper
Part 10 Learning Basic Shell Scripting and Filesystem Troubleshooting
Part 11 How to Manage and Create LVM Using vgcreate, lvcreate, and lvextend Commands
Part 12 How to Explore Linux with Installed Help Documentations and Tools
Part 13 How to Configure and Troubleshoot Grand Unified Bootloader (GRUB)
Part 14 Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis
Part 15 How to Set or Modify Kernel Runtime Parameters in Linux Systems
Part 16 Implementing Mandatory Access Control with SELinux or AppArmor in Linux
Part 17 How to Set Access Control Lists (ACLs) and Disk Quotas for Users and Groups
Part 18 Installing Network Services and Configuring Automatic Startup at Boot
Part 19 An Ultimate Guide to Setting Up FTP Server to Allow Anonymous Logins
Part 20 Setup a Basic Recursive Caching DNS Server and Configure Zones for Domain
Part 21 How to Install, Secure, and Performance Tuning of MariaDB Database Server
Part 22 How to Install and Configure NFS Server for File System Sharing
Part 23 How to Setup Apache with Name-Based Virtual Hosting with SSL Certificate
Part 24 How To Setup an Iptables Firewall to Enable Remote Access to Services in Linux
Part 25 How to Turn a Linux into a Router to Handle Traffic Statically and Dynamically
Part 26 How to Setup Encrypted Filesystems and Swap Using Cryptsetup Tool
Part 27 How to Monitor System Usage, Outages, and Troubleshoot Linux Servers
Part 28 How to Setup a Network Repository to Install or Update Packages
Part 29 How to Audit Network Performance, Security, and Troubleshooting
Part 30 How to Install and Manage Virtual Machines and Containers
Part 31 Learn the Basics of Git to Manage Projects Efficiently
Part 32 A Beginner’s Guide to Configuring IPv4 and IPv6 Addresses in Linux
Part 33 A Beginner’s Guide to Creating Network Bonding and Bridging in Ubuntu

Esta publicación es Parte 6 de una serie de 33 tutoriales, aquí en esta parte, explicaremos cómo ensamblar particiones como dispositivos RAID y crear y administrar copias de seguridad del sistema, que son necesarias para el examen de certificación LFCS.

Comprendiendo RAID en Linux

La tecnología conocida como Redundant Array of Independent Disks (RAID) es una solución de almacenamiento que combina múltiples discos duros en una unidad lógica única para proporcionar redundancia de datos y/o mejorar el rendimiento en operaciones de lectura/escritura en el disco.

Sin embargo, la tolerancia a fallos real y el rendimiento de E/S del disco dependen de cómo se configuren los discos duros para formar el conjunto de discos. Dependiendo de los dispositivos disponibles y las necesidades de tolerancia a fallos/rendimiento, se definen diferentes niveles de RAID.

Puedes referirte al siguiente artículo de la serie RAID para conocer una explicación más detallada de cada nivel de RAID.

Instalar mdadm en Linux

Nuestra herramienta de elección para crear, ensamblar, gestionar y monitorear nuestros RAIDs de software se llama mdadm (abreviatura de administración de múltiples discos).

$ sudo apt install mdadm         [On Debian, Ubuntu and Mint]
$ sudo yum install mdadm         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ sudo zypper install mdadm      [On OpenSUSE]    

Ensamblar Particiones como Dispositivos RAID

El proceso de ensamblar particiones existentes como dispositivos RAID consta de los siguientes pasos.

1. Crear un nuevo conjunto con mdadm

Si una de las particiones ha sido formateada previamente o ha sido parte de otro conjunto RAID anteriormente, se te pedirá que confirmes la creación del nuevo conjunto.

Asumiendo que has tomado las precauciones necesarias para evitar la pérdida de datos importantes que puedan haber residido en ellos, puedes escribir y y presionar Enter de manera segura.

# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1
Creating RAID Array

2. Comprobar el estado de la creación del conjunto

Para comprobar el estado de la creación del conjunto, utilizarás los siguientes comandos, independientemente del tipo de RAID. Estos son igual de válidos cuando estamos creando un RAID0 (como se muestra arriba), o cuando estás en el proceso de configurar un RAID5, como se muestra en la imagen a continuación.3. Formatear el dispositivo RAID

# cat /proc/mdstat
or 
# mdadm --detail /dev/md0	[More detailed summary]
Check RAID Array Status

3. Formatear el Dispositivo RAID

Formatea el dispositivo con un sistema de archivos según tus necesidades/requisitos, como se explica en Parte 4 de esta serie.

4. Monitorear el Servicio de la Matriz RAID

Indica al servicio de monitoreo que “vigile” la matriz. Agrega la salida de mdadm --detail --scan a /etc/mdadm/mdadm.conf (Debian y derivados) o /etc/mdadm.conf (CentOS / openSUSE), de la siguiente manera.

# mdadm --detail --scan
Monitor RAID Array
# mdadm --assemble --scan 	[Assemble the array]

Para asegurarse de que el servicio se inicie al arrancar el sistema, ejecuta los siguientes comandos como root.

# systemctl start mdmonitor
# systemctl enable mdmonitor

5. Verificar Fallo de Disco RAID

En los niveles RAID que admiten redundancia, reemplaza los discos fallidos según sea necesario. Cuando un dispositivo en la matriz de discos falla, se inicia automáticamente una reconstrucción solo si se agregó un dispositivo de respaldo cuando creamos la matriz por primera vez.

Check RAID Faulty Disk

De lo contrario, necesitamos adjuntar manualmente un disco físico adicional a nuestro sistema y ejecutarlo.

# mdadm /dev/md0 --add /dev/sdX1

Donde /dev/md0 es la matriz que experimentó el problema y /dev/sdX1 es el nuevo dispositivo.

6. Desmontar una Matriz en Funcionamiento

Es posible que debas hacer esto si necesitas crear una nueva matriz utilizando los dispositivos – (Paso Opcional).

# mdadm --stop /dev/md0 		#  Stop the array
# mdadm --remove /dev/md0 		# Remove the RAID device
# mdadm --zero-superblock /dev/sdX1 	# Overwrite the existing md superblock with zeroes

7. Crear Alertas por Correo Electrónico

Puedes configurar una dirección de correo electrónico válida o una cuenta de sistema para enviar alertas (asegúrate de tener esta línea en mdadm.conf). – (Paso Opcional)

MAILADDR root

En este caso, todas las alertas que el demonio de monitoreo RAID recolecta serán enviadas al buzón de correo de la cuenta local de root. Una de dichas alertas se ve de la siguiente manera.

Nota: Este evento está relacionado con el ejemplo en PASO 5, donde un dispositivo fue marcado como defectuoso y el dispositivo de respaldo fue integrado automáticamente en el array por mdadm. Por lo tanto, nos “quedamos sin”dispositivos de respaldo sanos y recibimos la alerta.

RAID Monitoring Alerts

Entendiendo los Niveles RAID en Linux

Aquí hay una breve descripción de los niveles RAID comunes:

RAID 0

El tamaño total del array es n veces el tamaño de la partición más pequeña, donde n es el número de discos independientes en el array (se necesitarán al menos dos discos). Ejecute el siguiente comando para ensamblar un RAID 0 array usando las particiones /dev/sdb1 y /dev/sdc1.

# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1

Usos Comunes: Configuraciones que soportan aplicaciones en tiempo real donde el rendimiento es más importante que la tolerancia a fallos.

RAID 1 (también conocido como Mirroring)

El tamaño total del array es igual al tamaño de la partición más pequeña (se necesitarán al menos dos discos). Ejecute el siguiente comando para ensamblar un RAID 1 array usando las particiones /dev/sdb1 y /dev/sdc1.

# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

Usos Comunes: Instalación del sistema operativo o subdirectorios importantes, como /home.

RAID 5 (también conocido como discos con Paridad)

El tamaño total del array será (n – 1) veces el tamaño de la partición más pequeña. El espacio “perdido” en (n-1) se utiliza para el cálculo de paridad (redundancia) (se necesitarán al menos tres discos).

Tenga en cuenta que puede especificar un dispositivo de repuesto (/dev/sde1 en este caso) para reemplazar una parte defectuosa cuando ocurra un problema. Ejecute el siguiente comando para ensamblar un RAID 5 array utilizando particiones /dev/sdb1, /dev/sdc1, /dev/sdd1, y /dev/sde1 como repuesto.

# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1

Usos comunes: Servidores web y de archivos.

RAID 6 (conocido como Discos con Doble Paridad

El tamaño total del array será (n*s)-2*s, donde n es el número de discos independientes en el array y s es el tamaño del disco más pequeño. Tenga en cuenta que puede especificar un dispositivo de repuesto (/dev/sdf1 en este caso) para reemplazar una parte defectuosa cuando ocurra un problema.

Ejecute el siguiente comando para ensamblar un RAID 6 array utilizando particiones /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1, y /dev/sdf1 como repuesto.

# mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde --spare-devices=1 /dev/sdf1

Usos comunes: Servidores de archivos y copias de seguridad con requisitos de gran capacidad y alta disponibilidad.

RAID 1+0 (conocido como Raspado de Espejos)

El tamaño total del array se calcula en base a las fórmulas de RAID 0 y RAID 1 ya que RAID 1+0 es una combinación de ambos. Primero, calcule el tamaño de cada espejo y luego el tamaño de la franja.

Tenga en cuenta que puede especificar un dispositivo de respaldo (/dev/sdf1 en este caso) para reemplazar una parte defectuosa cuando ocurra un problema. Ejecute el siguiente comando para ensamblar una matriz RAID 1+0 utilizando particiones /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1 y /dev/sdf1 como respaldo.

# mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[b-e]1 --spare-devices=1 /dev/sdf1

Usos comunes: Servidores de bases de datos y aplicaciones que requieren operaciones de E/S rápidas.

Creación y Administración de Copias de Seguridad en Linux

Nunca está de más recordar que RAID con todas sus bondades NO ES UN REEMPLAZO PARA LAS COPIAS DE SEGURIDAD! Escribirlo 1000 veces en la pizarra si es necesario, pero asegúrese de tener esa idea en mente en todo momento.

Antes de comenzar, debemos tener en cuenta que no hay una solución universal para las copias de seguridad del sistema, pero aquí hay algunas cosas que debe tener en cuenta al planificar una estrategia de copia de seguridad.

  • ¿Para qué utiliza su sistema? (Escritorio o servidor? Si aplica el último caso, ¿cuáles son los servicios más críticos, cuya configuración sería realmente doloroso perder?)
  • ¿Con qué frecuencia necesita tomar copias de seguridad de su sistema?
  • ¿Qué datos (por ejemplo, archivos/directorios/desperdicios de bases de datos) desea respaldar? También puede querer considerar si realmente necesita respaldar archivos grandes (como archivos de audio o video).
  • ¿Dónde (es decir, lugar físico y medio) se almacenarán esas copias de seguridad?

1. Discos de respaldo utilizando el comando dd

Copiar discos enteros con el comando dd. Puedes hacer copias de seguridad de un disco duro completo o de una partición creando una imagen exacta en cualquier momento. Ten en cuenta que esto funciona mejor cuando el dispositivo está fuera de línea, lo que significa que no está montado y no hay procesos accediendo a él para operaciones de E/S.

La desventaja de este enfoque de copia de seguridad es que la imagen tendrá el mismo tamaño que el disco o partición, incluso cuando los datos reales ocupen solo una pequeña parte de él.

Por ejemplo, si deseas hacer una imagen de una partición de 20 GB que está solo 10% llena, el archivo de imagen seguirá siendo 20 GB en tamaño. En otras palabras, no solo se copian los datos reales, sino toda la partición en sí. Puedes considerar usar este método si necesitas copias de seguridad exactas de tus dispositivos.

Creación de una Imagen de Partición

# dd if=/dev/sda of=/system_images/sda.img
OR
--------------------- Alternatively, you can compress the image file --------------------- 
# dd if=/dev/sda | gzip -c > /system_images/sda.img.gz 

Restauración de una Imagen de Partición

# dd if=/system_images/sda.img of=/dev/sda
OR 
# gzip -dc /system_images/sda.img.gz | dd of=/dev/sda 

2. Copia de Seguridad de Archivos con el Comando tar

Copia de seguridad de ciertos archivos / directorios con el comando tar – ya cubierto en Parte 3 de esta serie. Puedes considerar usar este método si necesitas mantener copias de archivos y directorios específicos (archivos de configuración, directorios de inicio de usuarios, etc.).

2. Copia de Seguridad y Sincronización de Archivos con el Comando rsync

Sincronizar archivos con el comando rsync, que es una herramienta versátil para copiar archivos de forma remota (y local). Si necesitas hacer respaldos y sincronizar tus archivos a/desde unidades de red, rsync es la opción a elegir.

Ya sea que estés sincronizando dos directorios locales o directorios locales < --- > remotos montados en el sistema de archivos local, la sintaxis básica es la misma.

Sincronizar Dos Directorios Locales

# rsync -av source_directory destination directory

Donde, -a recorre subdirectorios (si existen), preserva enlaces simbólicos, marcas de tiempo, permisos y propietario / grupo original y -v verboso.

rsync Synchronizing Files

Además, si deseas aumentar la seguridad de la transferencia de datos por la red, puedes utilizar ssh sobre rsync.

Sincronizar Directorios Locales → Remotos a Través de SSH

# rsync -avzhe ssh backups root@remote_host:/remote_directory/

Este ejemplo sincronizará el directorio de respaldo en el host local con el contenido de /root/directorio_remoto en el host remoto.

Donde la opción -h muestra los tamaños de archivo en formato legible por humanos, y la bandera -e se utiliza para indicar una conexión SSH.

rsync Synchronize Remote Files

Sincronizar Directorios Remotos → Locales a Través de SSH

En este caso, cambia los directorios de origen y destino del ejemplo anterior.

# rsync -avzhe ssh root@remote_host:/remote_directory/ backups 

Tenga en cuenta que estos son solo 3 ejemplos (casos más frecuentes que es probable que encuentre) del uso de rsync. Para más ejemplos y usos de los comandos rsync, puede encontrarse en el siguiente artículo.

Resumen

Como administrador de sistemas, debes asegurarte de que tus sistemas funcionen lo mejor posible. Si estás bien preparado y si la integridad de tus datos está bien respaldada por tecnología de almacenamiento como RAID y copias de seguridad regulares de sistemas, estarás seguro.

El Libro LFCS ya está disponible para su compra. Ordena tu copia hoy y comienza tu viaje para convertirte en un administrador de sistemas Linux certificado!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

Por último, pero no menos importante, por favor considera comprar tu vale de examen utilizando los siguientes enlaces para ganarnos una pequeña comisión, lo que nos ayudará a mantener este libro actualizado.

Si tienes preguntas, comentarios o más ideas sobre cómo este artículo puede mejorarse, no dudes en expresarlo a continuación. Además, por favor considera compartir esta serie a través de tus perfiles de redes sociales.

Source:
https://www.tecmint.com/creating-and-managing-raid-backups-in-linux/