Pregunta ¿Cuáles son los diferentes niveles de RAID ampliamente utilizados y cuándo debo considerarlos?


Esto es un Pregunta canónica sobre los niveles de RAID.

Qué son:

  • los niveles de RAID que se utilizan normalmente (incluida la familia RAID-Z)?
  • despliegues se encuentran comúnmente en?
  • ¿Beneficios y trampas de cada uno?

175
2017-12-08 19:40


origen


@ erimar77 El objetivo de la red StackExchange es recopilar todo el conocimiento sobre el tema especificado dentro de la red SE. Eso significa que los datos en Wikipedia son inútiles para la misión. Estoy bastante versado en RAID, así que no necesito la respuesta, pero se supone que es una pregunta canónica. Una pregunta cónica es aquella que contiene una respuesta definitiva a un problema común al que podemos señalar todos los duplicados. "Simplemente buscalo en Google" o "está en Wikipedia" no son respuestas aceptables. El artículo en Wikipedia es muy bueno, sin embargo. - MDMarra
Copiado a Superusuario para que pueda VTC como un duplicado allí. Por favor copia la respuesta a Superusuario (o déjame copiarlo por ahora). - Hennes


Respuestas:


RAID: por qué y cuándo

RAID significa Redundant Array of Independent Disks (algunos se enseñan como "Barato" para indicar que son discos "normales"; históricamente había discos redundantes internos que eran muy costosos; dado que ya no están disponibles, el acrónimo se ha adaptado).

En el nivel más general, un RAID es un grupo de discos que actúan en las mismas lecturas y escrituras. SCSI IO se realiza en un volumen ("LUN"), y estos se distribuyen a los discos subyacentes de una manera que introduce un aumento de rendimiento y / o un aumento de redundancia. El aumento de rendimiento es una función de la creación de bandas: los datos se distribuyen en varios discos para permitir que las lecturas y escrituras utilicen todas las colas de E / S de los discos simultáneamente. La redundancia es una función del reflejo. Se pueden guardar discos completos como copias, o se pueden escribir rayas individuales varias veces. Alternativamente, en algunos tipos de redadas, en lugar de copiar los datos bit a bit, se obtiene redundancia al crear bandas especiales que contienen información de paridad, que se pueden usar para recrear cualquier dato perdido en caso de una falla de hardware.

Existen varias configuraciones que brindan diferentes niveles de estos beneficios, que se cubren aquí, y cada una tiene un sesgo hacia el rendimiento o la redundancia.

Un aspecto importante para evaluar qué nivel de RAID funcionará para usted depende de sus ventajas y requisitos de hardware (por ejemplo, número de unidades).

Otro aspecto importante de más De estos tipos de RAID (0,1,5) es que lo hacen. no asegure la integridad de sus datos, ya que se abstraen de los datos reales que se almacenan. Así que RAID no protege contra archivos corruptos. Si un archivo está dañado por alguna es decir, la corrupción se reflejará o parqueará y se enviará al disco independientemente. Sin embargo, RAID-Z afirma proporcionar la integridad de sus datos a nivel de archivo.


RAID adjunto directo: software y hardware

Hay dos capas en las que se puede implementar RAID en el almacenamiento adjunto directo: hardware y software. En las soluciones RAID de hardware verdadero, hay un controlador de hardware dedicado con un procesador dedicado a los cálculos y el procesamiento de RAID. Por lo general, también tiene un módulo de caché respaldado por batería para que los datos puedan escribirse en el disco, incluso después de una falla de alimentación. Esto ayuda a eliminar inconsistencias cuando los sistemas no se cierran limpiamente. En general, los buenos controladores de hardware tienen mejor rendimiento que sus contrapartes de software, pero también tienen un costo sustancial y aumentan la complejidad.

El software RAID generalmente no requiere un controlador, ya que no usa un procesador RAID dedicado o un caché separado. Típicamente estas operaciones son manejadas directamente por la CPU. En los sistemas modernos, estos cálculos consumen recursos mínimos, aunque se incurre en cierta latencia marginal. RAID es manejado por el sistema operativo directamente o por un controlador falso en el caso de FakeRAID.

