< Retour à la page précédente

Virtualiser des moteurs de bases de données

Dans mon rôle de consultant, l’une des questions qui m’est le plus souvent posée est la suivante : peut-on réellement virtualiser des serveurs comme Microsoft SQL, sans perte de performance radicale? La réponse est OUI!

Virtualisation gagnante

La vieille garde

Évidemment, je vois les administrateurs de bases de données (DBA) puristes monter aux barricades : « Microsoft SQL/MySQL/Oracle DB ne peuvent pas être efficacement virtualisés! ». Faux, rien de plus faux. Tout est une question d’adaptation et de suivre les meilleures pratiques. Même mon patron actuel, un ancien administrateur de base de données Oracle, grinçait des dents lorsque j’ai abordé pour la première fois le sujet de la virtualisation des serveurs de bases de données.

Les phobies

La principale crainte des administrateurs de bases de données (DBA – Database Administrator) vient du fait qu’ils ne sont pas habitués à partager leurs ressources avec d’autres systèmes. Pas question de couper la tarte et d’en donner des parts à d’autres, toutes ces belles pointes de processeurs, de mémoires et de stockage! Et bien messieurs-dames, il ne faut pas s’inquiéter, on peut prioriser l’attribution des ressources, et vous faire passer en avant de la file.

Les ressources maximales des machines virtuelles ont déjà été un obstacle de taille. Il n’y a pas si longtemps, on ne pouvait pas attribuer à une machine virtuelle une grande quantité de processeurs ou de mémoire virtuelle. Les dernières versions des différents « hypervisors* » sur le marché nous permettent une très grande flexibilité au niveau de l’assignation des ressources. Par exemple, vSphere 5.1 versus vSphere 4.1 permet d’attribuer 4 fois plus de mémoire et jusqu’à 8 fois plus de processeurs virtuels à la même machine virtuelle.

Les mauvaises pratiques

Une autre raison qui a longtemps empêché les administrateurs de systèmes de virtualiser des serveurs de base de données n’a aucun rapport avec la virtualisation en soit : les mauvaises pratiques. En effet, Microsoft publie dans son cursus officiel de certification les meilleurs pratiques à respecter pour son moteur de base de données, Microsoft SQL Serveur. Idem pour Oracle ou MySQL.

Le non-respect de ces bonnes pratiques est parfois plus visible dans un environnement virtuel. Par exemple, un serveur Microsoft SQL, avec une soixantaine de bases de données sur la même partition, toutes configurées en mode « auto-grow* » va causer une fragmentation qui va ralentir n’importe quel serveur. Comme la fragmentation du système de fichier est plus apparente dans un environnement virtualisé, le ralentissement semble pire. Mais en réalité, un serveur dédié nous permet de tricher sur ce genre d’indicateur de performance, ce qui n’est plus possible dans un serveur virtuel.

Succombez à la virtualisation!

Au bout du compte, consultez les meilleures pratiques du fabriquant de moteur de base de données avant de blâmer la couche de virtualisation! Vous allez atteindre le nirvana de la haute disponibilité, et enfin entrer dans le fan-club de la virtualisation!

Et si on pousse un peu plus loin…

Si vous voulez des cas précis de mauvaises pratiques ou de plus grande capacité, voici quelques chiffres :

Ressources virtuelles maximales
Entre la version 4.X de vSphere et la version 5.1, voici l’augmentation des ressources maximales que nous pouvons assigner à une machine virtuelle donnée :

  • Processeurs : de 8 vCPU à 64.
  • Mémoire : de 255 GB à 1 TB
  • Taille des disques : Dépendamment du « block-size » choisi, on est passé de 255 GB à 2 TB.

Mauvaises pratiques : un cas concret
J’ai vu le cas d’une entreprise, utilisant Microsoft SQL Serveur, qui a vécu un ralentissement horrible en virtualisant. Le pauvre serveur SQL contenait plus d’une centaine de bases de données. Chaque base de données était configurée en mode « Auto-grow* » d’un MB d’incrément. Donc, à chaque fois qu’une des bases de données devait grossir, elle réclamait une tranche d’1 MB au système d’exploitation. Si 100 BD font ça à chaque fois qu’elles grossissent… On se retrouve avec un système de fichiers plus fragmenté qu’un météorite qui entre dans l’atmosphère!


Lexique

Hypervisor : Système d’exploitation dédié à la virtualisation
Autogrow : Croissance automatique

Confiez la satisfaction de vos besoins technologiques aux experts de Vertisoft.