Montée en puissance parallèle d'une solution Analysis Services

Dans certaines situations, un administrateur de base de données Analysis Services (dba) voudra améliorer le temps de réponse des requêtes pour un nombre croissant d'utilisateurs finals. Il existe pour cela deux solutions : ajouter de la puissance au serveur existant (montée en puissance par unité) ou répartition de la charge sur plusieurs petits serveurs (montée en puissance parallèle).

La montée en puissance par unité est généralement limitée par les possibilités d'expansion ou de mise à jour du matériel existant qui sont elles-mêmes limitées. La carte mère existante n'acceptera peut-être pas la nouvelle version des unités centrales, ou l'espace d'adresse physique pour la mémoire a peut-être été atteint. Parallèlement, la montée en puissance parallèle d'une solution est plus souple et ses limitations sont plus facilement surmontables. Si le nombre de serveurs du composant d'équilibrage de la charge réseau (NLB, Network Load Balancer) a atteint la limite maximale, un NLB supplémentaire peut être ajouté à la solution et les serveurs peuvent être répartis sur ces différents NLB.

Ce document décrit une architecture théorique de montée en puissance parallèle d'une solution Analysis Services.

Scénario

Un dba Analysis Services doit fournir aux utilisateurs finals d'une solution Analysis Services un meilleur temps de réponse aux requêtes, tout en conservant la fenêtre de temps mort quotidienne minimale pour actualiser les données. Le nombre d'utilisateurs a doublé au cours du mois dernier par rapport aux 80 utilisateurs initiaux et il devrait encore doubler au cours des six prochains mois. À compter du septième mois, l'expansion des utilisateurs devrait être de 4 pour cent par mois. La taille de la base de données Analysis Services est actuellement de 80 Go et grossit de 6 Go par mois. La base de données contient actuellement des données sur les 12 derniers mois, mais il est prévu qu'elle contienne l'historique des 3 derniers exercices, plus l'exercice actuel. Le temps de traitement moyen est de 2 heures ½, et la fenêtre de temps mort est limitée à ½ heure.

Alternatives

Après avoir lu ce scénario, il semblerait que la seule solution consiste à effectuer une montée en puissance par unité du serveur. Cela permettrait de fournir un service sans temps mort, mais ralentirait parallèlement les performances de traitement. Toutefois, il y a actuellement 160 utilisateurs, ce nombre va doubler pour atteindre 320 au cours des six prochains mois et il continuera de s'accroître de 13 à 16 utilisateurs par mois pour une durée inconnue. À ce rythme, le nombre d'utilisateurs doublera encore entre les 18ème et 19ème mois, si la croissance reste stable. Face à cette situation, il sera difficile d'évaluer le matériel nécessaire et de justifier une demande de budget pour du matériel que sera utilisé à 50 pour cent de sa capacité pendant les 12 prochains mois.

Heureusement, la montée en puissance parallèle est possible dans SQL Server 2008 Analysis Services grâce à la fonctionnalité de base de données en lecture seule.

Architecture de montée en puissance parallèle

Cette architecture repose sur deux éléments :

  • Une disposition physique ayant pour but d'optimiser le débit des utilisateurs finals.

  • Une structure de fonctionnement ayant pour but de réduire au minimum le temps mort.

Disposition physique

La solution consiste en trois composants principaux :

  • L'environnement de traitement

  • Le réseau de stockage SAN

  • L'environnement d'accès aux données

Le premier composant, l'environnement de traitement, est l'endroit où les données sont mises à jour et traitées à l'aide d'un segment du réseau SAN. Le deuxième composant, le réseau SAN, est l'endroit où les données sont conservées pour les environnements de traitement et d'accès aux données. Le troisième composant, l'accès aux données, est l'endroit où les données sont mises à la disposition des utilisateurs finals.

Environnement de traitement

L'environnement de traitement est constitué d'un serveur, d'une connexion au réseau SAN et d'un volume SAN logique qui contiendra les données Analysis Services.

Réseau de stockage (SAN)

Cette solution comporte deux volumes logiques SAN indépendants : un pour l'environnement de traitement et l'autre pour l'environnement d'accès aux données.

Le réseau SAN est le jeu de périphériques utilisé pour le stockage physique des bases de données multidimensionnelles. Il permet d'établir des connexions haut débit entre les serveurs et le stockage qui incluent le stockage partagé, des clusters et des mécanismes de récupération des données.

Dans ce document, un volume logique SAN définit l'unité de stockage perçue par le système d'exploitation comme un lecteur physique isolé.

Environnement d'accès aux données

L'environnement d'accès aux données est formé de plusieurs serveurs (généralement à partir de trois) qui partagent le même volume logique SAN. Les utilisateurs se connectent aux serveurs d'accès aux données par le biais d'un périphérique NLB qui achemine toutes les demandes entrantes en utilisant un algorithme d'équilibrage de charge.

Variantes de la disposition physique

Si nécessaire, vous pouvez utiliser les variantes suivantes pour améliorer les performances de la solution.

Environnement de traitement

Lors de certaines occasions, vous utiliserez deux serveurs de traitement : un pour les bases de données relationnelles et un autre pour les bases de données Analysis Services.

Par ailleurs, plusieurs volumes logiques peuvent être définis afin que les bases de données relationnelles et les bases de données multidimensionnelles puissent être conservées indépendamment dans le réseau SAN.

Environnement d'accès aux données

Deux ou plusieurs NLB sont définis dans le cadre de la solution avec un minimum de trois serveurs d'accès aux données par périphérique NLB.

Infrastructure opérationnelle

Le fonctionnement de la solution est divisée en trois phases :

  • Traitement des données

  • Fenêtre de temps mort

  • Réinitialisation du traitement des données

Traitement des données

Dans cette phase, la base de données multidimensionnelle est mise à jour et traitée. Dès que son contenu est prêt à être envoyé, l'environnement d'accès aux données traite les données en vue de leur transfert. Ce processus regroupe les étapes suivantes :

  • Détachez la base de données Analysis Services du serveur de traitement des données.

  • Placez le volume SAN logique qui contient la base de données Analysis Services en mode hors connexion.

Fenêtre de temps mort

Dans cette phase, le contenu de la base de données mise à jour est remplacé par le contenu de la base de données d'origine.

  • Définissez les NLB de sorte qu'ils rejettent les demandes entrantes.

  • Détachez les bases de données Analysis Services de chaque serveur d'accès aux données.

  • Placez en mode hors connexion le volume SAN logique contenant la base de données Analysis Services de chaque serveur d'accès aux données.

  • À l'aide de commandes SAN, échangez les volumes SAN logiques entre l'environnement de traitement et l'environnement d'accès aux données.

  • Remettez en ligne le volume SAN logique contenant la base de données Analysis Services pour chaque serveur d'accès aux données.

  • Attachez la base de données Analysis Services, en mode ReadOnly, à chaque serveur d'accès aux données.

  • Définissez les NLB de sorte qu'ils acceptent toutes les demandes entrantes.

Réinitialisation du traitement des données

Dans cette phase, le contenu de l'ancien volume SAN logique est mis à jour et mis en ligne dans l'environnement de traitement.

  • À l'aide de commandes SAN, mettez en miroir le volume SAN logique de l'environnement d'accès aux données avec le SAN logique de l'environnement de traitement.

  • Mettez le volume SAN logique contenant la base de données Analysis Services en ligne en tant que périphérique en lecture/écriture pour l'environnement de traitement.

  • Attachez la base de données Analysis Services, en mode ReadWrite, au serveur de l'environnement de traitement.