Cómo configurar RAID1 en Linux

Cómo configurar RAID1 en Linux

Raid significa una variedad redundante de discos económicos; Dependiendo del nivel RAID que configuramos, podemos lograr la replicación de datos y/o la distribución de datos. Se puede lograr una configuración de RAID a través de hardware dedicado o a través del software. En este tutorial vemos cómo implementar un RAID1 (espejo) a través del software en Linux, utilizando
el mada utilidad.

En este tutorial aprenderás:

  • Las peculiaridades de los niveles de incursión más utilizados
  • Cómo instalar MDADM en las principales distribuciones de Linux
  • Cómo configurar un RAID1 con dos discos
  • Cómo reemplazar un disco en la matriz de redadas

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Distribución independiente
Software mada
Otro Permisos de raíz
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
$-Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Una breve descripción de los niveles de redadas más utilizados



Antes de comenzar con nuestro tutorial y ver cómo implementar una configuración de software RAID1 en Linux usando mada, Es una buena idea hacer un breve resumen de los niveles de redadas más utilizados y ver cuáles son sus peculiaridades.

Asalto0

Su objetivo principal es mejorar el rendimiento. En este nivel o RAID tenemos dos o más discos que deben ser de igual tamaño. Los datos se distribuyen alternativamente en los discos (rayas), y esto disminuye los tiempos de lectura y escritura.

Diagrama RAID0

Atasco

RAID1 (reflejo) es lo que implementaremos en este tutorial: en este nivel de RAID, los datos se escriben simultáneamente, y así replicados, en los dos o más discos que forman parte de la matriz.



Diagrama RAID1

RAID5

Para crear una configuración con este nivel RAID, se requiere un mínimo de tres discos, y los discos N-1 pueden contener datos. Esta configuración puede manejar la falla de un disco sin sufrir pérdida de datos. Al igual que RAID0, en estos datos de configuración se rayan, así que se distribuye en múltiples discos. La principal diferencia es que también Información de paridad de datos existir y también está rayado. ¿Qué es la información de la paridad de datos?? Básicamente, todos los discos
En la matriz RAID, contenga información sobre el estado de los datos; Dicha información permite la reconstrucción de datos si falla uno de los discos.



Diagrama RAID5

RAID6

RAID6 funciona de manera similar a RAID5; La principal diferencia es que esta configuración implica la presencia de dos Discos de paridad, por lo que con este nivel de redada es posible manejar la falla de dos discos sin sufrir pérdida de datos. Se necesitan un mínimo de cuatro discos para lograr esta configuración.

Diagrama RAID6

Instalación de MDADM



MADM es la utilidad que gestiona la redada de software en Linux. Está disponible en todas las principales distribuciones. En Debian y sus derivados, es posible instalarlo utilizando el siguiente comando:

$ sudo apt-get update && sudo apt-get install mdadm 

En la familia Red Hat de las distribuciones, podemos usar el DNF gerente de empaquetación:

$ sudo dnf install mDadm 

En Archlinux podemos instalar el paquete con el Pacman gerente de empaquetación:

$ sudo Pacman -Sy MDADM 

Una vez que se instala el software, podemos continuar y crear nuestra configuración RAID1.

Creando la redada

En aras de este tutorial, trabajaré en un entorno virtual, utilizando un sistema de "Buster" Debian y dos discos virtuales que creé anteriormente, que formarán parte de la configuración RAID1. Tales discos se reconocen como VDB y VDC, Como puede ver en la salida del lsblk dominio:

SR0 11: 0 1 1024M 0 ROM VDA 254: 0 0 7G 0 Disco ├─Vda1 254: 1 0 6G 0 Parte / ├─Vda2 254: 2 0 1K 0 Parte └─Vda5 254: 5 0 1021M 0 Parte [Swap] VDB 254: 16 0 1G 0 Disco VDC 254: 32 0 1G 0 Disco 

Dividiendo los discos



Aunque es posible crear la redada directamente usando discos crudos, siempre es una buena idea evitar eso y, en cambio, crear una partición en cada uno de los dos discos. Para realizar dicha tarea usaremos separado. Lo primero que queremos hacer es crear una tabla de partición. En aras de este ejemplo usaremos MBR tablas de partición, pero GPT Los se requieren en escenarios del mundo real si se usa discos de 2TB o más. Para inicializar un disco, podemos ejecutar el siguiente comando:

