REDADA - RAID

RAID ( / r d / ; " Matriz redundante de discos económicos " o " Matriz redundante de discos independientes ") es una tecnología de virtualización de almacenamiento de datos que combina varios componentes de la unidad de disco física en una o más unidades lógicas con fines de redundancia de datos . mejora del rendimiento, o ambos. Esto contrastaba con el concepto anterior de unidades de disco de mainframe altamente fiables, denominadas "disco único grande y caro" (SLED).

Los datos se distribuyen entre las unidades de una de varias formas, denominadas niveles RAID, según el nivel requerido de redundancia y rendimiento. Los diferentes esquemas, o diseños de distribución de datos, se nombran con la palabra "RAID" seguida de un número, por ejemplo, RAID 0 o RAID 1. Cada esquema, o nivel de RAID, proporciona un equilibrio diferente entre los objetivos clave: confiabilidad , disponibilidad , rendimiento y capacidad . Los niveles de RAID superiores a RAID 0 brindan protección contra errores de lectura de sector irrecuperables , así como contra fallas de unidades físicas completas.

Historia

El término "RAID" fue inventado por David Patterson , Garth A. Gibson y Randy Katz en la Universidad de California, Berkeley en 1987. En su artículo de junio de 1988 "A Case for Redundant Arrays of Inexpensive Disks (RAID)", presentado en En la conferencia SIGMOD , argumentaron que las unidades de disco de mainframe de mayor rendimiento de la época podían ser superadas en rendimiento por una serie de unidades de bajo costo que se habían desarrollado para el creciente mercado de computadoras personales . Aunque las fallas aumentarían en proporción a la cantidad de unidades, al configurar la redundancia, la confiabilidad de una matriz podría superar con creces la de cualquier unidad grande.

Aunque todavía no se utiliza esa terminología, las tecnologías de los cinco niveles de RAID mencionados en el artículo de junio de 1988 se utilizaron en varios productos antes de la publicación del artículo, incluidos los siguientes:

  • La duplicación (RAID 1) estaba bien establecida en la década de 1970, incluidos, por ejemplo, los sistemas Tandem NonStop .
  • En 1977, Norman Ken Ouchi de IBM presentó una patente que revela lo que posteriormente se denominó RAID 4.
  • Alrededor de 1983, DEC comenzó a distribuir unidades de disco RA8X duplicadas del subsistema (ahora conocidas como RAID 1) como parte de su subsistema HSC50.
  • En 1986, Clark et al. en IBM presentó una patente que revela lo que posteriormente se denominó RAID 5.
  • Alrededor de 1988, DataVault de Thinking Machines usaba códigos de corrección de errores (ahora conocidos como RAID 2) en una matriz de unidades de disco. Un enfoque similar se utilizó a principios de la década de 1960 en el IBM 353 .

Posteriormente, los fabricantes de la industria redefinieron el acrónimo de RAID para que significara "Matriz redundante de discos independientes ".

Descripción general

Muchos niveles de RAID emplean un esquema de protección contra errores llamado " paridad ", un método ampliamente utilizado en tecnología de la información para proporcionar tolerancia a fallas en un conjunto de datos dado. La mayoría usa XOR simple , pero RAID 6 usa dos paridades separadas basadas respectivamente en la suma y la multiplicación en un campo de Galois particular o en la corrección de errores de Reed-Solomon .

RAID también puede proporcionar seguridad de datos con unidades de estado sólido (SSD) sin el gasto de un sistema totalmente SSD. Por ejemplo, un SSD rápido se puede duplicar con una unidad mecánica. Para que esta configuración proporcione una ventaja de velocidad significativa, se necesita un controlador apropiado que utilice el SSD rápido para todas las operaciones de lectura. Adaptec llama a esto "RAID híbrido".

Niveles estándar

Servidores de almacenamiento con 24 unidades de disco duro cada uno y controladores RAID de hardware integrados que admiten varios niveles de RAID

Originalmente, había cinco niveles estándar de RAID, pero han evolucionado muchas variaciones, incluidos varios niveles anidados y muchos niveles no estándar (en su mayoría propietarios ). Los niveles de RAID y sus formatos de datos asociados están estandarizados por la Storage Networking Industry Association (SNIA) en el estándar Common RAID Disk Drive Format (DDF):