En general, si alguien va a elegir el software RAID, debe evitar FakeRAID y usar el paquete nativo del sistema operativo para su sistema, como los discos dinámicos en Windows, mdadm / LVM en Linux, o ZFS en Solaris, FreeBSD y otras distribuciones relacionadas. . FakeRAID utiliza una combinación de hardware y software que da como resultado la aparición inicial del hardware RAID, pero el rendimiento real del software RAID. Además, normalmente es extremadamente difícil mover la matriz a otro adaptador (en caso de que falle el original).


Almacenamiento centralizado

El otro lugar donde RAID es común es en dispositivos de almacenamiento centralizados, generalmente llamados SAN (Storage Area Network) o NAS (Network Attached Storage). Estos dispositivos administran su propio almacenamiento y permiten que los servidores adjuntos accedan al almacenamiento de varias maneras. Como las múltiples cargas de trabajo están contenidas en los mismos discos, generalmente es deseable tener un alto nivel de redundancia.

La principal diferencia entre un NAS y una SAN son las exportaciones a nivel de sistema de archivos frente a bloques. Una SAN exporta un "dispositivo de bloque" completo, como una partición o un volumen lógico (incluidos los construidos sobre una matriz RAID). Los ejemplos de SAN incluyen Fibre Channel e iSCSI. Un NAS exporta un "sistema de archivos", como un archivo o una carpeta. Los ejemplos de NAS incluyen CIFS / SMB (compartir archivos de Windows) y NFS.


RAID 0

Bueno cuando: ¡Velocidad a toda costa!

Malo cuando: Te preocupas por tus datos.

RAID0 (también conocido como Striping) a veces se denomina "la cantidad de datos que quedará cuando falla una unidad". Realmente corre contra el grano de "RAID", donde la "R" significa "Redundante".

RAID0 toma su bloque de datos, lo divide en tantas partes como tiene discos (2 discos → 2 piezas, 3 discos → 3 piezas) y luego escribe cada parte de los datos en un disco separado.

Esto significa que una sola falla de disco destruye la matriz completa (porque tiene la Parte 1 y la Parte 2, pero no la Parte 3), pero proporciona un acceso muy rápido al disco.

No se usa a menudo en entornos de producción, pero podría usarse en una situación en la que tenga datos estrictamente temporales que se pueden perder sin repercusiones. Se usa con cierta frecuencia para dispositivos de almacenamiento en caché (como un dispositivo L2Arc).

El espacio total en disco utilizable es la suma de todos los discos en la matriz sumados (por ejemplo, discos 3x 1TB = 3TB de espacio)

RAID 1


RAID 1

Bueno cuando: tiene un número limitado de discos pero necesita redundancia

Malo cuando: Necesitas mucho espacio de almacenamiento.

RAID 1 (también conocido como Mirroring) toma sus datos y los duplica de manera idéntica en dos o más discos (aunque generalmente solo son 2 discos). Si se usan más de dos discos, la misma información se almacena en cada disco (todos son idénticos). Es la única forma de garantizar la redundancia de datos cuando tiene menos de tres discos.

RAID 1 a veces mejora el rendimiento de lectura. Algunas implementaciones de RAID 1 se leerán desde ambos discos para duplicar la velocidad de lectura. Algunos solo leerán de uno de los discos, lo que no proporciona ninguna ventaja de velocidad adicional. Otros leerán los mismos datos de ambos discos, asegurando la integridad de la matriz en cada lectura, pero esto resultará en la misma velocidad de lectura que un solo disco.

Normalmente se usa en servidores pequeños que tienen muy poca expansión de disco, como servidores de 1RU que pueden tener solo espacio para dos discos o en estaciones de trabajo que requieren redundancia. Debido a su alta sobrecarga de espacio "perdido", puede tener un costo prohibitivo con unidades de pequeña capacidad, alta velocidad (y alto costo), ya que necesita gastar el doble de dinero para obtener el mismo nivel de almacenamiento utilizable.

