Ampliar una Solución Analysis Services

Con frecuencia, hay situaciones en que un administrador de bases de datos de Analysis Services desea mejorar el tiempo de respuesta de las consultas para un número creciente de usuarios finales. Existen dos maneras de lograr este objetivo: agregar más capacidad al servidor existente (ampliación vertical) o distribuir la carga entre varios servidores pequeños (ampliación horizontal).

Por lo general, la ampliación vertical se ve limitada por el momento en que el hardware existente ya no se puede expandir o actualizar más. Es posible que la placa base existente no acepte la nueva versión de las CPU o que se haya alcanzado el límite del espacio físico de direcciones de la memoria. Por su parte, la ampliación horizontal de una solución es más flexible y las limitaciones son más fáciles de superar. Si el número de servidores del equilibrio de carga de red (NLB) ha alcanzado el límite máximo, se puede agregar otro NLB a la solución y los servidores se pueden distribuir por varios NLB.

En este documento se describe una arquitectura teórica para la ampliación horizontal de una solución de Analysis Services.

Escenario

Un administrador de bases de datos de Analysis Services debe proporcionar a los usuarios finales de una solución de Analysis Services un mejor tiempo de respuesta para las consultas, a la vez que garantiza que el tiempo de inactividad para actualizar los datos es el mínimo posible. Partiendo de los 80 usuarios iniciales, el número de usuarios se ha duplicado durante el último mes y se espera que el número se duplicará de nuevo en los próximos seis meses. Posteriormente, a partir del séptimo mes, se espera un aumento del número de usuarios del 4 por ciento mensual. El tamaño de la base de datos de Analysis Services es actualmente de 80 GB y aumenta 6 GB cada mes. La base de datos contiene actualmente los datos de los últimos 12 meses y se espera que mantenga el historial de los últimos 3 años fiscales más el actual. El tiempo de procesamiento medio es 2 horas y media y el intervalo de tiempo de inactividad se limita a 30 minutos.

Alternativas

Después de leer esta información, podría parecer que la única solución es aumentar la capacidad del servidor. De esa forma, se obtendrá un servicio sin tiempo de inactividad, aunque con un rendimiento lento durante el tiempo de procesamiento. Con todo, en la actualidad hay 160 usuarios, número que se duplicará en los seis meses siguientes. Posteriormente, continuará creciendo a un ritmo de entre 13 y 16 usuarios al mes durante un periodo de tiempo desconocido. Con ese índice de crecimiento, el número de usuarios se volverá a duplicar entre los meses 18 y 19 del crecimiento estable. Con esta situación será difícil calcular el tamaño de hardware realmente necesario y justificar una solicitud de presupuesto para los equipos que se utilizarán a menos del 50 por ciento de su capacidad durante los próximos 12 meses.

Afortunadamente, la ampliación horizontal de esta solución se puede realizar en SQL Server 2008Analysis Services con la capacidad de base de datos de sólo lectura.

Arquitectura de ampliación horizontal

Esta arquitectura está diseñada con dos elementos:

  • Un diseño físico con el objetivo de maximizar la productividad de los usuarios finales.

  • Un marco de operaciones cuyo objetivo sea minimizar el tiempo de inactividad.

Diseño físico

La solución consta de tres componentes principales:

  • El entorno de procesamiento

  • La red de área de almacenamiento (SAN)

  • El entorno de acceso a datos

El primer componente, el procesamiento, es donde se actualizan y procesan los datos utilizando un segmento de la red SAN. El segundo componente, la red de área de almacenamiento (SAN), es donde se almacenan los datos para los entornos de procesamiento y acceso a datos. El tercer componente, el acceso a datos, es el lugar en el que los datos se ponen a disposición de los usuarios finales.

El entorno de procesamiento

El entorno del procesamiento está formado por un servidor, una conexión a la red SAN y un volumen lógico de la red SAN para guardar los datos de Analysis Services.

