¿Alguien puede explicarme cuál es la diferencia entre crear mdadm
una matriz usando particiones o los discos completos directamente? Suponiendo que tengo la intención de utilizar todos los discos.
Imagine un RAID6 creado de dos maneras:
mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
o:
mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
¿Cuál es la diferencia y posibles problemas derivados de cualquiera de las dos variantes?
Por ejemplo, me refiero a la confiabilidad, la capacidad de administración o las operaciones de recuperación en dichos arreglos, etc.
Respuesta1
La diferencia más importante es que le permite aumentar la flexibilidad para el reemplazo de discos. Se detalla mejor a continuación junto con una serie de otras recomendaciones.
Se debería considerar utilizar una partición en lugar de todo el disco. Esto debería estar dentro de las recomendaciones generales para configurar una matriz y ciertamente puede ahorrarle algunos dolores de cabeza en el futuro cuando sean necesarios más reemplazos de disco.
Los argumentos más importantes son:
Los discos de diferentes fabricantes (o incluso diferentes modelos de la "misma" capacidad del mismo fabricante) no necesariamente tienen exactamente el mismo tamaño de disco e, incluso la diferencia de tamaño más pequeña, le impedirá reemplazar un disco defectuoso por uno más nuevo. si el segundo es menor que el primero. La partición le permite solucionar este problema;
Nota al margen sobre por qué utilizar discos de diferentes fabricantes: Los discos fallarán, esto no es una cuestión de "si" sino de "cuándo". Los discos del mismo fabricante y del mismo modelo tienen propiedades similares y, por tanto, mayores posibilidades de fallar juntos en las mismas condiciones y tiempo de uso. La sugerencia es utilizar discos de diferentes fabricantes, diferentes modelos y, en especial, que no pertenezcan al mismo lote (considera comprar en diferentes tiendas si estás comprando discos del mismo fabricante y modelo). No es raro que ocurra una segunda falla de disco durante una restauración después de un reemplazo de disco cuando se utilizan discos del mismo lote. Seguramente no querrás que esto te suceda.
Entonces las recomendaciones:
1)Particionar los discosque se utilizará con uncapacidad ligeramente menorque el espacio total en disco (por ejemplo, tengo una matriz RAID5 de discos de 2 TB y los particioné intencionalmente, desperdiciando alrededor de 100 MB en cada uno). Luego, use /dev/sd?1 de cada uno para componer la matriz. Esto agregará un margen de seguridad en caso de que un nuevo disco de reemplazo tenga menos espacio que los originales utilizados para ensamblar la matriz cuando se creó;
2) Utilice discos de diferentes fabricantes;
3) Utilice discos de diferentes modelos si diferentes fabricantes no son una opción para usted;
4) Utilice discos de diferentes lotes;
5) Reemplace los discos de forma proactiva antes de que fallen y no todos al mismo tiempo. Esto puede resultar un poco paranoico y realmente depende de la importancia de los datos que tenga. Solía tener discos que tenían 6 meses de diferencia de edad entre sí;
6) Realice copias de seguridad periódicamente (siempre, independientemente de si utiliza una matriz o no). Raid no tiene el mismo propósito que las copias de seguridad. Los arreglos le garantizan una alta disponibilidad, las copias de seguridad le permiten restaurar archivos perdidos (incluidos los que se eliminan accidentalmente o están dañados por virus, algunos ejemplos de algo contra lo que el uso de arreglos no lo protegerá).
OBS: Excepto por todos losnada despreciableracional anterior, ¿no hay muchas más diferencias técnicas entre usar /dev/sd? frente a /dev/sd?#.
Buena suerte
Respuesta2
Otro argumento importante es que algunosLas placas base pueden eliminar sus superbloques RAIDsi utiliza dispositivos de disco completos y no tiene mucho cuidado al borrarlos cuando agrega discos a una matriz RAID que alguna vez fueron dispositivos GPT.
Aprendí esto de la manera más difícil, cuando el UEFI de mi placa base ASRock dejó mi RAID inutilizable:
- http://forum.asrock.com/forum_posts.asp?TID=10174
- https://news.ycombinator.com/item?id=18541493
- https://www.phoronix.com/scan.php?page=news_item&px=Linux-Software-RAID-ASRock
Para protegerse contra esto, ejecútelo siempre sgdisk --zap
en un disco con formato GPT anterior que desee utilizar para un RAID de todo el dispositivo.
wipefs -a
también puede funcionarpara borrar todo tipo de información de partición sobrante (no solo GPT) antes de agregar el dispositivo al disco.
Dicho eso,simplemente usar particiones parece una mejor práctica para que esto sea menos probable.
Nunca supe lo querealLos argumentos fueron a favor de esta mejor práctica (más allá de la respuesta de @ Marcelo que explica que puede manejar discos de tamaños ligeramente diferentes). Ahora sé.
Por cierto, si esto te sucede, tus datos no se pierden.Lo más probable es que solo pueda sgdisk --zap
usar el dispositivo y luego volver a crear el RAID con, por ejemplo, mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
(mdadm le dirá que ya detecta datos anteriores y le preguntará si desea continuar reutilizando esos datos). Intenté esto varias veces y funcionó, pero aun así recomiendo hacer una copia de seguridad antes de hacerlo.
Respuesta3
Hay un par de publicaciones que citan el problema de usar todo el dispositivo como miembro RAID en lugar de partición,uno aquí. Puedo confirmar que ese es el caso.
Por lo tanto, si crea RAID utilizando todo el dispositivo (por ejemplo, /dev/sda
, /dev/sdb
, ... en lugar de /dev/sda1
, /dev/sdb1
, ...), el dispositivo RAID no se vuelve a ensamblar después de reiniciar, incluso si tiene la configuración guardada en mdadm.conf
. También existe la posibilidad de sobrescribir el firmware de la placa base o eliminar el superbloque RAID. En mi configuración, ejecutar mdadm --assemble --scan --verbose
no me permite recuperar mi configuración RAID y parece ser que el superbloque RAID no está disponible.
Respuesta4
No es nada raro juntar discos en lugar de particiones en un RAID, antes de particionar el RAID. En particular, la mayoría de los controladores RAID de hardware ni siquiera pueden leer tablas de particiones, por lo que siempre funcionan en discos completos. Pero lo mismo es posible con los RAID por software. Y si se configuran correctamente, los RAID de software se volverán a ensamblar correctamente al reiniciar. Por supuesto, asegúrese de que no quede ningún rastro de una tabla de particiones anterior en el disco. Esto es particularmente importante, ya que muchos discos se entregan preformateados y muchas herramientas (software RAID, sistemas de archivos, etc.) tienden a dejar "sectores vacíos" al principio, donde pueden sobrevivir estos rastros de tablas de particiones anteriores.
También vale la pena comprar uno o dos discos adicionales como repuesto cuando configura un RAID. Si algún disco falla, puede reemplazarlo rápidamente, lo cual es particularmente importante en un RAID5 o RAID1 de dos discos, donde después de un solo disco falla, no hay redundancia, hasta que el disco fallido haya sido reemplazado y el RAID haya sido reemplazado. resincronizado. Al tener un repuesto que coincida exactamente, también evita esos problemas que pueden surgir de un disco "débil" en un RAID, como cuando el nuevo disco es más lento o un poco más pequeño que los antiguos.
No obstante, el problema "un poco más pequeño" se puede solucionar independientemente de que tenga particiones o no. Simplemente use el asignador de dispositivos para crear un disco virtual, que obtiene el 99,9% de su capacidad del nuevo disco y el 0,1% faltante de un disco del sistema o SSD. Alternativamente, puede reducir el sistema de archivos durante un reinicio en la etapa initramfs (consultehttps://serverfault.com/a/888830cómo hacer esto), luego reduzca el RAID y estará nuevamente en línea también.
En otras palabras: usar discos completos para un RAID de hardware o software o un grupo de memoria ZFS está perfectamente bien.