Implementación de mdadm RAID con partición GPT

Implementación de mdadm RAID con partición GPT

Mi idea actual es crear una matriz de software, clase RAID-6, con 4 unidades miembros, usando mdadm.

En concreto, las unidades serían discos duros de 1 TB en SATA en un pequeño servidor Dell T20.

El sistema operativo esGNU/LinuxDebian8.6 (posteriormente actualizado:JessieEstirarBuster)

En mi caso, eso haría 2 TB de espacio en disco con 2 TB de paridad.


También me gustaría tenerlo con la tabla de particiones GPT, para que funcione, no estoy seguro de cómo proceder específicamente, suponiendo que preferiría hacer esto únicamente a través del terminal.

Como nunca creé una matriz RAID, ¿podrían orientarme sobre cómo debo proceder?


Notas:

  • Esta matriz servirá únicamente para los datos. No tiene arranque ni sistema operativo.

  • Opté por RAID-6 debido al propósito de esta matriz. Dos fallas en la unidad la matriz debe poder sobrevivir. Dado que estoy limitado por hardware a 4 unidades, no existe ninguna alternativa al RAID-6, que yo sepa. (Por muy fea que pueda parecer la desaceleración de RAID-6, no importa en esta matriz).

Respuesta1

En esta respuesta, deje claro que todos los datos se destruirán en todos los miembros de la matriz (unidades), ¡así que primero haga una copia de seguridad!


Abra la terminal y conviértaseroot(su); si usted tienesudohabilitado, también puede hacer, por ejemplo sudo -i; verman sudopara todas las opciones):

sudo -i

Primero, debemos borrar las unidades, es decir, si antes había datos y sistemas de archivos. Supongamos que tenemos 4 miembros: sdi, sdj, sdk, sdl. Con el fin de tener retroalimentación de este proceso visualmente, elpv(visor de tuberías)se usó aquí:

pv < /dev/zero > /dev/sdi
pv < /dev/zero > /dev/sdj
pv < /dev/zero > /dev/sdk
pv < /dev/zero > /dev/sdl

Alternativamente, para simplemente comprobar si no queda nada, puede echar un vistazo con GParted en todas las unidades, y si hay alguna partición con o sin sistema de archivos, borrarla podría ser suficiente, aunque yo prefiero lo anterior, poner a cero todas las las unidades involucradas, recuerde desmontar todas las particiones antes de hacerlo, podría hacerse de manera similar a estas frases ingeniosas:

umount /dev/sdi?; wipefs --all --force /dev/sdi?; wipefs --all --force /dev/sdi
umount /dev/sdj?; wipefs --all --force /dev/sdj?; wipefs --all --force /dev/sdj
umount /dev/sdk?; wipefs --all --force /dev/sdk?; wipefs --all --force /dev/sdk
umount /dev/sdl?; wipefs --all --force /dev/sdl?; wipefs --all --force /dev/sdl

Luego, inicializamos todas las unidades con la tabla de particiones GUID (GPT) y necesitamos particionar todas las unidades, pero no hagamos esto con GParted, porque crearía un sistema de archivos en el proceso, lo cual no queremos. utilizar gdisken su lugar:

gdisk /dev/sdi
gdisk /dev/sdj
gdisk /dev/sdk
gdisk /dev/sdl

En todos los casos utilice lo siguiente:

o Enterpara una nueva tabla de particiones GUID vacía (GPT)
y Enterpara confirmar su decisión
n Enterpara una nueva partición
Enterpara la configuración predeterminada de la primera partición
Enterpara la configuración predeterminada del primer sector
Enterpara la configuración predeterminada del último sector
fd00 Enterpara el tipo de RAID de Linux
w Enterpara escribir cambios
y Enterpara confirmar su decisión


Puede examinar las unidades ahora:

mdadm --examine /dev/sdi /dev/sdj /dev/sdk /dev/sdl

Debería decir:

(type ee)

Si es así, ahora examinamos las particiones:

mdadm --examine /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1

Debería decir:

No md superblock detected

Si es así, podemos crear la matriz RAID6:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1

Debemos esperar hasta que la matriz esté completamente creada, este proceso lo podemos realizar fácilmente watch:

watch cat /proc/mdstat

Después de la creación del array, debemos fijarnos en su detalle:

mdadm --detail /dev/md0

Debería decir:

          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

Ahora creamos un sistema de archivos en la matriz, si usa ext4, lo siguienteocultoEs mejor evitar el comando, ya que ext4lazyinittomaría una cantidad considerable de tiempo en el caso de una matriz grande, de ahí el nombre "perezoso", por lo tanto te recomiendo que evites este:

mkfs.ext4 /dev/md0

En su lugar, deberías forzar una inicialización instantánea completa (con el 0% reservado rootya que es una matriz de datos):

mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0 /dev/md0

Al especificar estas opciones, los inodos y el diario se inicializarán inmediatamente durante la creación, lo que resulta útil para matrices más grandes.

Si eligió tomar un atajo y creó el ext4sistema de archivos con el "comando que es mejor evitar", tenga en cuenta que ext4lazyinitllevará una cantidad considerable de tiempo inicializar todos los inodos; puede observarlo hasta que termine, por ejemplo, con iotopo nmon.

De cualquier manera que elija realizar la inicialización del sistema de archivos, debe montarlo después de que haya finalizado su inicialización.


Ahora creamos algún directorio para esta matriz RAID6:

mkdir -p /mnt/raid6

Y simplemente móntelo:

mount /dev/md0 /mnt/raid6

Como básicamente hemos terminado, podemos usar GParted nuevamente para verificar rápidamente si muestra linux-raidel sistema de archivos, junto con la raidbandera en todas las unidades.

Si es así, creamos correctamente la matriz RAID6 con particiones GPT y ahora podemos copiar archivos en ella.

Vea qué UUID mdtiene el sistema de archivos:

blkid /dev/md0

Copie el UUID al portapapeles.

Ahora necesitamos editar fstab, con tu editor de texto favorito, usénano, aunquesudoeditpodría usarse mejor:

nano /etc/fstab

Y agregue una entrada:

UUID=<the UUID you have in the clipboard>    /mnt/raid6    ext4    defaults    0 0

Yo mismo no recomiendo el uso de defaultsun conjunto de banderas, simplemente quería que la línea no fuera demasiado compleja.

Estos son los indicadores de montaje que uso en un RAID de datos respaldado por UPS (en lugar de defaults): nofail,nosuid,nodev,noexec,nouser,noatime,auto,async,rw,data=journal,errors=remount-ro


Puede comprobar si es correcto después de guardar los cambios:

mount -av | grep raid6

Debería decir:

already mounted

Si es así, guardamos la configuración de la matriz; en caso de que aún no tengas ningún mddispositivo creado, simplemente puedes hacer:

mdadm --detail --scan >> /etc/mdadm/mdadm.conf

En caso de que ya existan matrices, simplemente ejecute el comando anterior sin redirigir al archivo de configuración:

mdadm --detail --scan

y agregue la nueva matriz al archivo de configuración manualmente.

Al final, no olvide actualizar su archivo initramfs, porque de lo contrario su nueva matriz solo se ensamblará automáticamente en modo de solo lectura, probablemente igual /dev/md127o similar:

update-initramfs -u -k all

Comprueba si hiciste todo según lo planeado y, de ser así, puedes reiniciar:

reboot

Respuesta2

Si crea las matrices RAID en 4 dispositivos de bloque sin formato en lugar de 2 x 4 particiones, eso significa que todas las operaciones de recuperación RAID necesariamente pueden operar en todos los dispositivos, y viceversa.

Entonces, por ejemplo, si espera que los discos eventualmente comiencen a desarrollar errores de E/S en la segunda mitad de ellos, con los arreglos sobre las particiones, eso significaría que solo uno de los arreglos se daría cuenta, mientras que el otro continuaría intacto, al menos hasta el daño se extiende a su mitad. Esto podría brindarle cierta flexibilidad temporal o la ausencia de desaceleración de E/S.

Por otro lado, tan pronto como comienzas a intervenir, tienes que sacar todo el disco físico para reemplazarlo, por lo que necesariamente tienes que degradar ambos arreglos en algún momento. Además, con los SSD, aparentemente se ha vuelto más común que falle todo el disco, por lo que ambas matrices podrían verse afectadas por tales eventos de todos modos.

No hay nada que decir sobre los detalles del proceso que no se pueda encontrar en la documentación típica de partición y mdadm.

información relacionada