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


181

Esta es una pregunta canónica sobre los niveles RAID.

Qué son:

  • Qué niveles de RAID se utilizan normalmente (incluida la familia RAID-Z)?
  • implementaciones se encuentran comúnmente en?
  • beneficios y trampas de cada uno?

10
@ 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, por lo que no necesito la respuesta, pero está destinado a ser una pregunta canónica. Una pregunta conónica es aquella que contiene una respuesta definitiva a un problema común al que podemos señalar todos los duplicados. "Solo google" o "está en Wikipedia" no son respuestas aceptables. Sin embargo, el artículo en Wikipedia es muy bueno.
MDMarra

2
Copiado a Super User a I can VTC como duplicado allí. Copie la respuesta a Superusuario (o déjeme copiarla por ahora).
Hennes

Respuestas:


197

RAID: por qué y cuándo

RAID significa Matriz redundante de discos independientes (a algunos se les enseña "económicos" para indicar que son discos "normales"; históricamente hubo discos internamente redundantes que eran muy caros; 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 del 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 de duplicación. Los discos completos se pueden guardar como copias, o las rayas individuales se pueden escribir varias veces. Alternativamente, en algunos tipos de incursiones, en lugar de copiar datos bit por bit, se obtiene redundancia creando franjas especiales que contienen información de paridad, que se pueden usar para recrear cualquier dato perdido en caso de una falla de hardware.

Hay varias configuraciones que proporcionan 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 la mayoría de estos tipos de RAID (0,1,5) es que no garantizan la integridad de sus datos, ya que se extraen de los datos reales que se almacenan. Entonces RAID no protege contra archivos corruptos. Si un archivo está dañado por cualquier medio, la corrupción se reflejará o paritará y se confirmará en el disco independientemente. Sin embargo, RAID-Z afirma proporcionar integridad de nivel de archivo de sus datos .


RAID adjunto directo: software y hardware

Hay dos capas en las que se puede implementar RAID en el almacenamiento conectado directamente: hardware y software. En las verdaderas soluciones RAID de hardware, hay un controlador de hardware dedicado con un procesador dedicado a los cálculos y el procesamiento RAID. Por lo general, también tiene un módulo de caché respaldado por batería para que los datos se puedan escribir en el disco, incluso después de un corte de energía. Esto ayuda a eliminar inconsistencias cuando los sistemas no se apagan limpiamente. En términos generales, los buenos controladores de hardware tienen un mejor desempeño que sus contrapartes de software, pero también tienen un costo sustancial y aumentan la complejidad.

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

En términos generales, si alguien va a elegir RAID de software, debe evitar FakeRAID y utilizar el paquete nativo del sistema operativo para su sistema, como 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 de RAID de hardware, pero el rendimiento real de RAID de software. 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 (Red de área de almacenamiento) o NAS (Almacenamiento conectado a la red). Estos dispositivos administran su propio almacenamiento y permiten que los servidores conectados accedan al almacenamiento de varias maneras. Dado que múltiples cargas de trabajo están contenidas en los mismos pocos 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 bloques frente a archivos. 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 carpeta. Los ejemplos de NAS incluyen CIFS / SMB (uso compartido de archivos de Windows) y NFS.


RAID 0

Bueno cuando: ¡Velocidad a toda costa!

Mal cuando: te importan tus datos

RAID0 (también conocido como Striping) a veces se denomina "la cantidad de datos que le quedarán cuando una unidad falle". Realmente va en contra de "RAID", donde la "R" significa "redundante".

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

Esto significa que un solo fallo 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 se tienen datos estrictamente temporales que se pueden perder sin repercusiones. Se usa de manera algo común para dispositivos de almacenamiento en caché (como un dispositivo L2Arc).

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

RAID 1


RAID 1

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

Mal 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 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 leerán desde ambos discos para duplicar la velocidad de lectura. Algunos solo leerán de uno de los discos, lo que no proporciona ventajas de velocidad adicionales. Otros leerán los mismos datos de ambos discos, asegurando la integridad de la matriz en cada lectura, pero esto dará como resultado la misma velocidad de lectura que un solo disco.

Por lo general, se usa en servidores pequeños que tienen muy poca expansión de disco, como los servidores 1RU que solo pueden tener espacio para dos discos o en estaciones de trabajo que requieren redundancia. Debido a su alto gasto de espacio "perdido", puede ser costoso 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, 2x discos de 1 TB = 1 TB de espacio).

RAID 1


RAID 1E

El nivel RAID 1E es similar al 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 fallas es similar a RAID 10. Este esquema se puede extender a un número impar de discos de más de tres (posiblemente llamado RAID 10E, aunque rara vez).