RAID 0 consta de bandas , pero sin duplicación ni paridad . En comparación con un volumen distribuido , la capacidad de un volumen RAID 0 es la misma; es la suma de las capacidades de los variadores del conjunto. Pero debido a que la creación de bandas distribuye el contenido de cada archivo entre todas las unidades del conjunto, la falla de cualquier unidad hace que se pierda todo el volumen RAID 0 y todos los archivos. En comparación, un volumen distribuido conserva los archivos en las unidades que no fallan. La ventaja de RAID 0 es que el rendimiento de las operaciones de lectura y escritura en cualquier archivo se multiplica por el número de unidades porque, a diferencia de los volúmenes distribuidos, las lecturas y escrituras se realizan al mismo tiempo . El costo es una mayor vulnerabilidad a fallas en las unidades, dado que cualquier unidad en una configuración RAID 0 que falla hace que se pierda todo el volumen, la tasa promedio de fallas del volumen aumenta con la cantidad de unidades conectadas.

RAID 1 consiste en duplicación de datos, sin paridad ni división. Los datos se escriben de forma idéntica en dos o más unidades, lo que produce un "conjunto duplicado" de unidades. Por lo tanto, cualquier unidad del conjunto puede atender cualquier solicitud de lectura. Si una solicitud se transmite a todas las unidades del conjunto, la unidad que accede primero a los datos puede atenderla (según el tiempo de búsqueda y la latencia de rotación ), lo que mejora el rendimiento. El rendimiento de lectura sostenido, si el controlador o el software está optimizado para ello, se aproxima a la suma de los rendimientos de cada unidad del conjunto, al igual que para RAID 0. El rendimiento de lectura real de la mayoría de las implementaciones de RAID 1 es más lento que el de la unidad más rápida. El rendimiento de escritura siempre es más lento porque cada unidad debe actualizarse y la unidad más lenta limita el rendimiento de escritura. La matriz continúa funcionando mientras esté funcionando al menos una unidad.

RAID 2 consta de bandas a nivel de bits con paridad de código Hamming dedicada . Toda la rotación del eje del disco está sincronizada y los datos se dividen de modo que cada bit secuencial esté en una unidad diferente. La paridad del código de Hamming se calcula a través de los bits correspondientes y se almacena en al menos una unidad de paridad. Este nivel es de importancia histórica únicamente; aunque se usó en algunas de las primeras máquinas (por ejemplo, Thinking Machines CM-2), a partir de 2014 no se usa en ningún sistema disponible comercialmente.

RAID 3 consta de bandas a nivel de bytes con paridad dedicada. Toda la rotación del eje del disco está sincronizada y los datos se dividen de modo que cada byte secuencial esté en una unidad diferente. La paridad se calcula en los bytes correspondientes y se almacena en una unidad de paridad dedicada. Aunque existen implementaciones, RAID 3 no se usa comúnmente en la práctica.

RAID 4 consta de bandas a nivel de bloque con paridad dedicada. NetApp utilizaba anteriormente este nivel , pero ahora ha sido reemplazado en gran medida por una implementación patentada de RAID 4 con dos discos de paridad, denominada RAID-DP . La principal ventaja de RAID 4 sobre RAID 2 y 3 es el paralelismo de E / S: en RAID 2 y 3, una sola operación de lectura de E / S requiere leer todo el grupo de unidades de datos, mientras que en RAID 4 una operación de lectura de E / S lo hace. no tiene que extenderse a todas las unidades de datos. Como resultado, se pueden ejecutar más operaciones de E / S en paralelo, mejorando el rendimiento de las transferencias pequeñas.

RAID 5 consta de bandas a nivel de bloque con paridad distribuida. A diferencia de RAID 4, la información de paridad se distribuye entre las unidades, lo que requiere que todas las unidades menos una estén presentes para funcionar. En caso de falla de una sola unidad, las lecturas posteriores se pueden calcular a partir de la paridad distribuida de manera que no se pierdan datos. RAID 5 requiere al menos tres discos. Como todos los conceptos de paridad única, las implementaciones grandes de RAID 5 son susceptibles a fallas del sistema debido a las tendencias relacionadas con el tiempo de reconstrucción de la matriz y la posibilidad de falla de la unidad durante la reconstrucción (consulte la sección " Aumento del tiempo de reconstrucción y probabilidad de falla ", a continuación). La reconstrucción de una matriz requiere leer todos los datos de todos los discos, lo que abre la posibilidad de que falle una segunda unidad y se pierda toda la matriz.