El espacio total en disco utilizable es el tamaño del disco más pequeño de la matriz (por ejemplo, discos 2x 1TB = 1TB de espacio).

RAID 1


RAID 1E

los 1E El nivel de RAID es similar a RAID 1 en que los datos siempre se escriben en (al menos) dos discos. Pero a diferencia de RAID1, permite un número impar de discos simplemente entrelazando los bloques de datos entre varios discos.

Las características de rendimiento son similares a RAID1, la tolerancia a fallos es similar a RAID 10. Este esquema puede extenderse a números impares de discos de más de tres (posiblemente llamado RAID 10E, aunque rara vez).

RAID 1E


RAID 10

Bueno cuando: quieres velocidad y redundancia

Malo cuando: No puedes permitirte perder la mitad del espacio en tu disco.

RAID 10 es una combinación de RAID 1 y RAID 0. El orden de 1 y 0 es muy importante. Digamos que tiene 8 discos, creará 4 matrices RAID 1 y luego aplicará una matriz RAID 0 encima de las 4 matrices RAID 1. Requiere al menos 4 discos, y los discos adicionales se deben agregar en pares.

Esto significa que un disco de cada par puede fallar. Entonces, si tiene los conjuntos A, B, C y D con los discos A1, A2, B1, B2, C1, C2, D1, D2, puede perder un disco de cada conjunto (A, B, C o D) y aún tener una matriz de funcionamiento.

Sin embargo, si pierde dos discos del mismo conjunto, la matriz se perderá totalmente. Puedes perder hasta (pero no garantizado) 50% de los discos.

Se le garantiza alta velocidad y alta disponibilidad en RAID 10.

RAID 10 es un nivel RAID muy común, especialmente con unidades de alta capacidad donde una falla de un solo disco hace que sea más probable una segunda falla de disco antes de que se reconstruya la matriz RAID. Durante la recuperación, la degradación del rendimiento es mucho menor que su contraparte RAID 5, ya que solo tiene que leer de una unidad para reconstruir los datos.

El espacio en disco disponible es el 50% de la suma del espacio total. (por ejemplo, unidades de 8x 1TB = 4TB de espacio utilizable). Si utiliza diferentes tamaños, solo se utilizará el tamaño más pequeño de cada disco.

Vale la pena señalar que el controlador raid del software del kernel de Linux llamado md permite configuraciones raid10 con una cantidad impar de unidades, es decir, un raid10 de 3 o 5 discos:

https://en.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10

RAID 10


RAID 01

Bien cuando Nunca

Malo cuando siempre

Es lo contrario de RAID 10. Crea dos matrices RAID 0 y luego coloca un RAID 1 en la parte superior. Esto significa que puede perder un disco de cada conjunto (A1, A2, A3, A4 o B1, B2, B3, B4). Es muy raro verlo en aplicaciones comerciales, pero es posible hacerlo con el software RAID.

Para ser absolutamente claro:

  • Si tiene un arreglo RAID10 con 8 discos y uno muere (lo llamaremos A1), entonces tendrá 6 discos redundantes y 1 sin redundancia. Si otro disco muere hay una 85% posibilidad de que su matriz sigue funcionando.
  • Si tiene una matriz RAID01 con 8 discos y uno muere (lo llamaremos A1), tendrá 3 discos redundantes y 4 sin redundancia. Si otro disco muere hay una 43% posibilidad de que su matriz sigue funcionando.

No proporciona velocidad adicional sobre RAID 10, pero sustancialmente menos redundancia y debe evitarse a toda costa.


RAID 5

Bueno cuando: Desea un equilibrio de redundancia y espacio en disco o tiene una carga de trabajo de lectura principalmente aleatoria.

Malo cuando: tiene una gran carga de trabajo de escritura aleatoria o unidades grandes.

RAID 5 ha sido el nivel RAID más utilizado durante décadas. Proporciona el rendimiento del sistema de todas las unidades en la matriz (a excepción de las escrituras aleatorias pequeñas, que incurren en una ligera sobrecarga). Utiliza una simple operación XOR para calcular la paridad. En caso de fallo de una sola unidad, la información puede reconstruirse a partir de las unidades restantes utilizando la operación XOR en los datos conocidos.

