SQL Server et virtualisation

Logo SQL Server Horizontal

Une question qui revient souvent, concerne la virtualisation de SQL Server : la question précise est de savoir si SQL Server peut fonctionner sur un hôte virtuel.

Cette question est légitime lorsqu’on connaît l’engouement actuel pour la virtualisation. Certaines entreprises envisagent de virtualiser tous leurs serveurs sans exception dans le but de simplifier l’administration et d’assurer la consolidation (comprendre réduire le nombre de serveurs physiques).

Microsoft a publié un livre blanc : Ce document ne précise pas dans quelles conditions la virtualisation est conseillée. En lisant entre les lignes, il est dit que les environnements de développement ou d’intégration sont de bons candidats à la virtualisation.

Ce que ne dit pas clairement Microsoft, c’est si la virtualisation de serveurs de production est souhaitable. En fait, c’est parce que la réponse est plus complexe qu’elle n’y paraît. D’abord, toutes les versions de SQL Server ne sont pas supportées et il est nécessaire de respecter des configurations très précises. Ensuite, dans le cas de SQL Server, la virtualisation n’est pas indispensable et cela pour trois raisons :

  1. La virtualisation permet de faire cohabiter sur un même hôte, des OS/applications qui n’ont pas les mêmes configurations et qui ne peuvent pas cohabiter ensemble sur un même serveur. Par rapport à ce point, en fait, par sa conception, il est tout à fait possible de faire cohabiter différentes versions/éditions/configuration de SQL Server en faisant appel à l’utilisation des multi-instances.
  2. La virtualisation possède aussi des mécanismes pour déplacer rapidement (et souvent automatiquement) une machine virtuelle sur un hôte physique différent. En fait dans le cas de SQL Server, il possible d’utiliser les mécanismes de haute disponibilité avec bascule automatique (clustering et mise en miroir) pour le même résultat.
  3. SQL Server supporte une couche basse particulière SQLOS. Cette couche permet, entre autres choses, d’exploiter au mieux les équipements physiques du serveur. Qui dit virtualisation, dit que le matériel est en général émulé. Cela peut coûter très cher en termes de performances à SQL Server parce que la couche physique est inaccessible, mais il faut aussi prendre en compte la charge de l’émulation. Dans le pire des cas, nous pouvons constater une perte de performances de plus de 30%.

Pour toutes ces raisons, la virtualisation n’est pas indispensable. Mais revenons à la question initiale et la réponse tient en deux points :

  • Si l’environnement est critique en termes de performances. Par exemple, une instance dont la volumétrie est conséquente (par exemple plusieurs centaines de giga-octets) et qui supporte les bases de données de production. Dans ce cas, la virtualisation est à proscrire. Il est important que la couche SQLOS accède directement à la couche physique. Le travail d’un administrateur est d’optimiser au maximum les performances de SQL Server pour obtenir les meilleures performances.
  • Pour les instances moins critiques (bases de données d’un service ou d’un département par exemple), la virtualisation est possible mais dans cette hypothèse, il est important et indispensable d’intégrer dans le calcul des performances, la charge inhérente à la virtualisation. Or, à l’usage, il apparaît que ce travail n’est jamais fait correctement tant elle est complexe.

Autre exemple de virtualisation : Un autre cas concerne les environnements de tests ou l’intégration continue pour les entreprises éditrices de logiciels. En effet, dans le cas l’intégration continue, il faut assurer les tests dans tous les supports prévus (OS, bases de données, etc.) Pour assurer les tests sur différentes versions de SQL Server, la virtualisation est la meilleure solution. On dispose d’autant de machines virtuelles que de versions de SQL Server à tester : il n’est pas question de disposer de serveurs physiques

Autres références : SQL Server 2008 Virtualization, white-paper, Virtualisation : Les 10 meilleures pratiques en matière de virtualisation

Bien à vous.

Une réponse à « SQL Server et virtualisation »

  1. Avatar de SQL Server et virtualisation (2) « SQL Server et SQL Azure dans le détail

    […] Mais la question se pose régulièrement sur la virtualisation de SQL Server. […]

    J’aime

Rechercher

A propos de l’auteur

Spécialiste certifié Microsoft BI (SQL Server et Azure), Philippe Geiger accompagne aussi bien les professionnels en infrastructure que les développeurs BI. Maîtrisant tous les aspects de la plateforme Data de Microsoft, il assure également, en sa qualité de formateur certifié, les formations officielles de Microsoft. Par ailleurs, il est Directeur des Activités Grand-Est chez Metsys, société « Pure Player » Microsoft.

Les derniers tweets

Certifications

Microsoft Certified: Power BI Data Analyst Associate
Microsoft Certified: Azure AI Engineer Associate
Microsoft Certified: Azure Fundamentals
Microsoft Certified: Azure Data Fundamentals
MCSE: Data Management and Analytics — Certified 2018
MCSA: SQL 2016 Database Administration - Certified 2016
MCSA: SQL Server 2012/2014 - Certified 2016
Microsoft Certified: Azure Data Engineer Associate
Microsoft Certified: Azure Database Administrator Associate
Microsoft Certified: Power Platform Fundamentals
Microsoft Certified Trainer 2022-2023
MCSE: Data Management and Analytics — Certified 2016
MCSA: SQL 2016 Database Development - Certified 2016
MTA: Database Fundamentals - Certified 2016
Microsoft Certified: Azure Data Scientist Associate
Microsoft 365 Certified: Fundamentals
Microsoft Certified: Azure AI Fundamentals
Exam 473: Designing and Implementing Cloud Data Platform Solutions
MCSA: SQL 2016 Business Intelligence Development - Certified 2016
MCSA: BI Reporting - Certified 2018

Archives