RAID 6 consta de bandas a nivel de bloque con doble paridad distribuida. La doble paridad proporciona tolerancia a fallos hasta dos unidades fallidas. Esto hace que los grupos RAID más grandes sean más prácticos, especialmente para los sistemas de alta disponibilidad, ya que las unidades de gran capacidad tardan más en restaurarse. RAID 6 requiere un mínimo de cuatro discos. Al igual que con RAID 5, la falla de una sola unidad da como resultado una reducción del rendimiento de toda la matriz hasta que se reemplaza la unidad defectuosa. Con una matriz RAID 6, utilizando unidades de múltiples fuentes y fabricantes, es posible mitigar la mayoría de los problemas asociados con RAID 5. Cuanto mayor sea la capacidad de la unidad y el tamaño de la matriz, más importante se vuelve elegir RAID 6 en su lugar de RAID 5. RAID 10 también minimiza estos problemas.

RAID anidado (híbrido)

En lo que originalmente se denominó RAID híbrido , muchos controladores de almacenamiento permiten anidar niveles de RAID. Los elementos de un RAID pueden ser unidades individuales o matrices mismas. Las matrices rara vez se anidan a más de un nivel de profundidad.

La matriz final se conoce como matriz superior. Cuando la matriz superior es RAID 0 (como en RAID 1 + 0 y RAID 5 + 0), la mayoría de los proveedores omiten el "+" (lo que genera RAID 10 y RAID 50, respectivamente).

  • RAID 0 + 1: crea dos franjas y las refleja. Si se produce una falla en una sola unidad, entonces uno de los espejos ha fallado, en este punto se está ejecutando de manera efectiva como RAID 0 sin redundancia. Se introduce un riesgo significativamente mayor durante una reconstrucción que RAID 1 + 0, ya que todos los datos de todas las unidades en la banda restante deben leerse en lugar de solo una unidad, lo que aumenta la posibilidad de un error de lectura irrecuperable (URE) y se extiende significativamente la ventana de reconstrucción.
  • RAID 1 + 0: (consulte: RAID 10 ) crea un conjunto de bandas a partir de una serie de unidades duplicadas. La matriz puede soportar múltiples pérdidas de unidades siempre que ningún espejo pierda todas sus unidades.
  • JBOD RAID N + N: Con JBOD ( solo un grupo de discos ), es posible concatenar discos, pero también volúmenes como conjuntos RAID. Con mayores capacidades de disco, el retardo de escritura y el tiempo de reconstrucción aumentan drásticamente (especialmente, como se describió anteriormente, con RAID 5 y RAID 6). Al dividir un conjunto RAID N más grande en subconjuntos más pequeños y concatenarlos con JBOD lineal, se reducirá el tiempo de escritura y reconstrucción. Si un controlador RAID de hardware no es capaz de anidar JBOD lineal con RAID N, entonces se puede lograr JBOD lineal con RAID de software a nivel de sistema operativo en combinación con volúmenes de subconjunto RAID N separados creados dentro de uno o más controladores RAID de hardware. Además de un aumento drástico de la velocidad, esto también proporciona una ventaja sustancial: la posibilidad de iniciar un JBOD lineal con un pequeño conjunto de discos y poder expandir el conjunto total con discos de diferente tamaño, más adelante (en el tiempo, discos de mayor tamaño). disponible en el mercado). Existe otra ventaja en forma de recuperación ante desastres (si un subconjunto de RAID N falla, los datos de los otros subconjuntos de RAID N no se pierden, lo que reduce el tiempo de restauración).

Niveles no estándar

