15 votos

Los Discos SATA que manejar la caché de escritura correctamente?

Es bastante común ver a los consejos para deshabilitar la caché de escritura en discos individuales utilizado para bases de datos, porque de lo contrario algunos discos se reconoce escribe que no han llegado todavía a la superficie del disco.

Esto implica que algunos discos no reconoce escribe hasta que se la he hecho a la superficie del disco (Actualización: o que se informe con precisión cuando se le preguntó a vaciar la caché. Donde puedo encontrar este tipo de discos, o dónde puedo buscar información fidedigna sobre dónde encontrar esos discos?

Estoy preparando algunas DB servidores que realmente se beneficiarían del uso de escribir cacheing, pero la aplicación es sensible al precio y prefiero no doble el costo de mi subsistema de disco para algunos el almacenamiento en caché de la controladora RAID porque no tengo suficiente información para saber si puedo confiar en la memoria caché en cada unidad.

15voto

Tall Jeff Puntos 878

Generalmente hablando, en respuesta directa a tu pregunta, yo no soy consciente de que cualquiera de las principales marcas de unidades SATA de que la unidad ha tenido errores en relación a la operación con habilitada la caché de escritura. Es decir, de una unidad única perspectiva, la unidad hace lo que se supone que debe hacer a partir de un almacenamiento en caché de perspectiva. También quiero señalar que aun cuando la caché de escritura está activado, que el retraso de una escritura de disco en el cable SATA a la rotación de los medios de comunicación física que se actualiza es todavía muy corto (~50 a 100 ms normalmente). No es como el sucio de datos en caché será allí sentado durante unos segundos en un tiempo.....la unidad está continuamente tratando de ensuciar los datos de la caché en el medio físico tan pronto como pueda. Esto no es sólo una cuestión de seguridad de los datos, sino la de estar dispuestos a aceptar el futuro se escribe sin ningún tipo de retraso (es decir: escribir su publicación).

El problema que surge cuando está habilitada la caché es que la escritura de la orden a la unidad mediante el cable SATA y el escribir para la rotación de los medios de comunicación no es la misma. Esto no puede causar un problema a MENOS que usted tiene una pérdida de poder o de una caída del sistema antes de que todo el contenido de la caché de hacerlo en el disco. Por qué? ->

La cuestión que se plantea aquí es relativa a la transacción de la solidez de la el sistema de archivos y/o archivo de base de datos de contenido a estas fuera de orden perdido escribe. En efecto, aquellos potencialmente perdidos fuera de orden escribe, teóricamente, puede dañar la integridad de la lógica de transacciones que de otro modo habrían han sido garantizados por el disco escribe sucediendo en una forma muy específica para los medios de comunicación.

Ahora, por supuesto, los diseñadores del sistema de archivos, bases de datos, controladores RAID, etc. son conscientes (o, seguramente, debe ser consciente de este fenómeno relativo a la caché de escritura. El almacenamiento en caché de escritura es muy deseable desde un punto de vista de rendimiento en la mayoría de los de acceso aleatorio de tipo I/O escenarios. En efecto, después de que el almacenamiento en caché de escritura disponibles es un elemento clave de ser capaz de tener ningún beneficio real para los más avanzados de la Cola de Comandos Nativos (NCQ) que se apoya en los nuevos SATA y las últimas generaciones de PATA de las implementaciones. Así, para garantizar el fin a los medios físicos en ciertos momentos críticos, el sistema de archivos y/o aplicaciones, etc. específicamente se puede solicitar un rubor de las cachés de escritura para los medios de comunicación. Al completar esta solicitud de sincronización - todo lo pendiente de (potencialmente) búferes de archivo, OS almacenamiento en caché de disco, disco físico de almacenamiento en caché, etc. es en realidad en los medios de comunicación por el sistema de transacción de diseño en el derecho fundamental de las operaciones. Es decir, esto ocurre correctamente si los programadores hacer una llamada telefónica(s) en la parte superior Y cada elemento de esta cadena de software y hardware capas hicieron su trabajo correctamente. es decir: no Hay errores en este sentido en la unidad, los controladores RAID, los controladores de disco, el sistema operativo almacena en caché, el sistema de archivos, el motor de base de datos, etc. Esto es un montón de software que todo tiene que funcionar a la perfección. Además, la verificación de la corrección en este sentido es muy difícil, porque en casi cualquier situación, normalmente, la escritura de orden no importa en absoluto....y de falta de energía y los escenarios de caída son pruebas difíciles de construir. Así, en el final de "desactivar la caché de escritura" en una o más de las diversas capas y/o los significados de este término....tiene la reputación de "arreglar" determinados tipos de problemas. En efecto, el cierre de la caché de escritura de los comportamientos de la controladora RAID o OS almacenamiento en caché del Disco, o de la Unidad, etc. es evitar que uno o más errores en el sistema.....y la fuente de la tradición.

De todos modos, volviendo al núcleo de la cuestión: en Virtud de SATA, el manejo específico de todo el disco comandos de lectura y escritura y el vaciado de la caché de los comandos están bien definidos por el SATA especificaciones. Además, la unidad se fabrica debe tener la documentación detallada para cada modelo de la unidad o la unidad de la familia, describiendo su implementación y cumplimiento de estas reglas como por ejemplo esta para Seagate Barracuda unidades. En particular, ver los detalles de la SATA CONJUNTO de FUNCIONES de comando que controla la unidad del modo de funcionamiento y específicamente opción 82h se puede utilizar para deshabilitar el almacenamiento en caché de disco al nivel de la unidad debido a que el valor predeterminado es sin duda habilitada la caché de escritura en todas las unidades soy consciente de. Si realmente quería deshabilitar la caché, este comando tiene que ser hecho en el inicio de cada uno de restablecimiento de la unidad o de la alimentación y es normalmente bajo el control de los controladores de disco para su sistema operativo. Usted podría ser capaz de animar a su controlador del sistema operativo para configurar este modo a través de un IOCTL y/o Configuración del Registro tipo de cosa, pero esto varía ampliamente.

3voto

Chaz Lever Puntos 328

Mi experiencia me dice que una batería de copia de seguridad de almacenamiento en caché de disco controlador de desactivar la memoria caché de la unidad. Yo no soy consciente de que una manera de deshabilitar la caché en disco de otra manera. Incluso si usted puede deshabilitar la caché en disco, el rendimiento podría verse afectado considerablemente.

Por un bajo costo optoin, usted puede usar un barato UPS que puede ser una señal de su sistema para un cierre ordenado.

2voto

Richard Rankin Puntos 11

Yo uso un sistema RAID con un supercapacitor en lugar de una batería para mantener la memoria caché. Las baterías se desgastan, deben ser monitoreados, debe ser reemplazado y representan un potencial punto de falla en estos aspectos. Un condensador de cargos en el inicio, vacía la caché cuando la alimentación de la UPS falla, dura prácticamente para siempre, no requiere monitorización, etc. Sin embargo, a menos que usted está ejecutando un negocio en la línea de la pobreza (no es raro en estos días), usted debe tener una UPS y software que se apaga el sistema de forma limpia en el fracaso - normalmente me dan es de 5 a 15 minutos (dependiendo de la carga del UPS y por lo tanto la batería disponible) antes de apagar si el poder volver.

Durante una tormenta eléctrica puede (o puede tener los sistemas de energía son cada vez mejor, ver las luces parpadean, a veces justo antes de salir. Este es un dispositivo llamado un reconectador. Es un interruptor que cuando se tropezó intenta cerrar el interruptor abierto en caso de que la sobrecarga era transitoria, de los cuales la mayoría son. Si se produce un error después de permanecer cerrado, es decir, en tres intentos, se mantiene abierta. El un pobre tipo que tiene que salir en la lluvia y tratar con él. No se sienta lástima por él, mientras que hace sólo dos veces lo que usted y yo y el doble que si las horas extras, es un trabajo peligroso.

1voto

Dave Cheney Puntos 13302

Como tengo entendido, fsync() fingir es una propiedad de batería de respaldo de las controladoras RAID, no las unidades. El controlador RAID contiene una batería que puede alimentar su caché de escritura hasta que se restaura la alimentación a la unidad y la escritura puede ser con seguridad comprometidos con el disco. Esto permite que el controlador para volver inmediatamente a la OS, ya que hace algún nivel de garantizar que la escritura se escribirán en el disco.

Cabe señalar, si las unidades de reescritura de caché se llena, escribe se bloqueará hasta que la caché se ha escrito de nuevo a la unidad. Esto significa que la memoria caché generalmente no es tan eficaz en virtud de escritura sostenida.

Cómo muchos IOPS hace que la aplicación requiere? Está seguro de que usted está siendo limitada por las unidades de caché de escritura, o que una pequeña (en comparación con la memoria de su servidor) en la unidad será de beneficio?

1voto

John Rennie Puntos 6821

Como usted dice, una adecuada batería de respaldo de la controladora RAID será caro, pero se puede encontrar Dell perc 5/i controladores en eBay por $ 100 ($150) y, especialmente, con RAID5 la velocidad de un controlador como el Perc 5/i te sorprenderá. Tengo varios servidores con Perc 5/es y seis de disco RAID 5 matrices, y son de las más rápidas que los discos que he visto nunca. Especialmente para aplicaciones de base de datos, discos rápidos realmente va a mejorar el rendimiento.

Me gustaría morder la bala y comprar una controladora RAID.

JR

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: