Los datos se distribuyen entre las unidades de varias maneras, denominadas niveles RAID, según el nivel requerido de redundancia y rendimiento. Los diferentes esquemas, o diseños de distribución de datos, se denominan 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 sectores irrecuperables , así como contra fallas de unidades físicas completas.
Historia
El término "RAID" fue inventado por David Patterson , Garth 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 el SIGMOD En la conferencia, 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 económicas que se habían desarrollado para el creciente mercado de computadoras personales . Aunque las fallas aumentarían en proporción al número de unidades, al configurarlas para redundancia, la confiabilidad de una matriz podría exceder con creces la de cualquier unidad grande. [4]
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, [3] incluidos los siguientes:
La duplicación (RAID 1) estaba bien establecida en la década de 1970, incluidos, por ejemplo, Tandem NonStop Systems .
En 1977, Norman Ken Ouchi de IBM presentó una patente que revelaba lo que posteriormente se denominó RAID 4. [5]
Alrededor de 1983, DEC comenzó a enviar unidades de disco RA8X reflejadas del subsistema (ahora conocidas como RAID 1) como parte de su subsistema HSC50. [6]
En 1986, Clark et al. IBM presentó una patente que revela lo que posteriormente se denominó RAID 5. [7]
Alrededor de 1988, DataVault de Thinking Machines utilizaba códigos de corrección de errores (ahora conocidos como RAID 2) en una serie de unidades de disco. [8] A principios de la década de 1960 se utilizó un enfoque similar en el IBM 353 . [9] [10]
Posteriormente, los fabricantes de la industria redefinieron el acrónimo RAID para que signifique "matriz redundante de discos independientes ". [2] [11] [12] [13]
Descripción general
Muchos niveles 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 determinado. 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 . [14]
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 un disco mecánico. Para que esta configuración proporcione una ventaja de velocidad significativa, se necesita un controlador adecuado que utilice el SSD rápido para todas las operaciones de lectura. Adaptec llama a esto "RAID híbrido". [15]
Niveles estándar
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): [16] [17]
RAID 0 consta de segmentación a nivel de bloque , 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 las unidades 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 provoca la pérdida de todo el volumen RAID 0 y de todos los archivos. En comparación, un volumen distribuido conserva los archivos en las unidades infalibles. El beneficio de RAID 0 es que el rendimiento de las operaciones de lectura y escritura en cualquier archivo se multiplica por la cantidad de unidades porque, a diferencia de los volúmenes distribuidos, las lecturas y escrituras se realizan simultáneamente . [11] El costo es una mayor vulnerabilidad a las fallas de las unidades: dado que cualquier unidad en una configuración RAID 0 que falla causa 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 segmentación. Los datos se escriben de forma idéntica en dos o más unidades, lo que produce un "conjunto reflejado" de unidades. Por lo tanto, cualquier solicitud de lectura puede ser atendida por cualquier unidad del conjunto. Si se transmite una solicitud a cada unidad del conjunto, la unidad que accede primero a los datos puede atenderla (dependiendo de su tiempo de búsqueda y latencia rotacional ), lo que mejora el rendimiento. El rendimiento de lectura sostenido, si el controlador o el software está optimizado para ello, se acerca 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 al menos una unidad esté funcionando. [11]
RAID 2 consta de segmentación a nivel de bits conparidad de código Hamming dedicada. Toda la rotación del eje del disco está sincronizada y los datos se dividen de manera que cada bit secuencialesté en una unidad diferente. La paridad del código Hamming se calcula en los bits correspondientes y se almacena en al menos una unidad de paridad. [11] Este nivel es sólo de importancia histórica; aunque se usó en algunas de las primeras máquinas (por ejemplo, Thinking Machines CM-2), [18] a partir de 2014[actualizar]no lo utiliza ningún sistema disponible comercialmente. [19]
RAID 3 consta de segmentación a nivel de bytes con paridad dedicada. Toda la rotación del eje del disco está sincronizada y los datos se dividen de manera 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. [11] Aunque existen implementaciones, [20] RAID 3 no se usa comúnmente en la práctica.
RAID 4 consta de segmentación a nivel de bloque con paridad dedicada. Este nivel fue utilizado anteriormente por NetApp , pero ahora ha sido reemplazado en gran medida por una implementación patentada de RAID 4 con dos discos de paridad, llamada RAID-DP . [21] La principal ventaja de RAID 4 sobre RAID 2 y 3 es el paralelismo de E/S: en RAID 2 y 3, una única operación de lectura de E/S requiere leer todo el grupo de unidades de datos, mientras que en RAID 4 una sola operación de E/S La operación de lectura 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. [1]
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 modo que no se pierdan datos. RAID 5 requiere al menos tres discos. [11] 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 la probabilidad de falla", a continuación). [22] La reconstrucción de una matriz requiere leer todos los datos de todos los discos, lo que abre la posibilidad de que se produzca una segunda falla en la unidad y la pérdida de toda la matriz.
RAID 6 consta de bandas a nivel de bloque con doble paridad distribuida. La paridad doble proporciona tolerancia a fallos hasta dos unidades fallidas. Esto hace que los grupos RAID más grandes sean más prácticos, especialmente para 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, una falla de una sola unidad da como resultado una reducción del rendimiento de toda la matriz hasta que se reemplaza la unidad fallida. [11] 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 mayores sean las capacidades de las unidades y el tamaño de la matriz, más importante será elegir RAID 6 en lugar de RAID 5. [23] RAID 10 también minimiza estos problemas. [24]
RAID anidado (híbrido)
En lo que originalmente se denominó RAID híbrido , [25] muchos controladores de almacenamiento permiten anidar niveles de RAID. Los elementos de un RAID pueden ser unidades individuales o matrices en sí. Los arreglos rara vez están anidados 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 produce 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 efectivamente como RAID 0 sin redundancia. Durante una reconstrucción se introduce un riesgo significativamente mayor que RAID 1+0, ya que todos los datos de todas las unidades en la banda restante deben leerse en lugar de solo desde una unidad, lo que aumenta la posibilidad de que se produzca un error de lectura irrecuperable (URE) y se extiende significativamente. la ventana de reconstrucción. [26] [27] [28]
RAID 1+0: (ver: RAID 10 ) crea un conjunto seccionado a partir de una serie de unidades reflejadas. La matriz puede sufrir múltiples pérdidas de unidades siempre que ningún espejo pierda todas sus unidades. [29]
JBOD RAID N+N: Con JBOD ( sólo un montón de discos ), es posible concatenar discos, pero también volúmenes como conjuntos RAID. Con capacidades de unidad más grandes, el retraso de escritura y el tiempo de reconstrucción aumentan dramáticamente (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 necesita aclaración ] 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 el JBOD lineal se puede lograr con RAID de software a nivel de sistema operativo en combinación con volúmenes de subconjuntos RAID N separados creados dentro de uno o más controladores RAID de hardware. Además de un aumento drástico de velocidad, esto también proporciona una ventaja sustancial: la posibilidad de iniciar un JBOD lineal con un pequeño conjunto de discos y poder ampliar el conjunto total con discos de diferente tamaño, más adelante (con el tiempo, discos de mayor tamaño). disponible en el mercado). Existe otra ventaja en la 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). [ cita necesaria ]
Niveles no estándar
Son posibles muchas configuraciones además 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 de nicho. Dichas configuraciones incluyen lo siguiente:
Linux MD RAID 10 proporciona un controlador RAID general que en su diseño "casi" tiene por defecto 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 franjas como en espejo, incluso con sólo dos unidades en f2el diseño; esto ejecuta la duplicación con lecturas seccionadas, lo que proporciona el rendimiento de lectura de RAID 0. El RAID 1 normal, proporcionado por el software RAID de Linux , no realiza lecturas seccionadas, pero puede realizar lecturas en paralelo. [29] [30] [31]
Hadoop tiene un sistema RAID que genera un archivo de paridad xorizando una franja de bloques en un único archivo HDFS. [32]
BeeGFS , el sistema de archivos paralelo, tiene opciones de división interna (comparable al RAID0 basado en archivos) y replicación (comparable al RAID10 basado en archivos) para agregar el rendimiento y la capacidad de múltiples servidores y, por lo general, se basa en la parte superior de un RAID subyacente para crear un disco. fallos transparentes.
RAID desagrupado dispersa copias dobles (o más) de los datos en todos los discos (posiblemente cientos) en un subsistema de almacenamiento, al tiempo que retiene suficiente capacidad adicional 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 adicional, nuevamente de manera 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 entre múltiples unidades se puede gestionar 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 "RAID de software asistido por hardware"), o puede residir completamente dentro del controlador RAID de hardware.
Basado en hardware
Los controladores RAID de hardware se pueden configurar a través del BIOS de la tarjeta o de la ROM opcional antes de iniciar un sistema operativo y, después de iniciar el sistema operativo, el fabricante de cada controlador ofrece utilidades de configuración patentadas . A diferencia de los controladores de interfaz de red para Ethernet , que generalmente se pueden configurar y mantener completamente a través de paradigmas de sistemas operativos comunes 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 consideran compatible, lo que garantiza la dependencia del proveedor y contribuye a los problemas de confiabilidad. [33]
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, [34] comprometiendo potencialmente la estabilidad, confiabilidad y seguridad de su configuración, especialmente al adoptar una visión de largo plazo. [33]
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 del LED, administración de alarmas y designaciones de discos de repuesto dinámicos desde dentro del sistema operativo sin tener que reiniciar en el 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 proporciona el estado del volumen y permite el control de LED/alarma/repuesto, así como los sensores (incluido el sensor de unidad). ) para el control de la salud; [35] NetBSD adoptó y amplió posteriormente este enfoque también en 2007. [36]
Basado en software
Muchos sistemas operativos modernos proporcionan implementaciones de software RAID . El software RAID se puede implementar como:
Una capa que se encuentra encima de cualquier sistema de archivos y proporciona protección de paridad a los datos del usuario (como RAID-F) [37]
Algunos sistemas de archivos avanzados están diseñados para organizar datos en múltiples dispositivos de almacenamiento directamente, sin necesidad de la ayuda de un administrador de volúmenes lógicos 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. [38] Como siempre se divide en vdevs de nivel superior, admite equivalentes de los niveles RAID anidados 1+0, 5+0 y 6+0 (así como conjuntos de triple paridad seccionados), pero no otras combinaciones anidadas . ZFS es el sistema de archivos nativo de Solaris e illusmos , y también está disponible en FreeBSD y Linux. Las implementaciones ZFS de código abierto se desarrollan activamente bajo el proyecto general OpenZFS . [39] [40] [41] [42] [43]
Spectrum Scale , desarrollado inicialmente por IBM para transmisión de medios y análisis escalable, admite esquemas de protección RAID separados 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 la 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. [44]
Btrfs admite RAID 0, RAID 1 y RAID 10 (RAID 5 y 6 están en desarrollo). [45] [46]
XFS se diseñó originalmente para proporcionar un administrador de volúmenes integrado que admita la concatenación, duplicación y división de múltiples dispositivos de almacenamiento físico. [47] Sin embargo, la implementación de XFS en el kernel de Linux carece del administrador de volumen integrado. [48]
Muchos sistemas operativos proporcionan implementaciones RAID, incluidas las siguientes:
El sistema operativo OpenVMS de Hewlett-Packard admite RAID 1. Los discos reflejados, llamados "conjunto oculto", pueden estar en diferentes ubicaciones para ayudar en la recuperación ante desastres. [49]
macOS y macOS Server de Apple admiten RAID 0, RAID 1 y RAID 1+0. [50] [51]
FreeBSD admite RAID 0, RAID 1, RAID 3 y RAID 5, y todos los anidamientos a través de módulos GEOM y ccd. [52] [53] [54]
El md de Linux admite RAID 0, RAID 1, RAID 4, RAID 5, RAID 6 y todos los anidamientos. [55] También se admiten ciertas operaciones de remodelación, cambio de tamaño y expansión. [56]
Microsoft Windows admite RAID 0, RAID 1 y RAID 5 mediante varias implementaciones de software. Logical Disk Manager , 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ó sólo a las ediciones profesional y de servidor de Windows hasta el lanzamiento de Windows 8 . [57] [58] Windows XP se puede modificar para desbloquear la compatibilidad con RAID 0, 1 y 5. [59] Windows 8 y Windows Server 2012 introdujeron una característica similar a RAID conocida como Espacios de almacenamiento , que también permite a los usuarios especificar la duplicación. , paridad o sin redundancia carpeta por carpeta. Estas opciones son similares a RAID 1 y RAID 5, pero se implementan en un nivel de abstracción superior. [60]
NetBSD admite RAID 0, 1, 4 y 5 a través de su implementación de software, denominada RAIDframe. [61]
OpenBSD admite RAID 0, 1 y 5 a través de su implementación de software, denominada softraid. [62]
Si falla una unidad de arranque, el sistema debe ser lo suficientemente sofisticado como para poder arrancar desde la unidad o unidades restantes. Por ejemplo, considere una computadora cuyo disco está configurado como RAID 1 (unidades reflejadas); Si falla la primera unidad de la matriz, es posible que un cargador de arranque de primera etapa no sea lo suficientemente sofisticado como para intentar cargar el cargador de arranque de segunda etapa desde la segunda unidad como alternativa. El cargador de arranque de segunda etapa para FreeBSD es capaz de cargar un kernel desde dicha matriz. [63]
Basado en firmware y controladores
El RAID implementado por software no siempre es compatible con el proceso de arranque del sistema y, por lo general, no resulta práctico para las versiones de escritorio de Windows. Sin embargo, los controladores RAID de hardware son caros 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, o la función RAID incorporada en el chipset, con firmware y controladores propietarios. Durante el arranque temprano, el firmware implementa el RAID y, una vez que el sistema operativo se ha cargado por completo, 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. [64] Un ejemplo es la tecnología Intel Rapid Storage , implementada en muchas placas base de nivel de consumidor. [65] [66]
Debido a que se trata de un soporte mínimo de hardware, esta implementación también se denomina "RAID de software asistido por hardware", [67] [68] [69] RAID "modelo híbrido", [69] o incluso "RAID falso". [70] 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 utiliza un modo de redundancia, la unidad de arranque está protegida contra fallas (debidas al firmware) durante el proceso de arranque, incluso antes de que los controladores del sistema operativo tomen el control. [69]
Integridad
La depuración de datos (denominada en algunos entornos 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. [71] La depuración de datos busca bloques defectuosos en cada dispositivo de almacenamiento en 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. [72]
Con frecuencia, un controlador RAID está configurado para "eliminar" una unidad de componente (es decir, asumir que una unidad de componente ha fallado) si la unidad no ha respondido durante aproximadamente ocho segundos; Esto podría provocar que el controlador de matriz descarte una unidad en buen estado porque a esa unidad no se le ha dado tiempo suficiente para completar su procedimiento de recuperación de errores internos. En consecuencia, el uso de unidades con RAID comercializadas para el consumidor puede ser riesgoso y las unidades denominadas de "clase empresarial" limitan este tiempo de recuperación de errores para reducir el riesgo. [ cita necesaria ] 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 deshabilitó 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. [73] Sin embargo, las unidades de clase empresarial Western Digital se envían de fábrica con TLER habilitado. Seagate, Samsung e Hitachi utilizan tecnologías similares. Por lo tanto, para uso no RAID, una unidad de clase empresarial con un tiempo de espera de recuperación de errores corto que no se puede cambiar es menos adecuada que una unidad de escritorio. [73] A finales de 2010, el programa Smartmontools comenzó a soportar la configuración de ATA Error Recovery Control, permitiendo a la herramienta configurar muchos discos duros de escritorio para su uso en configuraciones RAID. [73]
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, [74] [75] como que un operador de servidor reemplace la unidad incorrecta en un RAID defectuoso y deshabilite el sistema (incluso temporalmente) en el proceso. [76]
Un arreglo puede verse abrumado por una falla catastrófica que exceda su capacidad de recuperación y todo el arreglo corre el riesgo de sufrir daños físicos por incendio, 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. [77]
Debilidades
Fallos correlacionados
En la práctica, las transmisiones suelen tener la misma edad (con un desgaste similar) y estar sujetas al mismo entorno. Dado que muchas fallas de 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, los fracasos están estadísticamente correlacionados. [11] En la práctica, las posibilidades de que se produzca un segundo fallo antes de que se haya recuperado el primero (lo que provocará la pérdida de datos) son mayores que las posibilidades de fallos aleatorios. En un estudio de alrededor de 100.000 unidades, la probabilidad de que dos unidades del mismo grupo fallaran en una hora era cuatro veces mayor de lo previsto por la distribución estadística exponencial , que caracteriza los procesos en los que los eventos ocurren de forma continua e independiente a un ritmo promedio constante. La probabilidad de dos fallas en el mismo período de 10 horas era dos veces mayor de lo predicho por una distribución exponencial. [78]
Errores de lectura irrecuperables durante la reconstrucción
Los errores de lectura irrecuperables (URE) se presentan como fallas de lectura del sector, también conocidos como errores de sector latente (LSE). Por lo general, se garantiza que la medida de evaluación de medios asociada, la tasa de error de bit irrecuperable (UBE), es menos de un bit entre 10 15 [ disputado – discutir ] para unidades de clase empresarial ( SCSI , FC , SAS o SATA), y menos de uno bit en 10 14 [ disputado – discutir ] para unidades de escritorio (IDE/ATA/PATA o SATA). El aumento de las capacidades de las unidades y las grandes instancias de RAID 5 han provocado que las tasas máximas de error sean insuficientes para garantizar una recuperación exitosa, debido a la alta probabilidad de que se produzca un error de este tipo en una o más unidades restantes durante la reconstrucción de un conjunto RAID. [11] [ fuente obsoleta ] [79] 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. . [80]
Los esquemas basados en paridad de doble protección, como RAID 6, intentan abordar este problema proporcionando redundancia que permite fallas de doble unidad; Como desventaja, estos esquemas sufren una penalización de escritura elevada: la cantidad de veces que se debe acceder al medio de almacenamiento durante una sola operación de escritura. [81] Los esquemas que duplican (duplican) datos de unidad a unidad, como RAID 1 y RAID 10, tienen un menor riesgo de URE que aquellos que utilizan cálculo de paridad o duplicación entre conjuntos seccionados. [24] [82] 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 causen fallas en las unidades dobles. La recuperación de URE implica la reasignación de los 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 completamente operativo permite reconstruir y reescribir los datos faltantes en un sector reasignado. [83] [84]
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 sólo 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 aún pueden aparecer errores de lectura no detectados. El tiempo de reconstrucción también es limitado si todo el conjunto todavía está en funcionamiento a capacidad reducida. [85] Dada una matriz con solo una unidad redundante (que se aplica a los niveles RAID 3, 4 y 5, y al RAID 1 "clásico" de dos unidades), una falla de una segunda unidad causaría una falla completa de la matriz. Aunque el tiempo medio entre fallas (MTBF) de las unidades individuales ha aumentado con el tiempo, este aumento no ha seguido el ritmo del aumento de la 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. [22]
Algunos comentaristas han declarado que RAID 6 es sólo una "curita" a este respecto, porque sólo adelanta el problema un poco más adelante. [22] Sin embargo, según el estudio de NetApp de 2006 de Berriman et al., la posibilidad de fallo disminuye en un factor de aproximadamente 3.800 (en relación con RAID 5) para una implementación adecuada de RAID 6, incluso cuando se utilizan unidades básicas. [86] [ cita no encontrada ] Sin embargo, si las tendencias tecnológicas observadas actualmente permanecen sin cambios, en 2019 una matriz RAID 6 tendrá las mismas posibilidades de falla que su contraparte RAID 5 en 2010. [86] [ ¿fuente no confiable? ]
Los esquemas de duplicación como RAID 10 tienen un tiempo de recuperación limitado ya que requieren la copia de una única unidad fallida, en comparación con los esquemas de paridad como RAID 6, que requieren la copia de todos los bloques de unidades en un conjunto de matrices. Se han sugerido esquemas de triple paridad, o triple duplicación, como un enfoque para mejorar la resiliencia ante una falla adicional de la unidad durante este largo tiempo de reconstrucción. [86] [ ¿ fuente poco confiable? ]
Atomicidad
Un fallo del sistema u otra interrupción de una operación de escritura puede dar lugar a estados en los que la paridad no sea coherente con los datos debido a la falta de atomicidad del proceso de escritura, de modo que la paridad no se pueda utilizar para la recuperación en caso de un fallo del disco. Esto comúnmente se denomina agujero de escritura , que es un problema conocido de corrupción de datos en RAID más antiguos y de gama baja, causado por la interrupción de la interrupción de las escrituras en el disco. [87] El problema de la escritura se puede abordar de varias maneras:
Los sistemas RAID de hardware utilizan una caché no volátil integrada para este propósito. [88]
mdadm puede utilizar un dispositivo de registro en diario dedicado (para evitar pérdidas de rendimiento, normalmente se prefieren SSD y NVM ) para este fin. [89] [90]
Registro de intención de escritura . mdadm utiliza un "mapa de bits de intención de escritura". Si encuentra alguna ubicación marcada como escrita de forma incompleta al inicio, la resincroniza. Cierra el agujero de escritura pero no protege contra la pérdida de datos en tránsito, a diferencia de un WAL completo. [88] [91]
Paridad parcial. mdadm puede guardar una "paridad parcial" que, cuando se combina con fragmentos modificados, recupera la paridad original. Esto cierra el agujero de escritura, pero nuevamente no protege contra la pérdida de datos en tránsito. [92]
Tamaño de franja dinámica. RAID-Z garantiza que cada bloque tenga su propia franja, por lo que cada bloque está completo. La semántica transaccional de copia en escritura ( COW ) protege los metadatos asociados con las franjas. [93] La desventaja es la fragmentación de IO. [94]
Evitar sobrescribir rayas usadas. bcachefs , que utiliza un recolector de basura de copia, elige esta opción. COW vuelve a proteger las referencias a datos seccionados. [94]
El agujero de escritura es un modo de falla poco comprendido y rara vez mencionado para sistemas de almacenamiento redundantes que no utilizan funciones 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. [95]
Fiabilidad de caché de escritura
Existen preocupaciones sobre la confiabilidad de la caché de escritura, específicamente con respecto a los dispositivos equipados con una caché de reescritura , 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 caché no. -medio volátil. Si el sistema experimenta una pérdida de energía u otra falla importante, los datos pueden perderse irrevocablemente del caché antes de llegar al almacenamiento no volátil. Por esta razón, las buenas implementaciones de caché de reescritura incluyen mecanismos, como energía de batería redundante, para preservar el contenido de la caché en caso de fallas del sistema (incluidas fallas de energía) y para vaciar la caché en el momento de reiniciar el sistema. [96]
^ a b C Patterson, David ; Gibson, Garth A .; Katz, Randy (1988). Un caso para matrices redundantes de discos económicos (RAID) (PDF) . Conferencias SIGMOD . Consultado el 3 de enero de 2024 .
^ ab "Originalmente denominado Matriz redundante de discos económicos, el término RAID fue publicado por primera vez a fines de la década de 1980 por Patterson, Gibson y Katz de la Universidad de California en Berkeley. (Desde entonces, la Junta Asesora de RAID ha sustituido el término Económico por Independiente.)" Fundamentos de la red de área de almacenamiento; Meeta Gupta; Prensa de Cisco; ISBN 978-1-58705-065-7 ; Apéndice A.
^ ab Katz, Randy H. (octubre de 2010). "RAID: un recuerdo personal de cómo el almacenamiento se convirtió en un sistema" (PDF) . eecs.umich.edu . Sociedad de Computación IEEE . Consultado el 18 de enero de 2015 . No fuimos los primeros en pensar en la idea de reemplazar lo que Patterson describió como un disco lento, grande y costoso (SLED) con una variedad de discos económicos. Por ejemplo, el concepto de duplicación de discos, del que Tandem fue pionero, era bien conocido y algunos productos de almacenamiento ya se habían construido en torno a matrices de discos pequeños.
^ Hayes, Frank (17 de noviembre de 2003). "La historia hasta ahora". Mundo de la informática . Consultado el 18 de noviembre de 2016 . Patterson recordó los inicios de su proyecto RAID en 1987. [...] 1988: David A. Patterson lidera un equipo que define los estándares RAID para mejorar el rendimiento, la confiabilidad y la escalabilidad.
^ Patente estadounidense 4092732, Norman Ken Ouchi, "Sistema para recuperar datos almacenados en una unidad de memoria defectuosa", publicada el 30 de mayo de 1978
^ "Manual técnico de hardware HSC50/70" (PDF) . DIC . Julio de 1986. págs. 29, 32. Archivado desde el original (PDF) el 4 de marzo de 2016 . Consultado el 3 de enero de 2014 .
^ Patente estadounidense 4761785, Brian E. Clark y otros, "Parity Spreading to Enhance Storage Access", publicada el 2 de agosto de 1988
^ Patente estadounidense 4899342, David Potter et al., "Method and Apparatus for Operating Multi-Unit Array of Memories", publicada el 6 de febrero de 1990. Véase también The Connection Machine (1988).
^ "Sistema de procesamiento de datos IBM 7030: manual de referencia" (PDF) . bitsavers.trailing-edge.com . IBM . 1960. pág. 157 . Consultado el 17 de enero de 2015 . Dado que se maneja una gran cantidad de bits en paralelo, es práctico utilizar bits de verificación y corrección de errores (ECC), y cada byte de 39 bits se compone de 32 bits de datos y siete bits ECC. Los bits ECC acompañan a todos los datos transferidos hacia o desde los discos de alta velocidad y, durante la lectura, se utilizan para corregir un error de un solo bit en un byte y detectar errores dobles y múltiples en un byte.
^ "IBM Stretch (también conocido como sistema de procesamiento de datos IBM 7030)". brouhaha.com . 2009-06-18 . Consultado el 17 de enero de 2015 . Un sistema de procesamiento de datos IBM 7030 típico podría estar compuesto por las siguientes unidades: [...] Unidad de almacenamiento en disco IBM 353: similar al archivo de disco IBM 1301, pero mucho más rápido. 2.097.152 (2^21) palabras de 72 bits (64 bits de datos y 8 bits ECC), 125.000 palabras por segundo
^ abcdefghi Chen, Peter; Lee, Eduardo; Gibson, Garth; Katz, Randy; Patterson, David (1994). "RAID: almacenamiento secundario confiable y de alto rendimiento". Encuestas de Computación ACM . 26 (2): 145–185. CiteSeerX 10.1.1.41.3889 . doi :10.1145/176979.176981. S2CID 207178693.
^ Donald, L. (2003). MCSA/MCSE 2006 Conceptos básicos de redes y computadoras JumpStart (2ª ed.). Glasgow: SYBEX.
^ Howe, Denis (ed.). Matrices redundantes de discos independientes de FOLDOC. Departamento de Computación del Imperial College . Consultado el 10 de noviembre de 2011 .{{cite book}}: |work=ignorado ( ayuda )
^ Dawkins, Bill y Jones, Arnold. "Especificación de formato de datos de disco RAID común" Archivado el 24 de agosto de 2009 en Wayback Machine [Asociación de la industria de redes de almacenamiento] Colorado Springs, 28 de julio de 2006. Recuperado el 22 de febrero de 2011.
^ "Soluciones RAID híbridas Adaptec" (PDF) . Adaptec.com . Adaptec. 2012 . Consultado el 7 de septiembre de 2013 .
^ "Estándar de formato de unidad de disco RAID común (DDF)". SNIA.org . SNIA . Consultado el 26 de agosto de 2012 .
^ "Diccionario SNIA". SNIA.org . SNIA . Consultado el 24 de agosto de 2010 .
^ Tanenbaum, Andrew S. Organización informática estructurada 6ª ed . pag. 95.
^ Hennessy, John; Patterson, David (2006). Arquitectura informática: un enfoque cuantitativo, 4ª ed . pag. 362.ISBN978-0123704900.
^ "Manual de FreeBSD, capítulo 20.5 GEOM: marco de transformación de discos modulares" . Consultado el 20 de diciembre de 2012 .
^ Blanco, Jay; Lueth, Chris (mayo de 2010). "RAID-DP: Implementación de NetApp de RAID de doble paridad para la protección de datos. Informe técnico de NetApp TR-3298" . Consultado el 2 de marzo de 2013 .
^ abc Newman, Henry (17 de septiembre de 2009). "Los días de RAID pueden estar contados". Foro de almacenamiento empresarial . Consultado el 7 de septiembre de 2010 .
^ "Por qué RAID 6 deja de funcionar en 2019". ZDNet . 22 de febrero de 2010. Archivado desde el original el 15 de agosto de 2010.
^ ab Lowe, Scott (16 de noviembre de 2009). "Cómo protegerse de errores de lectura irrecuperables (URE) relacionados con RAID. Techrepublic" . Consultado el 1 de diciembre de 2012 .
^ Vijayan, S.; Selvamani, S.; Vijayan, S (1995). "Matriz de discos de rayado doble: una arquitectura RAID híbrida altamente confiable". Actas de la Conferencia Internacional de 1995 sobre Procesamiento Paralelo: Volumen 1 . Prensa CRC . págs. I-146 y siguientes . ISBN978-0-8493-2615-8– a través de libros de Google .
^ "¿Por qué RAID 1+0 es mejor que RAID 0+1?". aput.net . Consultado el 23 de mayo de 2016 .
^ "RAID 10 Vs RAID 01 (RAID 1+0 Vs RAID 0+1) explicado con diagrama". www.thegeekstuff.com . Consultado el 23 de mayo de 2016 .
^ "Comparación de RAID 10 y RAID 01 | SMB IT Journal". www.smbitjournal.com . 30 de julio de 2014 . Consultado el 23 de mayo de 2016 .
^ ab Jeffrey B. Layton: "Introducción a Nested-RAID: RAID-01 y RAID-10" [usurpado] , Revista Linux, 6 de enero de 2011
^ "Rendimiento, herramientas y preguntas generales sensatas". tldp.org . Consultado el 25 de diciembre de 2013 .
^ "Página principal: incursión en Linux". osdl.org. 2010-08-20. Archivado desde el original el 5 de julio de 2008 . Consultado el 24 de agosto de 2010 .
^ "Incursión HDFS". Hadoopblog.blogspot.com. 2009-08-28 . Consultado el 24 de agosto de 2010 .
^ ab "3.8:" Hackers del RAID perdido"". Canciones de lanzamiento de OpenBSD . OpenBSD . 2005-11-01 . Consultado el 23 de marzo de 2019 .
^ Largo, Scott; Adaptec, Inc (2000). "aac(4) - Controlador del controlador Adaptec AdvancedRAID". Referencia cruzada de BSD . FreeBSD ., "aac - Controlador del controlador Adaptec AdvancedRAID". Páginas del manual de FreeBSD. FreeBSD.
^ Raadt, Theo de (9 de septiembre de 2005). "Soporte de gestión RAID disponible en OpenBSD 3.8". misc@ (Lista de correo). OpenBSD .
^ Murenin, Constantino A. (21 de mayo de 2010). "1.1. Motivación; 4. Controladores de sensores; 7.1. NetBSD envsys / sysmon". Sensores de hardware OpenBSD: monitoreo ambiental y control de ventiladores ( tesis de MMath ). Universidad de Waterloo : UWSpace. hdl :10012/5234. ID del documento: ab71498b6b1a60ff817b29d56997a418.
^ "RAID sobre sistema de archivos". Archivado desde el original el 9 de noviembre de 2013 . Consultado el 22 de julio de 2014 .
^ "Rendimiento, capacidad e integridad de ZFS Raidz". calomel.org . Consultado el 26 de junio de 2017 .
^ "ZFS-ilumos". illusmos.org. 2014-09-15. Archivado desde el original el 15 de marzo de 2019 . Consultado el 23 de mayo de 2016 .
^ "Creación y destrucción de grupos de almacenamiento ZFS: Guía de administración de Oracle Solaris ZFS". Corporación Oráculo . 2012-04-01 . Consultado el 27 de julio de 2014 .
^ "20.2. El sistema de archivos Z (ZFS)". freebsd.org . Archivado desde el original el 3 de julio de 2014 . Consultado el 27 de julio de 2014 .
^ "Doble paridad RAID-Z (raidz2) (Guía de administración de Solaris ZFS)". Corporación Oráculo . Consultado el 27 de julio de 2014 .
^ "RAIDZ de triple paridad (raidz3) (Guía de administración de Solaris ZFS)". Corporación Oráculo . Consultado el 27 de julio de 2014 .
^ Deenadhayalan, Veera (2011). "RAID nativo del sistema de archivos paralelo general (GPFS)" (PDF) . Utilice Nix.org . IBM . Consultado el 28 de septiembre de 2014 .
^ "Btrfs Wiki: Lista de funciones". 07/11/2012 . Consultado el 16 de noviembre de 2012 .
^ "Btrfs Wiki: registro de cambios". 2012-10-01 . Consultado el 14 de noviembre de 2012 .
^ Trautman, Felipe; Mostek, Jim. "Escalabilidad y rendimiento en sistemas de archivos modernos". linux-xfs.sgi.com . Archivado desde el original el 22 de abril de 2015 . Consultado el 17 de agosto de 2015 .
^ "Configuración RAID de Linux: XFS". kernel.org . 05/10/2013 . Consultado el 17 de agosto de 2015 .
^ Empresa Hewlett Packard. "Documento de soporte de HPE: Centro de soporte de HPE". soporte.hpe.com .
^ "Mac OS X: Cómo combinar conjuntos RAID en la Utilidad de Discos" . Consultado el 4 de enero de 2010 .
^ "Sistemas de archivos del servidor Apple Mac OS X" . Consultado el 23 de abril de 2008 .
^ "Página del manual del administrador del sistema FreeBSD para GEOM (8)" . Consultado el 19 de marzo de 2009 .
^ "lista de correo freebsd-geom - nueva clase / geom_raid5". 6 de julio de 2006 . Consultado el 19 de marzo de 2009 .
^ "Manual de interfaces del kernel de FreeBSD para CCD (4)" . Consultado el 19 de marzo de 2009 .
^ "El procedimiento de software-RAID" . Consultado el 10 de noviembre de 2008 .
^ "mdadm(8) - página de manual de Linux". Linux.Die.net . Consultado el 20 de noviembre de 2014 .
^ "Soporte de Windows Vista para unidades de disco duro de gran sector". Microsoft . 2007-05-29. Archivado desde el original el 3 de julio de 2007 . Consultado el 8 de octubre de 2007 .
^ "No puede seleccionar ni formatear una partición del disco duro cuando intenta instalar Windows Vista, Windows 7 o Windows Server 2008 R2". Microsoft . 14 de septiembre de 2011. Archivado desde el original el 3 de marzo de 2011 . Consultado el 17 de diciembre de 2009 .
^ "Uso de Windows XP para realizar RAID 5". Hardware de Tom . 19 de noviembre de 2004 . Consultado el 24 de agosto de 2010 .
^ Sinofsky, Steven (5 de enero de 2012). "Virtualizar el almacenamiento para lograr escala, resiliencia y eficiencia". Creación de un blog sobre Windows 8. Archivado desde el original el 9 de mayo de 2013 . Consultado el 6 de enero de 2012 .
^ Metzger, Perry (12 de mayo de 1999). "Anuncio de lanzamiento de NetBSD 1.4". NetBSD.org . La Fundación NetBSD . Consultado el 30 de enero de 2013 .
^ "Página de manual de OpenBSD softraid". OpenBSD.org . Consultado el 3 de febrero de 2018 .
^ "Manual de FreeBSD". Capítulo 19 GEOM: Marco de transformación de discos modulares . Consultado el 19 de marzo de 2009 .
^ "Preguntas frecuentes sobre RAID SATA". Ata.wiki.kernel.org. 2011-04-08 . Consultado el 26 de agosto de 2012 .
^ "Red Hat Enterprise Linux - Guía del administrador de almacenamiento - Tipos de RAID". redhat.com .
^ Russell, Charlie; Crawford, Sharon; Edney, Andrés (2011). Trabajar con Windows Small Business Server 2011 Essentials. O'Reilly Media, Inc. pág. 90.ISBN978-0-7356-5670-3– a través de libros de Google .
^ Bloquear, Warren. "19.5. Dispositivos RAID de software". freebsd.org . Consultado el 27 de julio de 2014 .
^ Ulf Troppens, Wolfgang Müller-Friedt, Rainer Erkens, Rainer Wolafka, Nils Haustein. Explicación de las redes de almacenamiento: conceptos básicos y aplicaciones de Fibre Channel SAN, NAS, ISCSI, InfiniBand y FCoE. John Wiley e hijos, 2009. p.39
^ Computadoras Dell, lectura de patrulla en segundo plano para controladores RAID Dell PowerEdge, por Drew Habas y John Sieber, reimpreso de Dell Power Solutions, febrero de 2006 http://www.dell.com/downloads/global/power/ps1q06-20050212-Habas. pdf
^ abc "Control de recuperación de errores con Smartmontools". 2009. Archivado desde el original el 28 de septiembre de 2011 . Consultado el 29 de septiembre de 2017 .
^ Gray, Jim (octubre de 1990). "Un censo de disponibilidad del sistema Tandem entre 1985 y 1990" (PDF) . Transacciones IEEE sobre confiabilidad . 39 (4). IEEE: 409–418. doi : 10.1109/24.58719. S2CID 2955525. Archivado desde el original (PDF) el 20 de febrero de 2019.
^ Murphy, Brendan; Caballero, Ted (1995). "Medición de la confiabilidad del sistema y software mediante un proceso automatizado de recolección de datos". Ingeniería de Calidad y Confiabilidad Internacional . 11 (5): 341–353. doi :10.1002/qre.4680110505.
^ Patterson, D., Hennessy, J. (2009), 574.
^ "La aventura de la migración RAID". 10 de julio de 2007 . Consultado el 10 de marzo de 2010 .
^ Fallos de disco en el mundo real: ¿Qué significa para usted un MTTF de 1.000.000 de horas? Bianca Schroeder y Garth A. Gibson
^ Harris, Robin (27 de febrero de 2010). "¿RAID 6 deja de funcionar en 2019?". StorageMojo.com . TecnoQWAN . Consultado el 17 de diciembre de 2013 .
^ JL Hafner, V. Dheenadhayalan, K. Rao y JA Tomlin. "Métodos matriciales para la reconstrucción de datos perdidos en códigos de borrado. Conferencia USENIX sobre tecnologías de almacenamiento y archivos, 13 al 16 de diciembre de 2005.
^ Molinero, Scott Alan (5 de enero de 2016). "Comprensión del rendimiento RAID en varios niveles". Zona de Recuperación . AlmacenamientoCraft . Consultado el 22 de julio de 2016 .
^ Kagel, Art S. (2 de marzo de 2011). "RAID 5 versus RAID 10 (o incluso RAID 3 o RAID 4)". milagroas.com . Archivado desde el original el 3 de noviembre de 2014 . Consultado el 30 de octubre de 2014 .
^ Panadero, M.; Shah, M.; Rosenthal, DSH; Roussopoulos, M.; Maniatis, P.; Giuli, T.; Bungale, P (abril de 2006). "Una nueva mirada a la confiabilidad del almacenamiento digital a largo plazo". Actas de la primera conferencia europea ACM SIGOPS/EuroSys sobre sistemas informáticos 2006 . págs. 221-234. doi :10.1145/1217935.1217957. ISBN1595933220. S2CID 7655425.
^ Bairavasundaram, LN; Goodson, GR; Pasupatía, S.; Schindler, J. (12 al 16 de junio de 2007). "Un análisis de errores del sector latente en unidades de disco" (PDF) . Actas de la conferencia internacional ACM SIGMETRICS 2007 sobre medición y modelado de sistemas informáticos . págs. 289–300. doi :10.1145/1254882.1254917. ISBN9781595936394. S2CID 14164251.
^ Patterson, D., Hennessy, J. (2009). Organización y diseño de ordenadores . Nueva York: Morgan Kaufmann Publishers. págs. 604–605.
^ abc Leventhal, Adam (1 de diciembre de 2009). "RAID de triple paridad y más. ACM Queue, Asociación de Maquinaria de Computación" . Consultado el 30 de noviembre de 2012 .
^ ""Escribir agujero "en RAID5, RAID6, RAID1 y otras matrices". Equipo ZAR . Consultado el 15 de febrero de 2012 .
^ ab Danti, Gionatan. "agujero de escritura: ¿qué niveles de RAID se ven afectados?". Fallo del servidor .
^ "ANUNCIO: mdadm 3.4: una herramienta para administrar md Soft RAID en Linux [LWN.net]". lwn.net .
^ "Una revista para MD/RAID5 [LWN.net]". lwn.net .
^md(4) – Manual del programador de Linux – Archivos especiales
^ "Registro de paridad parcial". La documentación del kernel de Linux .
^ Bonwick, Jeff (17 de noviembre de 2005). "RAID-Z". Blog de Jeff Bonwick . Blogs de Oráculo . Archivado desde el original el 16 de diciembre de 2014 . Consultado el 1 de febrero de 2015 .
^ ab Overstreet, Kent (18 de diciembre de 2021). "bcachefs: Principios de funcionamiento" (PDF) . Consultado el 10 de mayo de 2023 .
^ Jim Gray: El concepto de transacción: virtudes y limitaciones Archivado el 11 de junio de 2008 en Wayback Machine (artículo invitado) VLDB 1981: 144-154
^ "Definición de caché de reescritura en el diccionario SNIA". www.snia.org .
enlaces externos
Wikimedia Commons tiene medios relacionados con la matriz redundante de discos independientes.
"Medidas empíricas de tasas de fallo de disco y tasas de error", por Jim Gray y Catharine van Ingen, diciembre de 2005