Desafortunadamente, en el caso de una falla en la unidad, el proceso de reconstrucción es muy intensivo en IO. Cuanto más grandes sean las unidades en el RAID, más tiempo tomará la reconstrucción y mayor será la posibilidad de que se produzca un segundo fallo en la unidad. Como los discos grandes y lentos tienen muchos más datos para reconstruir y mucho menos rendimiento para hacerlo, generalmente no se recomienda utilizar RAID5 con nada de 7200 RPM o menos.

El tamaño máximo de un raid5 en el que casi se garantiza que una reconstrucción produzca otra falla en la unidad, causando la pérdida de todos los datos, es de aproximadamente 12 TB.

Esta cifra se basa en la tasa de error de lectura irrecuperable (URE) de las unidades SATA de 10 ^ 14, tal como lo informan los fabricantes de unidades. En la práctica, esto significa que cada 100,000,000,000,000 de bits la unidad lanzará una URE. Que es más o menos igual a 12 TB.

Si tomamos un ejemplo de una incursión 5 con siete unidades de 2 TB. Cuando falla una unidad, quedan seis unidades. Para reconstruir el raid, el controlador necesita leer seis unidades de 2 TB cada una. Mirando la figura de arriba, es casi seguro que se producirá otra URE antes de que finalice la reconstrucción. Una vez que eso sucede, la redada 5 y todos los datos se pierden.

También es imperativo poner RAID 5 detrás de un caché de escritura confiable (con respaldo de batería). Esto evita la sobrecarga de escrituras pequeñas, así como el comportamiento escamoso que puede ocurrir en caso de una falla en medio de una escritura.

RAID 5 es la solución más rentable de agregar almacenamiento redundante a una matriz, ya que requiere la pérdida de solo 1 disco (por ejemplo, 12x 146 GB de discos = 1606 GB de espacio utilizable). Requiere un mínimo de 3 discos.

RAID 5


RAID 6

Bien cuando: quiere usar RAID 5, pero sus discos son demasiado grandes o lentos

Malo cuando: tienes una alta carga de trabajo de escritura aleatoria.

RAID 6 es similar a RAID 5, pero utiliza dos discos de paridad en lugar de uno solo (el primero es XOR, el segundo es un LSFR), por lo que puede perder dos discos de la matriz sin pérdida de datos. La penalización de escritura es más alta que RAID 5 y tiene un disco de espacio menos.

Vale la pena considerar que eventualmente una redada 6 encontrará problemas similares a la redada5. Las unidades más grandes causan tiempos de reconstrucción más grandes y más errores latentes. Finalmente, se produce un fallo de la incursión y todos los datos antes de que se haya completado una reconstrucción.

RAID 6


RAID 50

Bien cuando: tienes mucho de los discos que deben estar en una sola matriz y RAID 10 no es una opción debido a la capacidad.

Malo cuando: Tiene tantos discos que son posibles muchas fallas simultáneas antes de que se completen las reconstrucciones. O cuando no tienes muchos discos.

RAID 50 es un nivel anidado, al igual que RAID 10. Combina dos o más matrices RAID 5 y distribuye los datos en un RAID 0. Esto ofrece rendimiento y redundancia de discos múltiples, siempre que se pierdan varios discos. diferente RAID 5 matrices.

En un RAID 50, la capacidad del disco es n-x, donde x es el número de RAID 5 que se distribuyen en bandas. Por ejemplo, si un simple RAID 50 de 6 discos, el más pequeño posible, si tuviera discos de 6x1TB en dos RAID 5 que luego se dividieran para convertirse en un RAID 50, tendría un almacenamiento utilizable de 4TB.


RAID 60

Bueno cuando: tiene un caso de uso similar al RAID 50, pero necesita más redundancia.

Malo cuando: No tiene un número sustancial de discos en la matriz.

