2008-10-03 10 views
15

Tenemos un backend de base de datos SQL 2005 para nuestro sitio web, que actualmente tiene un tamaño de aproximadamente 10 GB. Hay muchas más lecturas que escrituras, aunque no tengo las estadísticas exactas.Configuración óptima de RAID para el servidor SQL

Estamos actualizando nuestro servidor de base de datos y estaba pensando en obtener 4 discos y configurarlos en dos matrices RAID 1: una para los archivos de datos y la otra para el sistema operativo y los archivos de registro. ¿Esta sería la configuración óptima o RAID 5 sería mejor para los archivos de datos? RAID 10 se pone un poco caro y probablemente sea excesivo para nosotros.

En esta etapa, SQL Server debe mantener gran parte de la base de datos en RAM (8GB), pero crecerá, por lo que no quiero confiar completamente en eso.

Editar: definitivamente queremos redundancia en un servidor de producción, por lo que RAID 0 por sí solo está fuera. RAID 10 es agradable, pero puede ser un poco caro para nosotros.

Respuesta

16

Su concepto de utilizar espejos RAID 1 independientes es la estrategia correcta.

Hemos implementado escenarios similares en mi trabajo y funcionan muy bien.

RAID 1

RAID 1 proporciona la velocidad de 1 disco para la escritura, sino 2 discos de lectura.

Cuando escribe datos en una matriz RAID 1, tiene que escribir esos datos en ambos discos, para que no gane ningún aumento de rendimiento, sin embargo, aquí es donde obtiene la seguridad de sus datos.

Al leer desde una matriz RAID 1, el controlador leerá desde ambos discos, ya que tienen los mismos datos en ellos.

RAID 5

Esto es útil para la protección de grandes cantidades de datos.El costo de RAID 5 aumenta mucho más lento que RAID 1 (o RAID 0 + 1 una vez que está haciendo capacidades más allá del tamaño de los discos individuales) para la misma cantidad de datos.

Si desea proteger 600 gb con RAID 5, puede lograrlo con unidades 4x200gb o 3x300gb, que requieren 800-900gb de espacio total en disco comprado. RAID 1 serían unidades de 2x600gb que requieren 1,200gb de espacio comprado (con unidades de 600gb siendo bastante más caras) o RAID 0 + 1 que le permite usar unidades de capacidad menos costosas (es decir: 4x300gb o 6x200gb) pero aún requiere un total de 1,200gb de espacio comprado.

RAID 0 + 1

ofrece ventajas similares como RAID 1, teniendo a otro nivel con la creación de bandas en discos. Estoy asumiendo que si le preocupan las lecturas simultáneas más altas, también utilizará procesadores múltiples/núcleos múltiples. Procesarás múltiples consultas a la vez y, por lo tanto, la creación de bandas no ayudará tanto. Vería una mejor ventaja en un RAID 0 + 1 para aplicaciones individuales que usan grandes archivos de datos, como la edición de video.

Cuando estaba investigando este mismo problema hace un tiempo para un cliente, encontré que este artículo es muy interesante http://blogs.zdnet.com/Ou/?p=484. En la segunda página, analiza el cambio de un RAID 0 + 1 a matrices RAID 1 independientes que crean una gran cantidad de mejoras de rendimiento. Esto fue en una escala mucho mayor (un disco 20 y SAN de 16 discos) pero con los mismos conceptos. La capacidad de SQL Server para equilibrar la carga de datos entre varios volúmenes en lugar de utilizar solo bandas básicas desinformadas de RAID 0 + 1 es un gran concepto.

+1

Gracias por la respuesta detallada y el enlace de blog. Esa es exactamente la clase de información que estaba buscando. – EMP

+1

Vea también http://blogs.msdn.com/b/teamcenteronsql/archive/2010/04/27/raid-1-0-and-sql-server.aspx para razonar sobre el uso de RAID1 con "SQL Striping" en su lugar de 1 + 0. –

1

Dado que hay muchas más lecturas que escrituras, RAID 5 será más rápido para sus archivos de datos.

Si es posible, use una matriz RAID 1 + 0 separada para los archivos de registro de transacciones.

EDITAR: necesitará al menos 3 discos para crear una matriz RAID 5.

+0

Pero obtendrá un mejor rendimiento de 5 discos sin mencionar mejores tiempos de lectura. Obtenga un controlador RAID5 de hardware de la mejor calidad con un caché estúpidamente grande y nunca se dará cuenta de que RAID5 es más lento que un solo disco para escribir, y para lecturas no puede vencer a 5 husos. RAID10 para el registro Estoy de acuerdo. –

1