$ sudo separado -s /dev /vdb mklabel msdos 

Ahora, podemos crear una partición que tome todo el espacio disponible:

$ sudo separado -s /dev /vdb mkpart primario 1mib 100% 

Ahora podemos poner la bandera de RAID en la partición (esto establecerá el tipo de partición en fd - "Linux Raid Autodetect"):

$ sudo separado -s /dev /vdb set 1 redada en 

En este caso trabajamos en el /dev/vdb dispositivo, obviamente deberíamos repetir las mismas operaciones también en el /dev/vdc disco.

Configuración de RAID1

Una vez que inicializamos y dividimos los discos que podemos usar mada Para crear la configuración real. Todo lo que tenemos que hacer es ejecutar el siguiente comando:

$ sudo mdadm \ --verbose \ --create /dev /md0 \ --level = 1 \--Raid-Devices = 2 \ /dev /vdb1 /dev /vdc1 

Analicemos el comando anterior. En primer lugar, usamos el --verboso opción para hacer que el comando salga más información sobre las operaciones que se están realizando.

Nosotros usamos mada en "Modo Crear", por eso pasó el --crear opción, proporcionando el nombre del dispositivo que debe crearse (/dev/md0 en este caso). Que especificamos qué nivel usar para la redada con --nivel, y el número de dispositivos que deberían ser parte de él con --dispositivos de ataque. Finalmente proporcionamos la ruta de los dispositivos que deben usarse.

Una vez que ejecutamos el comando, debemos visualizar la siguiente salida:

MADM: NOTA: Esta matriz tiene metadatos al comienzo y puede no ser adecuado como dispositivo de arranque. Si planea almacenar '/arranque' en este dispositivo, asegúrese de que su cargador de arranque entienda MD/V1.x metadatos, o usar - -metadata = 0.90 MDADM: Tamaño establecido en 1046528K Continuar creando una matriz? Y 

En este caso, podemos responder afirmativamente a la pregunta y continuar creando la matriz:



MADM: predeterminado a la versión 1.2 metadatos mDadm: Array /dev /md0 comenzó. 

Para visualizar la información y el estado de la configuración de RAID creada, podemos ejecutar mada con el --detalle opción, pasando el nombre del dispositivo que queremos verificar. En este caso, la salida es la siguiente:

$ sudo mdadm --detail /dev /md0 /dev /md0: versión: 1.2 Tiempo de creación: viernes 23 de abril 11:16:44 2021 Nivel de incursión: RAID1 Tamaño de la matriz: 1046528 (1022.00 MIB 1071.64 MB) Tamaño de desarrollo usado: 1046528 (1022.00 MIB 1071.64 MB) Dispositivos RAID: 2 Dispositivos totales: 2 Persistencia: Superbloque es Persistente Tiempo de actualización: viernes 23 de abril 11:17:04 2021 Estado: Limpie dispositivos activos: 2 Dispositivos de trabajo: 2 Dispositivos fallidos: 0 Dispositivos de repuesto: 0 Política de consistencia: Resince Nombre: Debian: 0 (local a anfitrión Debian) UUID: 4721F921: BB82187C: 487DEFB8: E960508A EVENTOS: 17 Número Mayor RaidDevice State 0 254 17 0 Sync /Dev /VDB1 1 254 33 1 Sync /Dev /VDC1 Menor 

Con el --detalle Opción Podemos recopilar información sobre la redada en su conjunto. Si queremos información sobre cada disco único que es miembro de la configuración, podemos usar --examinar en su lugar y pasar los dispositivos como argumento. En este caso, por ejemplo, ejecutaríamos:

$ sudo mdoadm --examine /dev /vdb1 /dev /vdc1 


El comando produciría una salida similar a la siguiente:

