Pros y contras del software Parity-RAID (p. Ej. RAID5)

8

Recientemente me informaron sobre algunos problemas relacionados con RAID de paridad sin un caché no volátil. Los controladores HW más caros tienen cachés alimentados por batería para finalizar las operaciones de escritura en caso de falla de energía. Ahora, algunas personas dicen que tal falla, quizás en combinación con una matriz degradada, puede matar todo su sistema de archivos. Otros afirman que esos problemas son obsoletos y / o conceptos erróneos .

Desafortunadamente, nadie da referencias concretas y ni una búsqueda de md RAID y caché no volátil , ni el almacenamiento en caché de mapas de bits proporciona respuestas confiables sobre si md-RAID5 es aconsejable o no.

¿Alguna información sobre eso?

usuario773568
fuente
1
Mdraid de Linux tiene un diario, que al menos es seguro en caso de interrupción repentina (es decir, bloqueo del sistema, o todos los discos se apagan a la vez), o en el caso de RAID-1. No sé si RAID- [56] hace frente a todas las formas de apagado por etapas.
Gilles 'SO- deja de ser malvado'
2
@Gilles, no tiene un diario, pero tiene un mapa de bits opcional con intención de escritura. Sin embargo, esto solo acelera el proceso de resincronización cuando el sistema vuelve a funcionar, porque identifica qué áreas necesitan resincronizarse y qué áreas pueden omitirse.
psusi
@psusi Regresé y verifiqué lo que había investigado unos meses atrás . Según tengo entendido, el mapa de bits con intención de escritura (no es un diario, mi error) hace más que acelerar la resincronización, indica cuáles de los componentes tienen un bloque sucio, por lo que es suficiente para garantizar la consistencia del bloque en RAID-1 pero no en RAID-5 (donde es posible que no tenga suficientes discos tanto en el estado antiguo como en el nuevo para restaurar cualquiera de los estados).
Gilles 'SO- deja de ser malvado'
1
@Gilles No estoy seguro de lo que quieres decir con "consistencia de bock". Parece que estás colgado en toda la franja en el estado anterior al inicio de la escritura o en el estado posterior. Esto nunca está garantizado y es muy probable que no sea el caso si falla la alimentación en el medio de la escritura. Depende del sistema de archivos manejar esto como lo hace en un solo disco; usando el diario.
psusi

Respuestas:

4

Supongo que el software RAID de Linux es tan confiable como una tarjeta RAID de hardware sin una BBU y con el almacenamiento en caché de reescritura habilitado. Después de todo, los datos no confirmados en un sistema RAID de software residen en la memoria caché del búfer del núcleo, que es una forma de almacenamiento en caché de escritura sin respaldo de batería.

Dado que cada tarjeta RAID-5 de hardware que he usado le permite habilitar el almacenamiento en caché de escritura sin tener una BBU, espero que el software RAID-5 pueda funcionar bien para personas con un cierto nivel de tolerancia al riesgo.

ObWarStory:

Dicho esto, personalmente he experimentado una pérdida de datos grave debido a que no se instaló una BBU en una tarjeta RAID-5, aunque se habilitó el almacenamiento en caché de reescritura. (Tampoco UPS. No me grites, no es mi llamada).

Mi jefe me llamó en pánico mientras estaba de vacaciones porque uno de nuestros sistemas de producción no volvería a funcionar después de un corte de energía. Se había quedado sin cosas para probar. Tuve que ir a un lado de la carretera, sacar la computadora portátil, encender la conexión WiFi de mi teléfono, sshen el sistema afectado, y arreglarlo, mientras mi familia se sentaba allí conmigo al costado de la carretera hasta que terminé Restaurar una tabla de base de datos escaneada desde la copia de seguridad (Estábamos a una milla de distancia de perder la recepción celular en ese momento).

Entonces dime: ¿cuánto pagarías por una tarjeta RAID + BBU ahora ?

Warren Young
fuente
Derecha: eliminé mi comentario. Pero una incursión sin BBU debería escribir, ¿no? Esto es al menos lo que hacen los controladores PERC cuando la batería aprende y cae por debajo del umbral.
Nils
Sí, sin una BBU o con una BBU muerta, la tarjeta RAID aún escribe datos. Lo que no hace es recordar lo que había en el búfer de escritura cuando falla la alimentación del servidor. Dado que RAID depende de la coherencia entre los bits redundantes, se confunde cuando se vuelve inconsistente. Por lo tanto, una falla de energía durante la escritura de RAID corre el riesgo de corromper algo en el RAID, porque el controlador se ve obligado a elegir una de las dos o más copias de los datos, sin saber cuál es la correcta.
Warren Young
3