Tenga en cuenta que la métrica de rendimiento clave será la tasa de búsqueda, no la tasa de datos. Es decir, una base de datos típica ligada al disco (como la suya puede crecer a medida que crece) estará limitada por cuántos IO por segundo pueden admitir los discos, en lugar de la velocidad máxima de datos que pueden admitir para lecturas secuenciales.

Esto significa que si se está preguntando cómo usar 4 discos (por ejemplo), dos pares RAID1 deberían ofrecerle un mejor rendimiento que una matriz RAID5 de 4 discos. Por supuesto, no obtendrá el mayor almacenamiento utilizable de los dos pares de RAID1.

0

RAID 5 es bueno si utiliza un controlador de hardware con una cantidad decente de memoria caché con respaldo de batería. Seleccione un tamaño de fragmento y configure la base de datos para que el tamaño de la banda (discos de datos * tamaño del fragmento) sea igual al tamaño de escritura de la base de datos. Asegúrese de que su partición de datos [esté alineada/sea un múltiplo de] el tamaño de la franja.

De lo contrario, RAID 1 + 0 siempre es una buena opción para los servidores de bases de datos.

1

Dado el pequeño tamaño de la base de datos, usaría cuatro discos SAS SFF de 15krpm y 2.5 ", configurados como dos espejos RAID 1. Los utilizaría como un controlador SAS Adaptec 5805 PCI-e x 8. Puse los datos en una matriz y los registros en otra por seguridad. Memoria de memoria: mapeo de toda la base de datos, una SAN muy grande/costosa o el uso de discos SSD Estoy bastante convencido de que esta será la configuración más rápida para el dinero.

esperanza esto ayuda

3

me gustaría pasar un poco de tiempo asegurándose de que su base de datos está indexada eficientemente;. supervisar si se completa la tabla exploraciones, asegúrese de que las consultas más frecuentes leerse como pequeños datos como sea posible; que había tomar un da eficientemente diseñado Tabase en una configuración de disco lenta sobre una base de datos con índices incorrectos en SSD.

0

También recomendaría establecer un conjunto de valores de línea de base que le permita realizar predicciones más fundadas que solo poner el dedo en el aire (o preguntar StackOverflow, parece vagamente y extrañamente similar esos dos conceptos).

Con unos valores de referencia también se puede medir la efectividad de los cambios y ser una buena base para futuras actualizaciones ...

(Si no se conoce, recoger un poco de la literatura (o Wikipedia) en ingeniería de rendimiento. ¡Es una rama completa de cosas que solo trata con este tipo de problemas).

1

dos cosas,

La teoría es RAID 1 le da dos unidades para una lectura, pero 'no piensan que es igual a dos veces el rendimiento. Como cuestión de hecho, no lo hace, por lo general la velocidad de lectura secuencial termina siendo exactamente lo mismo que una unidad. Sorprendente, pero cierto ... hacer pruebas en el mundo real, no confíes en la teoría.

Dicho esto, iría con dos RAID 1 ... pero no como dijiste, uno para OS, y el otro para datos. Tendría una pequeña partición de sistema operativo en una de ellas, pero definitivamente daría ambas incursiones al servidor SQL para obtener datos. Dale al servidor sql todos los conjuntos que puedas.

SQL Server puede recorrer los pares, absolutamente no quiere ir con 0 + 1 a pesar de lo que dice cualquiera aquí. Vuelven a analizar los puntos de referencia teóricos, no comprenden que el servidor sql puede rastrear todos sus datos en los discos y puede hacerlo de forma optimizada.

Raid 1 es solo para redundancia de datos ... además de eso, da todo lo que puedas al servidor sql, y deja que haga lo suyo ... es muy bueno en lo que hace.

Tiene un 0 + 1 y lo divide en dos incursiones 1 ... hacer pruebas en el mundo real, se sorprenderá de cuál es más rápido para el trabajo del servidor sql.

0

Por cierto, donde yo trabajo, tienen un san de gama alta, que hace un tablescan en unos 2 minutos. Corté las unidades en simples conjuntos de banda 1, y dejé que el servidor sql manejara las bandas ... no las san. 2 minutos cayeron a 45 segundos.

hay otros artículos en la red sobre esto ... es muy difícil conseguir incursiones 'verdaderos creyentes' para aceptar esto, por eso soy tan enfático, sobre este punto.

+0

Ya sabes, la mayoría del software SAN tiene opciones para elegir modos de alto rendimiento de la base de datos. Sólo tienes que encontrarlos. Algunos incluso tienen lecturas predictivas diseñadas para trabajar con Oracle y otros. –

0

Prefiero la incursión 10 que ya he configurado en mi servidor dell r210-II linux. Increíble rendimiento ...

Cuestiones relacionadas