GNU/Linux >> Tutoriales Linux >  >> Linux

¿Implementación de Mdadm Raid con partición Gpt?

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

Específicamente, las unidades serían HDD de 1 TB en SATA en un pequeño servidor Dell T20.

El sistema operativo es GNU/Linux Debian 8.6 (más tarde actualizado:Jessie ⟶ Stretch ⟶ Buster)

Eso haría 2 TB de espacio en disco con 2 TB de paridad en mi caso.

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

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

Notas:

  • Esta matriz servirá solo para los datos únicos. 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. Como estoy limitado por el hardware a 4 unidades, no hay alternativa a RAID-6 que yo sepa. (Por desagradable que parezca la ralentización de RAID-6, no importa en esta matriz).

Respuesta aceptada:

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

Abra la terminal y conviértase en root (su ); si tienes sudo habilitado, también puede hacer, por ejemplo, sudo -i; ver man sudo para todas las opciones):

sudo -i

Primero, deberíamos borrar las unidades, si hubo datos y sistemas de archivos antes, eso es. Supongamos que tenemos 4 miembros:sdi , sdj , sdk , sdl . Con el propósito de tener una retroalimentación de este proceso visualmente, el pv (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 verificar si no queda nada, puede mirar 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 todo 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 haga esto con GParted, porque crearía un sistema de archivos en el proceso, que no queremos, usa gdisk en cambio:

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

En todos los casos utilice lo siguiente:

o Entrar para la nueva tabla de particiones GUID vacía (GPT)
y Entrar para confirmar su decisión
n Entrar para nueva partición
Introducir por defecto de la primera partición
Intro por defecto del primer sector
Introducir por defecto del último sector
fd00 Entrar para Linux tipo RAID
w Entrar para escribir cambios
y Entrar para confirmar su decisión

Relacionado:¿Cpu de uso general como analizador lógico mejor/peor que la implementación de FPGA dedicada?

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

Deberíamos esperar hasta que la matriz esté completamente creada, este proceso podemos watch fácilmente :

watch cat /proc/mdstat

Después de la creación de la matriz, debemos ver 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 , el siguiente oculto es mejor evitar el comando, debido a ext4lazyinit tomaría una cantidad de tiempo notable en el caso de una matriz grande, de ahí el nombre, "lazyinit “, por lo que te recomiendo que evites este:

mkfs.ext4 /dev/md0

En su lugar, debe forzar una inicialización instantánea completa (con 0% reservado para root ya 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 arreglos más grandes.

Si eligió tomar un atajo y creó el ext4 sistema de archivos con el "comando mejor evitado", tenga en cuenta que ext4lazyinit tomará una cantidad de tiempo notable para inicializar todos los inodos, puede verlo hasta que termine, p. con iotop o nmon .

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

Ahora creamos un directorio para esta matriz RAID6:

mkdir -p /mnt/raid6

Y simplemente montarlo:

mount /dev/md0 /mnt/raid6

Como esencialmente hemos terminado, podemos usar GParted nuevamente para verificar rápidamente si muestra linux-raid sistema de archivos, junto con el raid marca en todas las unidades.

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

Ver qué UUID el md el sistema de archivos tiene:

blkid /dev/md0

Copie el UUID al portapapeles.

Ahora necesitamos editar fstab , con tu editor de texto favorito, usé nano , aunque sudoedit podría ser mejor usado:

nano /etc/fstab

Y agregue agregarle una entrada:

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

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

Estas son las banderas 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 verificar si es correcto después de guardar los cambios:

mount -av | grep raid6

Debería decir:

already mounted

Si lo hace, guardamos la configuración del arreglo; en caso de que no tengas ningún md dispositivo aún creado, simplemente puede hacer:

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

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

mdadm --detail --scan

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

Relacionado:¿Hora de inicio del proceso con zona horaria?

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

update-initramfs -u -k all

Compruebe si hizo todo según lo planeado y, de ser así, puede reiniciar:

reboot

Linux
  1. Sustitución de una unidad RAID 6 defectuosa con mdadm

  2. ¿Cómo Tonstall Ubuntu 14.04 con Raid 1 usando Desktop Installer?

  3. El último tutorial de Bash Array con 15 ejemplos

  4. RedHat/CentOS:Gestión de software RAID con mdadm

  5. Reemplazo de un disco espejo fallido en una matriz RAID de software (mdadm)

Bash Scripting:matriz asociativa explicada con ejemplos

Arreglos AWK explicados con 5 ejemplos prácticos

¿RAID1 aumenta el rendimiento con Linux mdadm?

estrategia de partición y subvol con btrfs

Reconstruya la matriz mdadm RAID5 con menos discos

Agregue el diario de escritura de linux md raid a una matriz existente