¿Para qué es una BBU (raid-controller-)?


13

Me pregunto cuál es el propósito de una BBU. Mi primer entendimiento fue que permite que el caché escriba los datos en el disco durante una falla de energía. Pero algunas especificaciones dicen que una BBU puede almacenar sus datos por hasta 72h. Esperaría que los datos se escriban en el disco en milisegundos (dado que el disco todavía tiene energía también).

Entonces, ¿debería una BBU no solo proteger el caché, sino también todo el disco durante algunos segundos? ¿No sería aún más seguro, porque los datos de la memoria caché se escriben en el disco en lugar de estar en la memoria caché y esperar nuevamente la alimentación? Después de un segundo más o menos, el disco podría apagarse.


Aunque las baterías RAID no alimentan las unidades reales, hay algo en nuestro mundo que se parece a lo que había imaginado originalmente: algunos SSD de nivel de servidor tienen "supercondensadores" que proporcionan energía de respaldo para enviar escrituras en caché durante los milisegundos después de una falla de energía.
Skyhawk

Respuestas:


17

No alimenta los discos, solo mantiene los datos en la memoria caché durante (en este caso) hasta 72 horas hasta que vuelva a poner la máquina en línea. Cuando vuelva a encender la máquina, volverá a escribir el contenido de la memoria caché en los discos.

Todo lo que hace es proteger contra una falla de energía. Si (por alguna razón) la máquina pierde energía sin vaciar limpiamente los datos en el disco, la batería mantiene vivo el contenido de la caché hasta que pueda reiniciar la máquina.

No es un UPS para discos, ya que los discos podrían estar en una matriz de discos externos, o incluso en un circuito de alimentación diferente. Incluso un UPS podría fallar.


1
Entonces, ¿la diferencia con un UPS para discos es que está diseñado para un escenario donde los discos no están en el mismo circuito de alimentación? ¿En todos los demás casos (controlador y discos en un circuito) un UPS sería superior? Todavía preferiría que los últimos comandos se escriban en el disco en lugar de esperar en la memoria caché durante un fallo de alimentación.
tanascius

¡Entonces compre un UPS para su servidor también! Una BBU no tiene suficiente potencia para ejecutar una variedad de unidades. Le brinda una ventana lo suficientemente grande como para que pueda recuperar la energía y guardar los cambios. La mayoría de las interrupciones son muy cortas y la mayoría de las personas no necesitan el gasto adicional de un UPS para máquinas no vitales.
JamesRyan

1
Todo lo que hace la BBU es mantener los datos en la memoria caché hasta que reinicie la computadora. El controlador sabe lo que se ha vaciado al disco (el disco indica que la operación ha finalizado). Todo lo que no se haya vaciado al disco se conserva hasta que se reinicie la máquina.
Preocupado por

13

Funciona así:

La mayoría de los sistemas operativos tienen una llamada al sistema que permite una llamada "escritura sincrónica". Esto significa que durante una operación de escritura, si una escritura se ha completado, se garantiza que se confirmó en el disco.

Por lo tanto, la escritura síncrona no se almacena en caché. Bloquea la aplicación hasta que se haya completado. Este tipo de operación es obviamente más lenta que la escritura en caché que mantiene los datos en la memoria del sistema operativo hasta que el disco esté lo suficientemente inactivo y luego escribe los datos.

Algunos software críticos, como el software de base de datos, realizan escrituras sincrónicas para datos críticos porque una actualización a medio escribir en caso de una pérdida de energía puede ser perjudicial para la integridad de la base de datos.

Los controladores RAID son notoriamente lentos con las escrituras RAID-5, por lo que esto se convierte en un problema si el software de su aplicación utiliza muchas escrituras síncronas. Por esta razón, los controladores RAID-5 están equipados con sus propios cachés.

Lo que hace el controlador RAID es que escribe los datos en su caché y MIENTE al SO, diciéndole que confirmó los datos en el disco, mientras que los datos todavía están en caché RAID.

Pero, ¿qué pasa si se pierde la energía mientras los datos todavía estaban en el búfer del controlador RAID? Tendría datos medio escritos y probablemente inconsistentes en sus discos.

Puede decir que este comportamiento anula el propósito de una escritura síncrona ... si estaba bien tener una escritura en caché, entonces el software de la aplicación no solicitaría una escritura de sincronización en primer lugar.

El compromiso es el siguiente: el controlador RAID todavía le miente al sistema operativo que confirmó los datos en el disco, pero para proteger estos datos críticos en caso de una falla de energía, el controlador RAID tiene una batería que mantiene el caché con vida durante un tiempo hasta que se pueda volver a encender. restaurado

Entonces, después de que vuelve la energía y los discos giran e inicializan, el controlador todavía tiene esos datos en su caché gracias a la batería y puede terminar de escribir su transacción en el disco.

Todos son felices.