Son posibles muchas configuraciones distintas de los niveles RAID numerados básicos, y muchas empresas, organizaciones y grupos han creado sus propias configuraciones no estándar, en muchos casos diseñadas para satisfacer las necesidades especializadas de un pequeño grupo especializado. Dichas configuraciones incluyen lo siguiente:

  • Linux MD RAID 10 proporciona un controlador RAID general que, en su diseño "casi" predeterminado, es un RAID 1 estándar con dos unidades y un RAID 1 + 0 estándar con cuatro unidades; sin embargo, puede incluir cualquier número de unidades, incluidos los números impares. Con su diseño "lejano", MD RAID 10 puede ejecutarse tanto en bandas como en espejo, incluso con solo dos unidades en el f2diseño; esto se ejecuta en duplicación con lecturas en franjas, lo que proporciona el rendimiento de lectura de RAID 0. RAID 1 normal, tal como lo proporciona el software RAID de Linux , no hace lecturas en franjas , pero puede realizar lecturas en paralelo.
  • Hadoop tiene un sistema RAID que genera un archivo de paridad mediante la xorización de una franja de bloques en un solo archivo HDFS.
  • BeeGFS , el sistema de archivos paralelo, tiene opciones internas de creación de bandas (comparable a RAID0 basado en archivos) y replicación (comparable a RAID10 basado en archivos) para agregar el rendimiento y la capacidad de varios servidores y generalmente se basa en la parte superior de un RAID subyacente para hacer el disco fallas transparentes.
  • El RAID desagrupado dispersa copias duales (o más) de los datos en todos los discos (posiblemente cientos) en un subsistema de almacenamiento, mientras retiene suficiente capacidad de reserva para permitir que algunos discos fallen. La dispersión se basa en algoritmos que dan la apariencia de arbitrariedad. Cuando uno o más discos fallan, las copias faltantes se reconstruyen en esa capacidad libre, nuevamente de forma arbitraria. Debido a que la reconstrucción se realiza desde y hacia todos los discos restantes, funciona mucho más rápido que con RAID tradicional, lo que reduce el impacto general en los clientes del sistema de almacenamiento.

Implementaciones

La distribución de datos en varias unidades se puede administrar mediante hardware informático dedicado o mediante software . Una solución de software puede ser parte del sistema operativo, parte del firmware y los controladores suministrados con un controlador de unidad estándar (el llamado "software RAID asistido por hardware"), o puede residir completamente dentro del controlador RAID de hardware.

Basado en hardware

Configuración de RAID de hardware

Los controladores RAID de hardware se pueden configurar a través del BIOS de la tarjeta o la ROM opcional antes de que se inicie un sistema operativo , y después de que se inicie el sistema operativo, las utilidades de configuración propietarias están disponibles del fabricante de cada controlador. A diferencia de los controladores de interfaz de red para Ethernet , que generalmente se pueden configurar y mantener por completo a través de los paradigmas comunes del sistema operativo como ifconfig en Unix , sin necesidad de herramientas de terceros, cada fabricante de cada controlador RAID generalmente proporciona sus propias herramientas de software patentadas. para cada sistema operativo que consideren compatible, lo que garantiza un bloqueo del proveedor y contribuye a los problemas de confiabilidad.

Por ejemplo, en FreeBSD , para acceder a la configuración de los controladores RAID de Adaptec , los usuarios deben habilitar la capa de compatibilidad de Linux y utilizar las herramientas de Linux de Adaptec, lo que podría comprometer la estabilidad, confiabilidad y seguridad de su configuración, especialmente al tomar la visión a largo plazo .

Algunos otros sistemas operativos han implementado sus propios marcos genéricos para interactuar con cualquier controlador RAID y proporcionan herramientas para monitorear el estado del volumen RAID, así como facilitar la identificación de la unidad a través del parpadeo de LED, administración de alarmas y designaciones de disco de repuesto en caliente desde el sistema operativo sin tener que reiniciar en la BIOS de la tarjeta. Por ejemplo, este fue el enfoque adoptado por OpenBSD en 2005 con su pseudodispositivo bio (4) y la utilidad bioctl , que proporcionan el estado del volumen y permiten el control de LED / alarma / repuesto, así como los sensores (incluido el sensor de unidad). ) para el control de la salud; Este enfoque también ha sido adoptado y ampliado posteriormente por NetBSD en 2007.

