SQL Server: separación de datos, registros y archivos TempDB en una SAN

8

Tengo un servidor SQL conectado a una SAN. Nuestro nuevo proveedor de almacenamiento recomienda que todos los LUN abarquen toda la matriz de discos, que es RAID5. Normalmente solicitaría 3 LUN separados (datos, registro y TempDB) al administrador de SAN, pero dada la recomendación del nuevo proveedor, ¿hay algún punto en la creación de LUN separados? ¿O vería el mismo rendimiento si todo estuviera en un LUN ya que abarcaría todos los discos de todos modos?

Gran artículo aquí, pero no aborda mi situación exacta: http://www.brentozar.com/archive/2008/08/sql-server-on-a-san-dedicated-or-shared-drives/

Algún chico
fuente

Respuestas:

6

Una cosa a considerar es que los archivos de registro son escrituras secuenciales donde los archivos de datos no son secuenciales. Esa es una de las razones de los LUN separados. Los archivos de registro escriben más rápido si están en su propio LUN porque los cabezales no tienen que saltarse, solo escriba secuencialmente. Si agrega un archivo de datos, los cabezales deben saltarse y perder algo de rendimiento. Espero tener la terminología correcta allí, ya que no estoy tan familiarizado con las SAN. Sin embargo, la idea detrás de esto debería ser.

Con frecuencia, las recomendaciones del proveedor son incorrectas cuando se trata de SQL Server. Solo porque SQL Server tiene diferentes necesidades que la mayoría de las aplicaciones que usan una SAN.

Kenneth Fisher
fuente
1
Creo que lo que dice el OP es que, independientemente del LUN, todos están golpeando los mismos ejes. En otras palabras, no hay separación física para grupos aislados de discos.
Thomas Stringer
1
Ahh, supongo que lo que estaba diciendo es que no lo configure de esa manera :) tenga cada uno de los LUN en diferentes husos, aunque el proveedor sugiera lo contrario. Si eso no es posible, entonces no hay razón de rendimiento para separarlos en diferentes LUN. Aunque nunca se sabe lo que sucederá en segundo plano y en algún momento en el futuro si están en LUN separados, se pueden mover a diferentes husos.
Kenneth Fisher
4

Mucho depende de la SAN, por lo general, querrá configurar diferentes LUN con diferentes caché, compresión, cifrado, lectura anticipada, políticas de escritura / prioridad, etc. Los archivos de datos SQL a menudo exhiben un comportamiento diferente al tempdb o log archivos. El método / red de acceso también entra en juego, ya que el enlace troncal, las rutas múltiples y otras tecnologías pueden o no funcionar dependiendo de su método de acceso (FC, iSCSI, ..) e infraestructura. Deberá poder utilizar su red al máximo con SQL Server, ya que la latencia y el rendimiento son críticos. He visto casos con la configuración de equipos de redes, pero solo 1Gbps era utilizable debido a otras limitaciones que el cliente desconocía. Estoy de acuerdo con Kenneth, tome las recomendaciones del proveedor con una gran dosis de sal, con frecuencia están equivocadas. SQL Server es una bestia voluble, Hay muy pocos absolutos, generalmente solo más preguntas. Hacer las preguntas correctas (a través de las pruebas) es realmente la clave.

AceCTO
fuente
2

No "tome las recomendaciones del proveedor con una gran dosis de sal", a menos que sean del departamento de ventas o marketing. Todo lo contrario, si puede obtener acceso a su implementación técnica, chicos, hagan amigos.

Probablemente este es uno de los dispositivos de nueva generación que virtualiza el grupo de almacenamiento e incluye capacidades de nivel automático. Un ejemplo sería Compellent . Realizan todo tipo de vudú SAN como:

  • Escriba bloques de datos activos en el almacenamiento de Nivel 1 con niveles RAID de rendimiento optimizado como RAID 10.
  • Migre automáticamente bloques de datos inactivos a un almacenamiento de nivel inferior con RAID 5 o 6 de mayor sobrecarga y alta protección.

Para el Compellent, el almacenamiento se divide en 3 niveles, siendo Tier1 el más rápido (SSD o RAID 10) hasta Tier3 lento que comprende 7k discos SAS. Todavía no he usado uno de estos en un entorno de producción, pero tengo acceso a uno, con el que espero poder realizar algunas pruebas.

Confieso estar intrigado y temeroso de las características de nivel automático, que en papel suenan maravillosas pero en producción pueden ser problemáticas. El primer ejemplo que se produjo como un posible error del mecanismo de nivel automático fueron las copias de seguridad de la base de datos. Ahí tiene un objetivo de escritura alto repetido que puede engañar al mecanismo de niveles para que mueva los bloques a un grupo de alto rendimiento, lo que podría eliminar los datos que deberían estar allí.

A la pregunta original:

... ¿tiene algún sentido crear LUN por separado?

Probablemente no, no. Deje claro el caso de uso al proveedor para asegurarse, pero si es un dispositivo de tipo Compellent, no creo que gane nada al dividir sus LUN.

Mark Storey-Smith
fuente
2

¿Hay algún punto para separar los LUN? Casi siempre. De lo contrario, terminará sobrecargando la cola LUN en el servidor de Windows. Y experimentar condiciones completas es doloroso, independientemente del sistema operativo, la virtualización o la plataforma de almacenamiento

sql_handle
fuente