Solo un aviso de advertencia: las operaciones de escritura RAID-5/6 toman un tiempo significativo de CPU mientras su matriz se degrada. Si su servidor ya está completamente cargado cuando un disco falla, puede caer en un abismo de falta de respuesta. Tal problema no sucederá con un controlador RAID de hardware. Por lo tanto, recomiendo encarecidamente no utilizar el software RAID-5/6 en un servidor de producción. Sin embargo, para una estación de trabajo o un servidor con poca carga, está bien.

wazoox
fuente
3

SW RAID tiene un modo de falla: si el servidor se cae a mitad de una escritura, puede obtener una banda corrupta. Un controlador RAID HW con una BBU no es tan costoso y retendrá los bloques sucios hasta que pueda reiniciar los discos.

La BBU en la memoria caché no garantiza las escrituras en caso de fallo de alimentación (es decir, no alimenta los discos). Alimenta el caché durante unos días hasta que pueda reiniciar los discos. Luego, el controlador vaciará cualquier búfer sucio al disco.

Algunas notas sobre SW vs HW RAID-5

  1. Las escrituras en un volumen SW RAID-5 pueden ser lentas si el almacenamiento en caché de escritura se usa con el bloqueo de E / S, ya que la llamada no regresa hasta que se haya completado toda la E / S. Un controlador RAID HW con un BBWC puede optimizar esto considerablemente, por lo que puede ver un rendimiento sustancialmente mejor.

  2. La última vez que miré no podía hacer E / S directa (es decir, DMA de copia cero) en un volumen RAID SW. Esto puede haber cambiado y en realidad solo es relevante para aplicaciones como administradores de bases de datos que usan particiones sin formato.

  3. Un controlador SAS RAID moderno puede extraer o empujar 1GB / seg o más de datos de una matriz de discos, particularmente si está formateado con un tamaño de banda grande (digamos 256kb). Incluso he comparado un Adaptec ASR-2200s más antiguo a velocidades que indicaban que estaba saturando sus canales scsi a 600MB / seg + en conjunto (10x 15k discos) con muy poca carga de CPU en la máquina host. No estoy seguro de que pueda obtener eso del software RAID-5 sin mucha carga de CPU, incluso en una máquina moderna. Tal vez podrías leer eso rápidamente.

  4. La configuración para iniciar un volumen RAID HW es simple: el volumen RAID es transparente para el O / S.

Un controlador RAID de gama baja de un proveedor de nivel 1 como Adaptec no es tan caro a precios minoristas y se puede comprar por cacahuetes en eBay. Pero recuerde, si compra de segunda mano, adhiérase a los proveedores de nivel 1 y asegúrese de conocer el modelo y verificar la disponibilidad de los controladores desde su sitio web.

Editar: según el comentario de @ psusi, asegúrese de no obtener un controlador falso (SW RAID transparente oculto en el controlador), pero la mayoría de las ofertas de los nombres más grandes (Adaptec, 3Ware o LSI) no son unidades falsas. Todo lo que pueda tomar una BBU no será falso.

Preocupado por TunbridgeWells
fuente
Si la alimentación falla en el medio de una escritura, se obtiene una banda que no está sincronizada y que no está dañada. Una franja no sincronizada solo significa que la paridad no está actualizada, por lo que cuando se monta la matriz, la paridad debe actualizarse. También esos controladores de "incursión" que se pueden obtener para el maní son a menudo falsos; Tienen extensiones de BIOS ROM y controladores de Windows que hacen la incursión en el software.
psusi
@psusi: la mayoría de los controladores ASR-2200 que compré hace unos años tenían menos de 100 USD y son controladores RAID pukka HW. No creo que Adaptec realmente haga controladores falsos en absoluto. Puede obtener fácilmente controladores de 4 u 8 puertos Adaptec, 3Ware o LSI SAS RAID de eBay por unos pocos cientos de dólares.
Preocupado por
No llamaría a unos cientos de dólares por un producto usado de una fuente desconocida "centavos"; eso indica más en la línea de $ 50- $ 100 para un nuevo producto. Los dispositivos de esa clase suelen ser falsos.
psusi
@psusi: estás intentando rechazar un argumento que nunca hice; Nunca usé la palabra 'centavos' en absoluto. No recurra a los argumentos del hombre de paja: los ejemplos que utilicé no son controladores falsos.
Preocupado
1

Si tiene datos en la memoria caché pero aún no en el disco, y falla la alimentación, entonces los datos desaparecerán, y su disco probablemente estará en un estado inconsistente. La probabilidad de eso no es muy alta a menos que tenga un sistema que escribe constantemente, pero aún así no quisiera apostar mis datos en juegos de probabilidad.

Un giro interesante sería crear un sistema de archivos principal en RAID5 / 6 pero colocar un diario en una unidad normal, de modo que los datos se vuelquen primero en la unidad normal. El rendimiento probablemente iría a la basura ya que estaría limitado a la velocidad de escritura de una sola unidad, pero la confiabilidad aumentaría. Entonces, supongo que en una situación en la que su rendimiento de escritura no es importante, pero su lectura sí, eso podría funcionar bien.