Basado en software

Muchos sistemas operativos modernos proporcionan implementaciones de software RAID . El software RAID se puede implementar como:

  • Una capa que abstrae varios dispositivos, proporcionando de este modo un único dispositivo virtual (tales como Linux kernel 's md y softraid de OpenBSD)
  • Un administrador de volumen lógico más genérico (provisto con la mayoría de los sistemas operativos de clase de servidor, como Veritas o LVM )
  • Un componente del sistema de archivos (como ZFS , Spectrum Scale o Btrfs )
  • Una capa que se encuentra por encima de cualquier sistema de archivos y proporciona protección por paridad a los datos del usuario (como RAID-F)

Algunos sistemas de archivos avanzados están diseñados para organizar datos en varios dispositivos de almacenamiento directamente, sin necesidad de la ayuda de un administrador de volumen lógico de terceros:

  • ZFS admite los equivalentes de RAID 0, RAID 1, RAID 5 (RAID-Z1) de paridad única, RAID 6 (RAID-Z2) de doble paridad y una versión de triple paridad (RAID-Z3) también conocida como RAID 7 Como siempre se distribuye por encima de los vdevs de nivel superior, admite equivalentes de los niveles RAID anidados 1 + 0, 5 + 0 y 6 + 0 (así como conjuntos de paridad triple rayados) pero no otras combinaciones anidadas. ZFS es el sistema de archivos nativo en Solaris e illumos , y también está disponible en FreeBSD y Linux. Las implementaciones de ZFS de código abierto se desarrollan activamente en el marco del proyecto general OpenZFS .
  • Spectrum Scale , desarrollado inicialmente por IBM para transmisión de medios y análisis escalable, admite esquemas de protección RAID desagrupados hasta n + 3. Una particularidad es la prioridad de reconstrucción dinámica que se ejecuta con bajo impacto en segundo plano hasta que un fragmento de datos alcanza una redundancia n + 0, en cuyo caso este fragmento se reconstruye rápidamente a al menos n + 1. Además, Spectrum Scale admite RAID 1 de distancia metropolitana.
  • Btrfs admite RAID 0, RAID 1 y RAID 10 (RAID 5 y 6 están en desarrollo).
  • XFS se diseñó originalmente para proporcionar un administrador de volumen integrado que admite la concatenación, la duplicación y la creación de bandas de varios dispositivos de almacenamiento físico. Sin embargo, la implementación de XFS en el kernel de Linux carece del administrador de volumen integrado.

Muchos sistemas operativos proporcionan implementaciones RAID, incluidas las siguientes:

  • El sistema operativo OpenVMS de Hewlett-Packard es compatible con RAID 1. Los discos reflejados, denominados "conjunto de sombra", pueden estar en diferentes ubicaciones para ayudar en la recuperación ante desastres.
  • MacOS y macOS Server de Apple admiten RAID 0, RAID 1 y RAID 1 + 0.
  • FreeBSD admite RAID 0, RAID 1, RAID 3 y RAID 5, y todos los anidamientos a través de módulos GEOM y ccd.
  • El md de Linux admite RAID 0, RAID 1, RAID 4, RAID 5, RAID 6 y todos los anidamientos. También se admiten ciertas operaciones de remodelación / cambio de tamaño / expansión.
  • Microsoft Windows admite RAID 0, RAID 1 y RAID 5 mediante varias implementaciones de software. El Administrador de discos lógicos , introducido con Windows 2000 , permite la creación de volúmenes RAID 0, RAID 1 y RAID 5 mediante el uso de discos dinámicos , pero esto se limitó solo a las ediciones profesionales y de servidor de Windows hasta el lanzamiento de Windows 8 . Windows XP se puede modificar para desbloquear la compatibilidad con RAID 0, 1 y 5. Windows 8 y Windows Server 2012 introdujeron una función similar a RAID conocida como espacios de almacenamiento , que también permite a los usuarios especificar duplicación, paridad o no redundancia en una carpeta. -por carpeta. Estas opciones son similares a RAID 1 y RAID 5, pero se implementan en un nivel de abstracción más alto.
  • NetBSD admite RAID 0, 1, 4 y 5 a través de su implementación de software, denominada RAIDframe.
  • OpenBSD admite RAID 0, 1 y 5 a través de su implementación de software, llamado softraid.

Si falla una unidad de arranque, el sistema debe ser lo suficientemente sofisticado para poder arrancar desde la unidad o unidades restantes. Por ejemplo, considere una computadora cuyo disco está configurado como RAID 1 (unidades duplicadas); Si falla la primera unidad de la matriz, es posible que un cargador de arranque de la primera etapa no sea lo suficientemente sofisticado para intentar cargar el cargador de arranque de la segunda etapa desde la segunda unidad como alternativa. El cargador de arranque de segunda etapa para FreeBSD es capaz de cargar un kernel desde dicho arreglo.

Basado en firmware y controlador

Un controlador SATA 3.0 que proporciona funcionalidad RAID a través de firmware y controladores patentados

RAID implementado por software no siempre es compatible con el proceso de arranque del sistema y, por lo general, no es práctico para las versiones de escritorio de Windows. Sin embargo, los controladores RAID de hardware son costosos y propietarios. Para llenar este vacío, se introdujeron "controladores RAID" económicos que no contienen un chip controlador RAID dedicado, sino simplemente un chip controlador de unidad estándar con firmware y controladores patentados. Durante el arranque temprano, el firmware implementa el RAID y, una vez que el sistema operativo se ha cargado más completamente, los controladores toman el control. En consecuencia, es posible que dichos controladores no funcionen cuando la compatibilidad con controladores no esté disponible para el sistema operativo host. Un ejemplo es la tecnología Intel Rapid Storage , implementada en muchas placas base de nivel de consumidor.

Debido a que se trata de un soporte de hardware mínimo, esta implementación también se denomina "RAID de software asistido por hardware", RAID de "modelo híbrido" o incluso "RAID falso". Si se admite RAID 5, el hardware puede proporcionar un acelerador XOR de hardware. Una ventaja de este modelo sobre el RAID de software puro es que, si se usa un modo de redundancia, la unidad de arranque está protegida contra fallas (debido al firmware) durante el proceso de arranque incluso antes de que los controladores del sistema operativo se hagan cargo.

Integridad

La depuración de datos (denominada en algunos entornos como lectura de patrulla ) implica la lectura y verificación periódicas por parte del controlador RAID de todos los bloques de una matriz, incluidos aquellos a los que no se accede de otro modo. Esto detecta bloques defectuosos antes de su uso. La depuración de datos comprueba si hay bloques defectuosos en cada dispositivo de almacenamiento de una matriz, pero también utiliza la redundancia de la matriz para recuperar bloques defectuosos en una sola unidad y reasignar los datos recuperados a bloques de repuesto en otras partes de la unidad.

Con frecuencia, un controlador RAID se configura para "soltar" una unidad de componente (es decir, para asumir que una unidad de componente ha fallado) si la unidad no responde durante unos ocho segundos; esto puede hacer que el controlador de arrays deje caer una buena unidad porque no se le ha dado suficiente tiempo a esa unidad para completar su procedimiento de recuperación de errores internos. En consecuencia, el uso de unidades comercializadas por el consumidor con RAID puede ser riesgoso, y las llamadas unidades de "clase empresarial" limitan este tiempo de recuperación de errores para reducir el riesgo. Las unidades de escritorio de Western Digital solían tener una solución específica. Una utilidad llamada WDTLER.exe limitó el tiempo de recuperación de errores de una unidad. La utilidad habilitó TLER (recuperación de errores por tiempo limitado) , que limita el tiempo de recuperación de errores a siete segundos. Alrededor de septiembre de 2009, Western Digital desactivó esta función en sus unidades de escritorio (como la línea Caviar Black), lo que hizo que dichas unidades no fueran adecuadas para su uso en configuraciones RAID. Sin embargo, las unidades de clase empresarial de Western Digital se envían de fábrica con TLER habilitado. Seagate, Samsung e Hitachi utilizan tecnologías similares. Para el uso no RAID, una unidad de clase empresarial con un breve tiempo de espera de recuperación de errores que no se puede cambiar es, por lo tanto, menos adecuada que una unidad de escritorio. A finales de 2010, el programa Smartmontools comenzó a admitir la configuración de ATA Error Recovery Control, lo que permite que la herramienta configure muchos discos duros de escritorio para su uso en configuraciones RAID.

Si bien RAID puede proteger contra fallas de la unidad física, los datos aún están expuestos a la destrucción del operador, el software, el hardware y los virus. Muchos estudios citan la falla del operador como una fuente común de mal funcionamiento, como un operador de servidor que reemplaza la unidad incorrecta en un RAID defectuoso y deshabilita el sistema (incluso temporalmente) en el proceso.

Una matriz puede verse abrumada por una falla catastrófica que exceda su capacidad de recuperación y toda la matriz corre el riesgo de sufrir daños físicos por incendios, desastres naturales y fuerzas humanas; sin embargo, las copias de seguridad se pueden almacenar fuera del sitio. Una matriz también es vulnerable a fallas del controlador porque no siempre es posible migrarla a un controlador nuevo y diferente sin pérdida de datos.

Debilidades

Fallos correlacionados

En la práctica, las unidades suelen tener la misma edad (con un desgaste similar) y están sujetas al mismo entorno. Dado que muchas fallas en las unidades se deben a problemas mecánicos (que son más probables en las unidades más antiguas), esto viola los supuestos de una tasa de falla idéntica e independiente entre las unidades; de hecho, las fallas están correlacionadas estadísticamente. En la práctica, las posibilidades de que se produzca un segundo error antes de que se haya recuperado el primero (lo que provocó la pérdida de datos) son mayores que las posibilidades de que se produzcan errores aleatorios. En un estudio de alrededor de 100,000 unidades, la probabilidad de que dos unidades en el mismo clúster fallaran en una hora fue cuatro veces mayor que la predicha por la distribución estadística exponencial, que caracteriza los procesos en los que los eventos ocurren de manera continua e independiente a una tasa promedio constante. La probabilidad de dos fallas en el mismo período de 10 horas fue el doble de lo predicho por una distribución exponencial.

Errores de lectura irrecuperables durante la reconstrucción

Los errores de lectura irrecuperables (URE) se presentan como fallas de lectura de sector, también conocidos como errores de sector latente (LSE). La medida de evaluación de medios asociada, la tasa de error de bit irrecuperable (UBE), generalmente se garantiza que es menos de un bit en 10 15 para unidades de clase empresarial ( SCSI , FC , SAS o SATA), y menos de un bit en 10 14 para unidades de sobremesa (IDE / ATA / PATA o SATA). El aumento de la capacidad de las unidades y las instancias RAID 5 grandes han llevado a que las tasas de error máximas sean insuficientes para garantizar una recuperación exitosa, debido a la alta probabilidad de que ocurra un error de este tipo en una o más unidades restantes durante la reconstrucción de un conjunto RAID. Al reconstruir, los esquemas basados ​​en paridad como RAID 5 son particularmente propensos a los efectos de los URE, ya que afectan no solo al sector donde ocurren, sino también a los bloques reconstruidos que utilizan ese sector para el cálculo de la paridad.

Los esquemas basados ​​en paridad de doble protección, como RAID 6, intentan solucionar este problema proporcionando redundancia que permite fallas de unidades dobles; Como inconveniente, estos esquemas sufren una penalización de escritura elevada: el número de veces que se debe acceder al medio de almacenamiento durante una sola operación de escritura. Los esquemas que duplican (reflejan) datos de una unidad a otra, como RAID 1 y RAID 10, tienen un riesgo menor de URE que los que utilizan el cálculo de paridad o la duplicación entre conjuntos seccionados. La depuración de datos , como proceso en segundo plano, se puede utilizar para detectar y recuperarse de URE, lo que reduce de manera efectiva el riesgo de que ocurran durante las reconstrucciones de RAID y provoquen fallas en las unidades dobles. La recuperación de URE implica la reasignación de sectores de disco subyacentes afectados, utilizando el grupo de reasignación de sectores de la unidad; En el caso de que se detecten URE durante la depuración en segundo plano, la redundancia de datos proporcionada por un conjunto RAID totalmente operativo permite reconstruir y reescribir los datos faltantes en un sector reasignado.

Aumento del tiempo de reconstrucción y la probabilidad de fallas

La capacidad de la unidad ha crecido a un ritmo mucho más rápido que la velocidad de transferencia, y las tasas de error solo han disminuido un poco en comparación. Por lo tanto, las unidades de mayor capacidad pueden tardar horas, si no días, en reconstruirse, tiempo durante el cual otras unidades pueden fallar o pueden aparecer errores de lectura no detectados. El tiempo de reconstrucción también es limitado si toda la matriz todavía está en funcionamiento a capacidad reducida. Dada una matriz con una sola unidad redundante (que se aplica a los niveles RAID 3, 4 y 5, y al RAID 1 "clásico" de dos unidades), una segunda falla de la unidad provocaría una falla completa de la matriz. Aunque el tiempo medio entre fallos (MTBF) de las unidades individuales ha aumentado con el tiempo, este aumento no ha seguido el ritmo de la mayor capacidad de almacenamiento de las unidades. El tiempo para reconstruir la matriz después de una falla de una sola unidad, así como la posibilidad de una segunda falla durante una reconstrucción, han aumentado con el tiempo.

Algunos comentaristas han declarado que RAID 6 es solo una "curita" a este respecto, porque solo resuelve el problema un poco más adelante. Sin embargo, de acuerdo con el estudio de 2006 de NetApp de Berriman et al., La posibilidad de falla se reduce en un factor de aproximadamente 3800 (en relación con RAID 5) para una implementación adecuada de RAID 6, incluso cuando se utilizan unidades básicas. Sin embargo, si las tendencias tecnológicas observadas actualmente no cambian, en 2019 una matriz RAID 6 tendrá las mismas posibilidades de fallar que su contraparte RAID 5 en 2010.

Los esquemas de duplicación como RAID 10 tienen un tiempo de recuperación limitado, ya que requieren la copia de una sola unidad fallida, en comparación con los esquemas de paridad como RAID 6, que requieren la copia de todos los bloques de las unidades en un conjunto de arreglos. Se han sugerido esquemas de triple paridad, o duplicación triple, como un enfoque para mejorar la resistencia a una falla adicional de la unidad durante este gran tiempo de reconstrucción.

Atomicidad

Una caída del sistema u otra interrupción de una operación de escritura puede resultar en estados en los que la paridad es inconsistente con los datos debido a la falta de atomicidad del proceso de escritura, de modo que la paridad no se puede usar para la recuperación en el caso de una falla del disco. Esto se denomina comúnmente agujero de escritura RAID 5. El agujero de escritura de RAID es un problema conocido de corrupción de datos en RAID más antiguos y de gama baja, causado por la desestabilización interrumpida de escrituras en el disco. El agujero de escritura se puede solucionar con el registro de escritura anticipada . Esto se solucionó en mdadm mediante la introducción de un dispositivo de registro en diario dedicado (para evitar la penalización del rendimiento, por lo general, se prefieren las SSD y las NVM ) para ese propósito.

Este es un modo de falla poco comprendido y rara vez mencionado para los sistemas de almacenamiento redundantes que no utilizan características transaccionales. El investigador de bases de datos Jim Gray escribió "Update in Place is a Poison Apple" durante los primeros días de la comercialización de bases de datos relacionales.

Fiabilidad de la caché de escritura

Existen preocupaciones sobre la confiabilidad de la caché de escritura, específicamente en lo que respecta a los dispositivos equipados con una caché de escritura diferida , que es un sistema de almacenamiento en caché que informa los datos como escritos tan pronto como se escriben en la caché, a diferencia de cuando se escriben en la memoria caché que no se escribe. -medio volátil. Si el sistema experimenta una pérdida de energía u otra falla importante, los datos pueden perderse irrevocablemente de la caché antes de llegar al almacenamiento no volátil. Por esta razón, las buenas implementaciones de caché de escritura diferida incluyen mecanismos, como energía de batería redundante, para preservar el contenido de la caché en caso de fallas del sistema (incluidas las fallas de energía) y para vaciar la caché en el momento de reiniciar el sistema.

Ver también

Referencias

enlaces externos