/dev/vdb1: Magic: A92B4EFC Versión: 1.2 Mapa de características: 0x0 Array UUID: 4721F921: BB82187C: 487DEFB8: E960508A Nombre: Debian: 0 (local a anfitrión Debian) Tiempo de creación: Fri 23 de abril 11:16:44 2021 Nivel de red 2093056 (1022.00 MIB 1071.64 MB) Tamaño de la matriz: 1046528 (1022.00 MIB 1071.64 MB) OFFSET DE DATOS: 2048 Sectores Super Offset: 8 Sectores Espacio no utilizado: Antes = 1968 Sectores, After = 0 Sectores Estado: Uuido de dispositivo limpio: A9575594: 40C0784B: 394490e8: 6EB7E9A3 ACTUALIZACIÓN TIEMPO: Fri 23 11:30:02 2021 Bad Block Log: 512 Entradas disponibles en Offset 16 Sectores SUMA de verificación: 51AFC54D - Eventos correctos: 17 Dispositivo Role: Dispositivo activo 0 Estado de la matriz: AA ('A' == Active ',.'== falta,' r '== reemplazando) /dev /vdc1: mágico: a92b4efc versión: 1.2 Mapa de características: 0x0 Array UUID: 4721F921: BB82187C: 487DEFB8: E960508A Nombre: Debian: 0 (local a anfitrión Debian) Tiempo de creación: Fri 23 de abril 11:16:44 2021 Nivel de red 2093056 (1022.00 MIB 1071.64 MB) Tamaño de la matriz: 1046528 (1022.00 MIB 1071.64 MB) OFFSET DE DATOS: 2048 SECTORES SUPER OFFSET: 8 Sectores Espacio sin usar: Antes = 1968 Sectores, After = 0 Sectores Estado: UUID de dispositivo limpio: B0CF8735: 5Fe765C0: 6C269C2F: 3777D11D Tiempo de actualización: Fri 23 11:30:02 2021 2021 Registro de bloque malo: 512 entradas disponibles en el desplazamiento 16 sectores SUMA de verificación: 28C3066F - Eventos correctos: 17 Dispositivo Role: Dispositivo activo 1 Estado de la matriz: AA ('A' == Active ',.'== falta,' R '== Reemplazo) 

Usando el dispositivo RAID



En la sección anterior creamos una configuración RAID1 usando dos discos (virtuales):
/dev/vdb y /dev/vdc. Se llama al dispositivo RAID que creamos /dev/md0. Para poder usarlo, deberíamos crear un sistema de archivos en él. Usar el ext4, Sistema de archivos, por ejemplo, ejecutaríamos:

$ sudo mkfs.ext4 /dev /md0 

Una vez que se crea el sistema de archivos, debemos montarlo en algún lugar, y luego proceder a usarlo como un dispositivo de bloque normal. Para hacer que el sistema se monte automáticamente el dispositivo en el arranque, deberíamos crear una entrada para él en el archivo /etc /fstab. Al hacerlo, debemos hacer referencia al dispositivo RAID por su Uuid, Dado que su camino puede cambiar en el reinicio. Para encontrar el UUID del dispositivo, podemos usar el lsblk dominio:

$ LSBLK -O UUID /DEV /MD0 UUID 58FF8624-E122-419E-8538-D948439A8C07 

Reemplazar un disco en la matriz



Ahora, imagina que uno de los discos en la matriz falla. Cómo debemos proceder? Como veremos, podemos eliminarlo de la matriz sin perder ningún dato. Supongo que el disco duro fallido es /dev/vdc, Podemos emitir el siguiente comando para marcarlo como tal:

$ sudo MDADM --Manage /dev /md0 --fail /dev /vdc1 

La salida del comando anterior será:

MDADM: set /dev /vdc1 defectuoso en /dev /md0 

Podemos verificar el estado de la redada para confirmar que el dispositivo ha sido marcado como defectuoso:

$ sudo mdadm --detail /dev /md0 /dev /md0: versión: 1.2 Tiempo de creación: viernes 23 de abril 11:16:44 2021 Nivel de incursión: RAID1 Tamaño de la matriz: 1046528 (1022.00 MIB 1071.64 MB) Tamaño de desarrollo usado: 1046528 (1022.00 MIB 1071.64 MB) Dispositivos RAID: 2 Dispositivos totales: 2 Persistencia: Superbloque es Persistente Tiempo de actualización: Vie 23 de abril 15:01:36 2021 Estado: Limpio y degradado Dispositivos activos: 1 Dispositivos de trabajo: 1 Dispositivos fallidos: 1 Devictos de repuesto: 0 Consistencia consistente Política: Resync Nombre: Debian: 0 (local a anfitrión Debian) UUID: 4721F921: BB82187C: 487DEFB8: E960508A EVENTOS: 19 Número Mayor Menor RaidDevice State 0 254 17 0 Sync /Dev /VDB1 - 0 0 0 1 eliminado 1 254 33 - - defectuoso /dev /vdc1 