O simplemente podría gastar otros 100 $ y obtener la tarjeta con BBU, o un UPS pequeño, y evitar todas estas complicaciones por completo;)

Marcin
fuente
¿Qué opinas sobre un diario en un SSD rápido?
user773568
Eso lo haría, pero en ese momento estás pagando más que un controlador decente en primer lugar;) Además, la velocidad aumenta, pero la confiabilidad disminuye, porque la mayoría de los SSD mueren muy rápidamente.
Marcin
1
@ Marcin, ¿en qué basas eso? No parecen tener una vida útil de diseño específica más corta, y he tenido uno durante más de un año y solo he usado el 5% de sus ciclos de escritura.
psusi
@MarcinWell Cuando dices fiabilidad, ¿eso es ahorro o disponibilidad? No esperaba que perder mi diario amenazara los datos generales. ¿Lo hace? De todos modos, planeo poner OS y Swap en un SSD más pequeño, debido a razones de ruido y ahorro de energía. El RAID puede irse a dormir de esa manera.
user773568
Los SSD MLC tienen un historial de problemas de confiabilidad. Las unidades SLC son mucho más confiables, pero también mucho más caras. Aquí
ConcernedOfTunbridgeWells
1

El raid de software mdadm de Linux está diseñado para ser tan confiable como un raid de hardware con caché respaldada por batería. No hay problemas con la pérdida repentina de energía, más allá de los que también se aplican a la pérdida repentina de energía en un solo disco.

Cuando el sistema vuelve a funcionar después de una falla de energía, la matriz se volverá a sincronizar, lo que básicamente significa que la paridad se vuelve a calcular para que coincida con los datos que se escribieron antes de la falla de energía. Lleva algo de tiempo, pero en realidad no es gran cosa. El tiempo de resincronización se puede reducir en gran medida al habilitar el mapa de bits con intención de escritura.

psusi
fuente
1
Eso suena un poco optimista. ¿Cómo puede una solución de software puro ser tan confiable como un caché respaldado por batería?
user773568
1
Hay cosas malas que le pueden pasar a una matriz RAID que no le puede pasar a un solo disco. Con un solo disco, cada sector está en el estado antiguo o en el nuevo. Con, por ejemplo, RAID-5 sobre discos 4 + 1, ¿qué sucede si el sector 42 de los discos 1 y 2 está en el estado anterior y el sector 42 de los discos 3, 4 y 5 está en el estado nuevo? Ni el viejo estado ni el nuevo estado son recuperables. No sé si Linux toma medidas para evitar esto, y de eso se trata la pregunta.
Gilles 'SO- deja de ser malvado'
@ user773568 umm ... ¿acabo de explicar cómo?
psusi
@Gilles acaba de reafirmar el mismo caso que el disco único. Algunos sectores están en el estado anterior y otros en el estado nuevo. No importa en qué disco estén. Los sistemas de archivos tratan con escrituras incompletas durante un bloqueo con el diario.
psusi
@psusi No: con un solo disco, cada sector está en el estado nuevo o en el estado anterior. Con varios discos, si el controlador utiliza el enfoque ingenuo de sobrescribir el sector en cada disco sin almacenar información en otro lugar, un sector que estaba en un estado transitorio (estado anterior en algunos discos, estado nuevo en otros) no puede recuperarse en absoluto. El error posiblemente se puede detectar (si tienes suerte: la paridad podría coincidir por accidente), pero no se puede corregir.
Gilles 'SO- deja de ser malvado'
1

Aquí hay un blog que explica el problema con RAID5 y cómo ZFS RAIDZ lo está resolviendo .

Sus puntos clave son:

RAID-5 (y otros esquemas de datos / paridad como RAID-4, RAID-6, par-impar y Row Diagonal Parity) nunca cumplieron con la promesa de RAID, y no pueden, debido a un defecto fatal conocido como el agujero de escritura RAID-5. Siempre que actualice los datos en una banda RAID, también debe actualizar la paridad, de modo que todos los discos sean XOR a cero: es esa ecuación la que le permite reconstruir los datos cuando falla un disco. El problema es que no hay forma de actualizar dos o más discos atómicamente, por lo que las bandas RAID pueden dañarse durante un choque o un corte de energía.

y

RAID-Z es un esquema de datos / paridad como RAID-5, pero utiliza un ancho de banda dinámico. Cada bloque es su propia banda RAID-Z, independientemente del tamaño del bloque. Esto significa que cada escritura RAID-Z es una escritura de banda completa. Esto, cuando se combina con la semántica transaccional de copia en escritura de ZFS, elimina por completo el agujero de escritura RAID.

jlliagre
fuente