RAID 1E


RAID 10

Bueno cuando: quieres velocidad y redundancia

Mal cuando: No puede permitirse perder la mitad de su espacio en disco

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

Esto significa que un disco de cada par puede fallar. Entonces, si tiene 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 Un conjunto funcional.

Sin embargo, si pierde dos discos del mismo conjunto, la matriz se pierde por completo. Puede perder hasta (pero no garantizado) el 50% de los discos.

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

RAID 10 es un nivel de RAID muy común, especialmente con unidades de alta capacidad donde una falla de un solo disco hace que una segunda falla de disco sea más probable 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 desde una unidad para reconstruir los datos.

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

Vale la pena señalar que el controlador md RAID de software del kernel de Linux llamado permite configuraciones RAID 10 con una cantidad extraña de unidades , es decir, un RAID 10 de 3 o 5 discos.

RAID 10


RAID 01

Bueno cuando: nunca

Mal cuando: siempre

Es el reverso 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 RAID de software.

Para ser absolutamente claro:

  • Si tiene una matriz RAID10 con 8 discos y uno muere (lo llamaremos A1), entonces tendrá 6 discos redundantes y 1 sin redundancia. Si otro disco muere, hay un 85% de posibilidades de que su matriz siga 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 un 43% de posibilidades de que su matriz siga 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

Mal cuando: tiene una alta carga de trabajo de escritura aleatoria o unidades grandes

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

Desafortunadamente, en caso de una falla de la unidad, el proceso de reconstrucción es muy intensivo en E / S. Cuanto más grandes sean las unidades en el RAID, más tardará la reconstrucción y mayores serán las posibilidades de que falle una segunda unidad. Dado que las unidades lentas grandes tienen muchos más datos para reconstruir y mucho menos rendimiento para hacerlo, no se recomienda usar RAID 5 con 7200 RPM o menos.

Quizás el problema más crítico con los arreglos RAID 5, cuando se usan en aplicaciones de consumo, es que casi se garantiza que fallarán cuando la capacidad total supere los 12 TB. Esto se debe a que la tasa de error de lectura irrecuperable (URE) de las unidades de consumidor SATA es una por cada 10 14 bits, o ~ 12.5TB.

Si tomamos un ejemplo de una matriz RAID 5 con siete unidades de 2 TB: cuando una unidad falla, quedan seis unidades. Para reconstruir la matriz, el controlador necesita leer seis unidades de 2 TB cada una. Al observar la figura anterior, es casi seguro que se producirá otra URE antes de que finalice la reconstrucción. Una vez que eso sucede, la matriz y todos los datos se pierden.

Sin embargo, la falla de URE / pérdida de datos / matriz con el problema RAID 5 en unidades de consumo se ha mitigado de alguna manera por el hecho de que la mayoría de los fabricantes de discos duros han aumentado las clasificaciones de URE de sus unidades más nuevas a uno de cada 10 15 bits. ¡Como siempre, consulte la hoja de especificaciones antes de comprar!

También es imperativo que RAID 5 se coloque detrás de un caché de escritura confiable (respaldado por batería). Esto evita la sobrecarga de pequeñas escrituras, así como el comportamiento escamoso que puede ocurrir ante una falla en el 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, 12 discos de 146 GB = 1606 GB de espacio utilizable). Requiere un mínimo de 3 discos.

RAID 5


RAID 6

Bueno cuando: desea utilizar RAID 5, pero sus discos son demasiado grandes o lentos

Mal 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 solo uno (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 mayor que RAID 5 y tiene un disco menos de espacio.

Vale la pena considerar que, con el tiempo, una matriz RAID 6 encontrará problemas similares a los de una RAID 5. Las unidades más grandes causan tiempos de reconstrucción más grandes y más errores latentes, lo que eventualmente conduce a una falla de toda la matriz y la pérdida de todos los datos antes de que se complete una reconstrucción.

RAID 6


RAID 50

Bueno cuando: tiene muchos discos que deben estar en una sola matriz y RAID 10 no es una opción debido a la capacidad

Mal cuando: tiene tantos discos que es posible realizar muchas fallas simultáneas antes de que se completen las reconstrucciones, o cuando no tiene muchos discos

RAID 50 es un nivel anidado, muy parecido a RAID 10. Combina dos o más matrices RAID 5 y separa los datos en un RAID 0. Esto ofrece rendimiento y redundancia de múltiples discos, siempre que se pierdan múltiples discos de diferentes RAID 5 matrices

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


RAID 60

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

Mal cuando: No tienes una cantidad sustancial de discos en la matriz

RAID 6 es RAID 60 como RAID 5 es RAID 50. Esencialmente, tiene más de un RAID 6 y los datos se dividen 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 las matrices RAID 60 pueden ser considerables, por lo que generalmente es una buena idea tener un repuesto dinámico para cada miembro de RAID 6 en la matriz.

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


RAID-Z

Bueno cuando: estás usando ZFS en un sistema que lo admite

Mal cuando: el rendimiento exige aceleración RAID de hardware

RAID-Z es un poco complicado de explicar ya que ZFS cambia radicalmente cómo interactúan los sistemas de almacenamiento y archivos. ZFS abarca las funciones tradicionales de gestió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 hacer RAID en el nivel de bloque de almacenamiento del archivo en lugar de en el nivel de tira del volumen. Esto es exactamente lo que hace RAID-Z: escribir los bloques de almacenamiento del archivo en varias unidades físicas, incluido un bloque de paridad para cada conjunto de bandas.

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

Otro ejemplo se basa en el anterior. Digamos que el archivo tenía solo 4KB. ZFS aún tendrá que construir un bloque de paridad, pero ahora la carga de escritura se reduce a 2 bloques. El tercer disco será gratuito para 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 del grupo 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 por Volume Management como por File System también significa que no tiene que preocuparse por alinear particiones o tamaños de bloques de bandas. ZFS maneja todo eso automáticamente con las configuraciones recomendadas.

La naturaleza de ZFS contrarresta algunas de las advertencias clásicas de RAID-5/6. Todas las escrituras en ZFS se realizan de forma 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 algún motivo, o el sistema falla a mitad de la escritura, la transacción de escritura se produce 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 pérdida potencial de datos o la corrupción silenciosa de datos durante las reconstrucciones; las zpool scruboperaciones regulares pueden ayudar a detectar la corrupción de datos o generar problemas 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 todavía es una incursión de software (y sufre la misma latencia menor en la que incurre la CPU al calcular la carga de escritura en lugar de permitir que un HBA de hardware la descargue). Esto puede resolverse en el futuro mediante HBA que admitan la aceleración de hardware ZFS.

Otras funciones RAID y no estándar

Debido a que no existe una autoridad central que imponga ningún tipo de funcionalidad estándar, los diversos niveles de RAID han evolucionado y se han estandarizado por el uso frecuente. Muchos vendedores han producido productos que se desvían de las descripciones anteriores. También es bastante común para ellos inventar una nueva y sofisticada terminología de marketing para describir uno de los conceptos anteriores (esto ocurre 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á voluntariamente esta información, ya que realmente ya no hay salsa secreta).

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


Actualmente no tengo tiempo para agregar esta información, pero sería una buena idea explicar cómo puede usar la tasa de error de lectura irrecuperable para estimar el mayor conjunto RAID 5 que puede usar con discos específicos.
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 las matrices pobladas con una gran cantidad de husillos o discos de muy alta capacidad eligen RAID6. Lo hacen basándose en la probabilidad de que ocurra una segunda falla mientras se reconstruye 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 conocido de reconstrucción ayudarán a calcular bien.
JGurtz

3
Puede valer la pena agregar una nota aquí que el software de 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 de honor, pero no conozco ninguna implementación 'real'. Sin embargo, NetApp todavía utiliza RAID4 (y RAID-DP es básicamente RAID-4 con una unidad de paridad adicional).
Sobrique

1
RAID 6: ¿Debería LSFR ser LFSR (registro de desplazamiento de realimentación lineal)?
un CVn

58

También RAID ONE MILLION !!!!

128 discos, por lo que las lecturas serían rápidas, escrituras horribles pero muy confiables, imagino, ah, y obtendrías 1/128 del espacio disponible, por lo que no es excelente desde una perspectiva presupuestaria. No hagas esto con unidades flash, traté de prender fuego a la atmósfera ...

ingrese la descripción de la imagen aquí


77
Oh Dios. Chopper está perdiendo la cabeza ahora.
MDMarra

44
¿Me equivoqué con las matemáticas?
Chopper3

66
Sabes que voy a construir esto, ¿verdad?
Chopper3

33
Raid 1000000 requeriría un mínimo de 128 discos, pero proporcionaría 64 discos de espacio de almacenamiento, tenía el mismo rendimiento de escritura en el peor de los casos que Raid 1, y cualquier falla de 2 unidades adyacentes mataría la matriz. Usted fue descrbing Raid 0.111.111, lo que tendría bastante buena fiabilidad (Raid 11111110 tendría que debe mejorar la fiabilidad de avergage.)
Kevin Cathcart

55
Oh hermosa. Niveles RAID binarios. ¿Que sigue?
un CVn
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.