¿Puedes ver que ahora solo hay uno dispositivo activo, y /dev/vdc1 estado
es: defectuoso. Ahora, para eliminar el disco de la matriz, podemos ejecutar:

$ sudo MDADM --Manage /Dev /MD0 - -Remove /Dev /VDC1 

Al transmitir --administrar Trabajamos con mada En el modo "Manaye"; En este modo podemos realizar acciones como eliminar discos defectuosos o agregar otros nuevos. Si todo va como se esperaba, el dispositivo debe estar "a fuego caliente":

MDADM: Hot Remoed /Dev /Vdc1 de /dev /md0 


Ahora debemos formatear el nuevo disco duro que usaremos para reemplazar el defectuoso de la misma manera que lo hicimos para los otros dos, al comienzo de este tutorial. También podríamos usar un atajo que consiste en el uso de la sfdisk dominio. Si ejecutamos este comando con el -d opción (abreviatura de --vertedero), arrojará información sobre las particiones de un dispositivo que pasamos como argumento. Dicha información se puede utilizar como copia de seguridad y para replicar la configuración. Podemos redirigir la salida a un archivo o usarlo directamente en una tubería. Supongo que el nuevo disco es /dev/vdd, Corríamos:

$ sudo sfdisk -d /dev /vdb | sudo sfdisk /dev /vdd 

Una vez que el nuevo disco está dividido y listo, podemos agregarlo a nuestra matriz RAID1 con el siguiente comando:

$ sudo MDADM --Manage /dev /md0 --add /dev /vdd1 

Si ahora verificamos el estado del dispositivo RAID, podemos ver que está "reconstruyendo" en el dispositivo de repuesto que agregamos:

$ sudo mdadm --detail /dev /md0 /dev /md0: versión: 1.2 Tiempo de creación: viernes 23 de abril 11:16:44 2021 Nivel de incursión: RAID1 Tamaño de la matriz: 1046528 (1022.00 MIB 1071.64 MB) Tamaño de desarrollo usado: 1046528 (1022.00 MIB 1071.64 MB) Dispositivos RAID: 2 Dispositivos totales: 2 Persistencia: Superbloque es Persistente Tiempo de actualización: Vie 23 de abril 15:29:45 2021 Estado: Limpio, degradado, recuperación de dispositivos activos: 1 Dispositivos de trabajo: 2 Dispositivos fallidos: 0 Dispositivos de repuesto: 1 Política de consistencia: Resync Reconstruye Estado: 19% Nombre completo: Debian: 0 (local a anfitrión Debian) UUID: 4721F921: BB82187c: 487DEFB8: E960508A Eventos: 26 Número Mayor Mayor Menor Raiddevice State 0 254 17 Sync /Dev /VDB1 2 2 2 2 2 254 49 1 reconstrucción de repuestos /dev /vdd1 

De la salida del comando podemos ver que el estado se informa como "limpio, degradado, recuperado" y el /dev/vdd1 La partición se informa como una "reconstrucción de repuesto". Una vez que termine el proceso de reconstrucción, se cambiará a "sincronización activa".

Conclusiones

En este tutorial, vimos una breve descripción de los niveles de RAID más utilizados, cómo crear un software RAID1 con dos discos utilizando el mada utilidad, cómo verificar el estado del dispositivo RAID y de cada solo discos en la matriz. También vimos cómo quitar y reemplazar un disco defectuoso. Recuerde siempre que RAID1 logremos la redundancia de datos, pero no debe considerarse como una copia de seguridad!

Tutoriales de Linux relacionados:

  • Espejos de ubuntu
  • Cosas para instalar en Ubuntu 20.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
  • Bucles anidados en guiones Bash
  • Archivos de configuración de Linux: los 30 principales más importantes
  • Descarga de Linux
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • ¿Puede Linux obtener virus?? Explorando la vulnerabilidad de Linux ..