33 votes

SQL Server virtualisé: pourquoi pas?

Le département où je travaille à essayer de passer à 100% de serveurs virtualisés, avec toutes les données stockées sur un SAN. Ils ne l'ont pas encore fait, mais le plan a finalement appels pour le déplacement de la physique existante de SQL Server machines de serveurs virtuels ainsi.

Il y A quelques mois, j'ai assisté le Héros Arriver Ici, lancement de l'événement, et dans l'un de SQL Server sessions, l'orateur a mentionné, en passant, que ce n'est pas une bonne idée pour les systèmes de production.

Donc, je suis à la recherche de quelques choses:

  1. Quelles sont les raisons pour lesquelles cela est ou n'est pas une bonne idée? J'ai besoin de références, ou n'est pas la peine de répondre. Je pouvais venir avec un vague "I/O bound" réponse sur mon propre via google.
  2. HHH haut-parleur souvenir seul ne sera probablement pas de convaincre notre département à changer leurs esprits. Quelqu'un peut me pointer directement à quelque chose de plus d'autorité? Et par "directement", je veux dire quelque chose de plus que juste une vague documentation en Ligne de commentaire. Merci de le réduire un peu.

36voto

Je peux le dire par expérience personnelle, parce que je m'occupe de ce problème que nous parlons. L'endroit où je travaille actuellement en tant qu'entrepreneur a ce type d'environnement pour le développement de SQL Server de systèmes. Je suis en train de développer un modeste B. I. système sur cet environnement et vraiment du mal avec les problèmes de performances.

TLB manque émulés et I/O sont très lents sur une naïve de la machine virtuelle. Si votre O/S a paravirtualisation de soutien (qui n'est pas encore une technologie mature sur Windows) vous utilisez paravirtualised I/O (essentiellement un pilote de périphérique qui se raccorde à une API dans la VM). Les versions récentes de l'Opteron d'avoir le support imbriqués les tables de pages, ce qui élimine la nécessité pour émuler la MMU dans le logiciel (qui est vraiment très lent).

Ainsi, les applications qui s'exécutent sur de grands ensembles de données et de faire beaucoup d'I/O, comme (par exemple) des processus ETL voyage sur le talon d'achille de la virtualisation. Si vous avez quelque chose comme un entrepôt de données système qui pourrait être dur de la mémoire ou du Disque I/O, vous devriez envisager autre chose. Pour une simple application transactionnelle ils sont probablement O. K.

Mettre en perspective les systèmes que j'utilise sont en cours d'exécution sur les lames (un serveur IBM) sur un SAN avec 4x 2gbit F/C liens. C'est un milieu de gamme à SAN. Le VM a 4 GO de RAM IIRC et maintenant deux Processeurs virtuels. À son meilleur (lorsque le SAN est calme) ce n'est encore que la moitié de la vitesse de mon XW9300, qui dispose de 5 disques SCSI (système, base de données tempdb, des journaux, des données, données) sur 1 U320 de bus et de 4 go de RAM.

Votre kilométrage peut varier, mais je vous conseille d'aller avec des systèmes de postes de travail comme celle que j'ai décrite pour le développement de tout ce que j'/S lourd, de préférence à des serveurs virtuels sur un SAN. À moins que votre utilisation de la ressource conditions sont au-delà de ce genre de kit (dans ce cas, ils sont bien au-delà d'un serveur virtuel de toute façon) c'est une bien meilleure solution. Le matériel n'est pas si cher que ça, certainement beaucoup moins cher qu'un SAN, lame de châssis et de VMWare délivrance des licences. SQL Server developer edition est livré avec V. S. Pro et au-dessus.

Cela a aussi l'avantage que votre équipe de développement est forcé de faire face à déploiement de droit à partir de la parole vont - vous à venir avec une architecture qui est facile à "one-click" à déployer. Ce n'est pas aussi difficile qu'il y paraît. Redgate SQL de Comparer Pro est votre ami ici. Vos développeurs également obtenir une base de connaissances en administration de base de données.