RAID 6 es para RAID 60, mientras que RAID 5 es para RAID 50. Básicamente, tiene más de un RAID 6 y los datos se distribuyen en un RAID 0. Esta configuración permite hasta dos miembros de cualquier RAID 6 individual en el conjunto fallar sin pérdida de datos. Los tiempos de reconstrucción para los arreglos RAID 60 pueden ser sustanciales, por lo que generalmente es una buena idea tener un repuesto dinámico para cada miembro RAID 6 en el arreglo.

En un RAID 60, la capacidad del disco es n-2x, donde x es el número de RAID 6 que se dividen en bandas. Por ejemplo, si un RAID 60 de 8 discos simple, el más pequeño posible, si tuviera discos de 8x1TB en dos RAID 6 que luego se dividieron para convertirse en un RAID 60, tendría un almacenamiento utilizable de 4TB. Como puede ver, esto proporciona la misma cantidad de almacenamiento utilizable que un RAID 10 en una matriz de 8 miembros. Si bien RAID 60 sería un poco más redundante, los tiempos de reconstrucción serían sustancialmente mayores. En general, desea considerar RAID 60 solo si tiene una gran cantidad de discos.


RAID-Z

Bueno cuando: está utilizando ZFS en un sistema que lo admite.

Malo cuando: El rendimiento exige la aceleración RAID del hardware.

RAID-Z es un poco complicado de explicar, ya que ZFS cambia radicalmente la forma en que interactúan el almacenamiento y los sistemas de archivos. ZFS abarca los roles tradicionales de administración de volúmenes (RAID es una función de un administrador de volúmenes) y el sistema de archivos. Debido a esto, ZFS puede realizar RAID en el nivel de bloque de almacenamiento del archivo en lugar de hacerlo en el nivel de tira del volumen. Esto es exactamente lo que hace RAID-Z: escriba los bloques de almacenamiento del archivo en varias unidades físicas, incluido un bloque de paridad para cada conjunto de bandas.

Un ejemplo puede hacer esto mucho más claro. Digamos que tiene 3 discos en un grupo ZFS RAID-Z, el tamaño del bloque es de 4 KB. Ahora escribe un archivo en el sistema que es exactamente 16KB. ZFS lo dividirá en cuatro bloques de 4 KB (como lo haría un sistema operativo normal); entonces calculará dos bloques de paridad. Esos seis bloques se colocarán en las unidades similares a cómo RAID-5 distribuiría los datos y la paridad. Esta es una mejora con respecto a RAID5 en el sentido de que no se leyeron las bandas de datos existentes para calcular la paridad.

Otro ejemplo se basa en el anterior. Digamos que el archivo era solo 4KB. ZFS todavía tendrá que crear un bloque de paridad, pero ahora la carga de escritura se reduce a 2 bloques. La tercera unidad será libre de atender cualquier otra solicitud concurrente. Se verá un efecto similar cada vez que el archivo que se está escribiendo no sea un múltiplo del tamaño de bloque de la agrupación multiplicado por el número de unidades menos una (es decir, [Tamaño de archivo] <> [Tamaño de bloque] * [Unidades - 1]).

El manejo de ZFS tanto en la gestión de volúmenes como en el sistema de archivos también significa que no tiene que preocuparse por alinear particiones o tamaños de bloques de franjas. ZFS maneja todo eso automáticamente con las configuraciones recomendadas.

La naturaleza de ZFS contrarresta algunas de las advertencias RAID-5/6 clásicas. Todas las escrituras en ZFS se realizan en forma de copia en escritura; todos los bloques modificados en una operación de escritura se escriben en una nueva ubicación en el disco, en lugar de sobrescribir los bloques existentes. Si una escritura falla por alguna razón, o el sistema falla a mitad de la escritura, la transacción de escritura ocurre completamente después de la recuperación del sistema (con la ayuda del registro de intenciones de ZFS) o no ocurre en absoluto, evitando posibles daños en los datos. Otro problema con RAID-5/6 es la posible pérdida de datos o la corrupción silenciosa de datos durante las reconstrucciones; regular zpool scrub las operaciones pueden ayudar a detectar la corrupción de datos o los problemas de la unidad antes de que causen la pérdida de datos, y la suma de comprobación de todos los bloques de datos garantizará que se detecte toda la corrupción durante una reconstrucción.