Esta es la razón por la cual los controladores RAID generalmente no le permitirán habilitar la caché de escritura a menos que tenga una unidad de batería funcional y cargada.


Preguntaría sobre la ubicación del controlador. ¿Forma parte de la placa madre o está integrada en el disco duro?
Valentin Tihomirov

Además, me gustaría saber cómo puede el sistema operativo enviar una proper shutdownsolicitud si RAID le miente cuando se emite una descarga.
Valentin Tihomirov

@ValentinTihomirov No hay tal cosa como propero impropercierre. El sistema operativo emite una señal de apagado y la fuente de alimentación lo hace, después de que se apaga. A medida que se apaga la alimentación, también se pierde la memoria volátil y se pierde todo su contenido.
PF4Public

4

Vale la pena mencionar que algunos controladores de disco más nuevos ahora vienen con caché de flash de alta velocidad que retiene los datos durante mucho más tiempo que las 72 horas típicas, a menudo también es mucho más grande (~ 1 GB). Si necesita detalles de parte, hágamelo saber.


Gracias por la información, pero no soy Sysadmin y probablemente nunca diseñe un RAID profesional ... Tengo curiosidad por la BBU :)
tanascius

3

Piense en ese caché de BBU como un nivel de protección similar al que ofrece un sistema de archivos registrado. Está allí para permitir que las transacciones, escrituras simples en este caso, se completen si son interrumpidas por una falla de energía. Una vez que se corta la energía, el controlador no puede continuar escribiendo, ya que eso daría como resultado resultados completamente impredecibles. En cambio, retiene los datos todo el tiempo que puede y terminará de escribirlos si / cuando se reanuda la energía. Lo que no hace es actuar como un UPS para las unidades.


Pero cuando tengo un UPS para las unidades + controlador, ¿para qué necesito la BBU? ¿Solo para un scneario donde el UPS también falla?
tanascius

Buena pregunta. Si sabe que el servidor SIEMPRE se cerrará correctamente, tampoco estoy convencido de la necesidad de una BBU.
John Gardeniers

2
Una BBU suele ser a menudo para configuraciones de reescritura. Algunos controladores RAID no permitirán la reescritura sin una BBU presente. Sin embargo, creo que probablemente sea una mala idea suponer que su servidor siempre se cerrará correctamente.
Preocupado por

2

Obtener esa batería de $ 100 es imprescindible, especialmente en un servidor de base de datos, a pesar de que las fallas de alimentación son raras. Incluso si tiene las transacciones habilitadas y su servidor pierde energía antes de que esos cambios hayan salido de la memoria caché y se hayan confirmado en el disco, se quedará con una consulta incompleta o datos dañados.


1

Si su servidor falla, se cuelga o alguien tira del cable de alimentación, una BBU lo protegerá de datos dañados o perdidos, si está utilizando caché de escritura. Usar un USV solo lo protege de fallas de energía.

Si no desea utilizar el caché de escritura, no necesita una BBU.


1

Una tarjeta RAID puede tener 1 GB de caché; a pesar de que generalmente no se usará todo para un caché de escritura, puede suponer que almacenará una cola bastante larga de datos no escritos.

Los sistemas de archivos y las bases de datos suponen que sus escrituras sincrónicas no se reordenan incluso en el caso de una falla de energía. Normalmente, una escritura síncrona solo volverá después de que los datos estén en el disco, pero esto es relativamente lento. Las tarjetas RAID mejoran el rendimiento al agrupar las escrituras más pequeñas y reordenarlas para que sean menos aleatorias.

Si no hubiera BBU, una falla de energía bajo carga tendría resultados desastrosos, con las escrituras que la tarjeta RAID había prometido estar perdida (como en el caso de un sistema de archivos, es posible que tenga referencias a un nuevo archivo o directorio, pero la falta dijo archivo o directorio, a pesar de que el sistema de archivos creó específicamente el nuevo archivo antes de cualquier referencia a él para evitar esto), lo que requiere que restaure de las copias de seguridad o simplemente espere que sus datos no estén demasiado mal. Peor aún, si alguien eliminó un archivo secreto y otra persona creó un archivo legible en todo el mundo, puede suceder que algunos de los contenidos del archivo secreto se encuentren en el archivo legible en todo el mundo. Una vez que rompa los supuestos sobre los que se basa el sistema de archivos, todo es posible.

Asumir que un UPS garantiza energía ininterrumpida es ingenuo; ¿Qué pasa si la máquina falla y necesita tirar del cable de alimentación o alguien se tropieza con ella?

Los discos SATA del consumidor (y SSD) a veces también almacenan en caché las escrituras síncronas, pero sus cachés son mucho más pequeños y el uso del consumidor es menos exigente, por lo que generalmente pueden salirse con la suya.

Los controladores RAID modernos también tienen flash, al que copian el contenido de la memoria caché de escritura en caso de una falla de energía, por lo que la batería no necesita durar más de unos pocos segundos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.