Un voyage rapide sur le site web de HP m'a fait une liste de prix de près de 4 600 $pour un XW8600 (leur xeon-modèle basé sur) avec un processeur quad-core xeon puce, 4 GO de RAM et 1x146 et 4x73GB SAS 15k disques durs. Rue prix sera probablement un peu moins. Le comparer au prix d'un SAN, lame de châssis et de licences VMware et le coût de la sauvegarde pour que le programme d'installation. Pour la sauvegarde, vous pouvez fournir un partage réseau avec sauvegarde où les gens peuvent déposer comprimé DB fichiers de sauvegarde nécessaires.

EDIT: Ce livre blanc sur la DMLA site web de la traite de quelques repères sur une machine virtuelle. À partir de repères dans le dos, lourd d'e/S et de MMU de la charge de travail vraiment les fringues VM performance. Leur indice de référence (à prendre avec un grain de sel car il est un fournisseur fourni statistique) suggère de 3,5 x vitesse de pénalité sur un OLTP de référence. Alors que c'est le constructeur a fourni l'on devrait garder à l'esprit:

  • Il repère les naïfs de la virtualisation et la compare à une para-virtualisé solution, non bare-metal performance.

  • OLTP référence aurez plus accès aléatoire I/O de la charge de travail, et passer plus de temps à attendre pour le disque cherche. Plus de disque séquentiel modèle d'accès (caractéristique de l' requêtes d'entrepôt de données) ont une pénalité plus élevée, et une mémoire-lourds opération (SSAS, par exemple, est un mémoire biblique de porc) qui a une grand nombre de TLB manque également encourir de pénalités supplémentaires. Cette signifie que les ralentissements sur ce type de traitement serait probablement plus prononcé que le OLTP référence peine cité dans le livre blanc.

Ce que nous avons vu ici, c'est que TLB accidents et les I/O sont très cher sur une machine virtuelle. Une bonne architecture avec paravirtualised des pilotes et du matériel de soutien dans la MMU permettra d'atténuer certains ou de tous les de ce. Cependant, je crois que Windows Server 2003 ne prend pas en charge paravirtualisation à tous, et je ne suis pas sûr de ce niveau de support est livré dans Windows server 2008. Il a certainement été mon expérience que la VM va radicalement ralentir un serveur lorsque vous travaillez sur un processus ETL et cube SSAS construit par rapport à relativement modeste spec matériel en métal nu.

8voto

Cade Roux Points 53870

SAN - bien sûr, et le clustering, mais en ce qui concerne la virtualisation - vous prendrez un coup de performance (peut ou non en valoir la peine):

http://blogs.technet.com/andrew/archive/2008/05/07/virtualized-sql-server.aspx

http://sswug.org a récemment pris des notes à ce sujet dans sa newsletter quotidienne

6voto

Joel Coehoorn Points 190579

Je voulais ajouter cette série d'articles par Brent Ozar:

Ce n'est pas exactement faisant autorité dans le sens que j'espérais (venant de l'équipe qui a construit le serveur, ou un manuel officiel d'un certain type), mais Brent Ozar est assez bien respecté et je pense qu'il fait un excellent travail couvrant toutes les questions ici.

3voto

David Robbins Points 6773

Nous utilisons un système de paie pour plus de 900 personnes sur VMWare sans aucun problème. Celui-ci est en production depuis 10 mois. C'est une charge de taille moyenne en ce qui concerne DB, et nous avons pré-alloué de l'espace disque dans VM pour éviter les problèmes d'E / S. Vous devez défragmenter le VM Host et la tranche de VM régulièrement afin de maintenir des performances acceptables.

2voto

Brian Points 236

Voici quelques VMWARE tests sur elle.. http://www.vmware.com/files/pdf/SQLServerWorkloads.pdf

Certes, ils ne pas le comparer à des machines physiques. Mais, vous pourriez probablement faire des tests similaires avec les outils qu'ils ont utilisés pour votre environnement.

Nous avons actuellement de SQL Server 2005 dans un environnement VMWARE. MAIS, c'est un très faiblement chargé de la base de données et il est grand. S'exécute sans problèmes.

Comme la plupart l'ont souligné, cela dépendra de votre charge de base de données.

Peut-être que vous pouvez convaincre le Département de l', de faire du bien tester avant de aveuglément la mise en œuvre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X