La principal desventaja de RAID-Z es que sigue siendo una incursión de software (y tiene la misma latencia menor en que incurre la CPU al calcular la carga de escritura en lugar de permitir que un HBA del hardware la descargue). Esto puede ser resuelto en el futuro por HBA que soportan la aceleración de hardware ZFS.

Otra funcionalidad RAID y no estándar

Debido a que no existe una autoridad central que aplique ningún tipo de funcionalidad estándar, los distintos niveles de RAID han evolucionado y han sido estandarizados por el uso predominante. Muchos proveedores han producido productos que se desvían de las descripciones anteriores. También es bastante común que inventen una nueva y elegante terminología de marketing para describir uno de los conceptos anteriores (esto sucede con mayor frecuencia en el mercado SOHO). Cuando sea posible, intente que el proveedor describa realmente la funcionalidad del mecanismo de redundancia (la mayoría ofrecerá esta información voluntariamente, ya que en realidad ya no hay salsa secreta).

Cabe mencionar que existen implementaciones similares a RAID 5 que le permiten iniciar una matriz con solo dos discos. Almacena los datos en una franja y la paridad en la otra, similar a RAID 5 anterior. Esto funcionaría como RAID 1 con la sobrecarga adicional del cálculo de paridad. La ventaja es que podría agregar discos a la matriz recalculando la paridad.


190
2017-12-09 16:08



Actualmente no tengo tiempo para agregar esta información, pero explico cómo puede usar una tasa de error de lectura irrecuperable para estimar el conjunto RAID 5 más grande que puede usar con discos específicos sería una buena idea. - Hubert Kario
Gran resumen! Tengo una adición con respecto a RAID5 frente a RAID6: a menudo las personas que consideran la confiabilidad general (posibilidad de falla catastrófica de la matriz) de los arreglos poblados con una gran cantidad de ejes o discos de muy alta capacidad elegirán RAID6. Hacen esto basándose en la probabilidad de que ocurra una segunda falla mientras se está reconstruyendo el primer disco. Mi regla de oro personal es RAID6 cuando el número de ejes es mayor que 8 o cuando las unidades individuales son mayores que 1TB. No he podido encontrar una calculadora canónica pero Google y el tiempo de reconstrucción conocidos nos ayudarán a calcular correctamente. - JGurtz
Podría valer la pena agregar una nota aquí de que el software Linux RAID10 no es estándar. Permite diseños inusuales, y potencialmente útiles. en.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10 - Zoredache
Podría valer la pena incluir una aclaración de la penalización de escritura y la fusión de bandas. RAID 2 o 3 pueden merecer una mención honorífica, pero no conozco ninguna implementación "real". Sin embargo, NetApp sigue utilizando RAID4 (y RAID-DP es básicamente RAID-4 con una unidad de paridad adicional). - Sobrique
RAID 6: ¿Debe LSFR ser LFSR (registro de desplazamiento de realimentación lineal)? - α CVn


También RAID UN MILLÓN !!!!

128 Discos así que las lecturas serían rápidas, escrituras horribles pero muy confiables, me imagino, ah, y obtendrías 1/8 de espacio disponible, así que no es genial desde una perspectiva presupuestaria. No hagas esto con unidades flash, probé y prendí fuego a la atmósfera ...

enter image description here


55



Oh Dios. Chopper está perdiendo la cabeza ahora. - MDMarra
¿Me equivoqué en matemáticas? - Chopper3
Sabes que realmente voy a construir esto ¿verdad? - Chopper3
Raid 1000000 requeriría un mínimo de 128 discos, pero proporcionaría 64 discos de espacio de almacenamiento, tendría el mismo peor desempeño de escritura de caso que Raid 1, y cualquier falla de 2 unidades adyacentes acabaría con la matriz. Estabas describiendo el Raid 0111111, que tendría una confiabilidad bastante buena (el Raid 11111110 tendría una confiabilidad más alta en el promedio). - Kevin Cathcart
Oh hermosa. Niveles RAID binarios. ¿Que sigue? - α CVn