La red de área de almacenamiento (SAN)

Esta solución consta de dos volúmenes lógicos de SAN: uno para el entorno de procesamiento y otro para el entorno de acceso a datos.

La red SAN es el conjunto de dispositivos que proporcionan el almacenamiento físico para las bases de datos multidimensionales. Permite conexiones de alta velocidad entre los servidores y el almacenamiento formado por almacenamiento compartido, clústeres y mecanismos para la recuperación de datos.

En este documento, un 'volumen lógico de SAN' define la unidad de almacenamiento que el sistema operativo percibe como una unidad física.

El entorno de acceso a datos

El entorno de acceso a datos está formado por varios servidores, inicialmente suelen ser tres, que comparten el mismo volumen lógico de SAN. Los usuarios se conectan a los servidores de acceso a datos a través de un dispositivo del equilibrio de carga de red, que dirige todas las solicitudes entrantes utilizando un algoritmo de equilibrio de carga.

Variantes del diseño físico

Cuando sea necesario, podrá utilizar las variantes siguientes para lograr un mejor rendimiento en la solución.

Entorno de procesamiento

Para determinadas situaciones podrá utilizar dos servidores de procesamiento: uno para las bases de datos relacionales y otro para las bases de datos de Analysis Services.

Además, se pueden definir varios volúmenes lógicos para contener de forma independiente las bases de datos relacionales y las bases de datos multidimensionales de SAN.

Entorno de acceso a datos

Se definen dos o más equilibrios de carga de red como parte de la solución, con un mínimo de tres servidores de acceso a datos por cada dispositivo NLB.

Marco de operaciones

El funcionamiento de la solución se divide en tres fases:

  • Procesamiento de datos

  • Intervalo de tiempo de inactividad

  • Restablecimiento del procesamiento de datos

Procesamiento de datos

En esta fase, se actualiza y procesa la base de datos multidimensional. Tan pronto como el contenido de la base de datos multidimensional está listo para su envío, el entorno de acceso a datos comienza el procesamiento de los datos para la transferencia. Este proceso consta de los siguientes pasos:

  • Separar la base de datos de Analysis Services del servidor de procesamiento de datos.

  • Dejar sin conexión el volumen lógico de la red SAN que contiene la base de datos de Analysis Services.

Intervalo de tiempo de inactividad

En esta fase, el contenido de la base de datos actualizada se intercambia con el contenido de la base de datos original.

  • Establezca los equilibrios de carga de red de forma que rechacen todas las solicitudes entrantes.

  • Separe las bases de datos de Analysis Services de cada servidor de acceso a datos.

  • Deje sin conexión el volumen lógico de la red SAN que contiene la base de datos de Analysis Services de cada servidor de acceso a datos.

  • Mediante comandos de la red SAN, intercambie los volúmenes lógicos de la red SAN entre el entorno de procesamiento y el entorno de acceso a datos.

  • Vuelva a poner en conexión, como dispositivo de sólo lectura, el volumen lógico de la red SAN que contiene la base de datos de Analysis Services de cada servidor de acceso a datos.

  • Conecte la base de datos de Analysis Services, en modo ReadOnly, a cada servidor de acceso a datos.

  • Establezca los equilibrios NLB de forma que acepten todas las solicitudes entrantes.

Restablecimiento del procesamiento de datos

En esta fase, el contenido del volumen lógico de la red SAN anterior se actualiza y se establece con conexión en el entorno de procesamiento.

  • Mediante comandos de la red SAN, cree un reflejo del volumen lógico de la red SAN del entorno de acceso a datos en el volumen lógico de la red SAN del entorno de procesamiento.

  • Vuelva a poner en conexión, como dispositivo de lectura/escritura, el volumen lógico de la red SAN que contiene la base de datos de Analysis Services para el entorno de procesamiento.

  • Conecte la base de datos de Analysis Services, en modo ReadWrite, al servidor del entorno de procesamiento.