Exécuter quoi que ce soit à l'intérieur d'une machine virtuelle aura un certain impact sur les performances , mais dans quelle mesure cela impactera- t-il réellement les performances d'un système de base de données?
J'ai trouvé ce document de référence académique avec quelques points de repère intéressants, mais il s'agissait d'un test limité utilisant uniquement Xen et PostgreSQL. La conclusion était que l'utilisation d'une machine virtuelle "n'entraîne pas un coût élevé en performances" (bien que vous puissiez penser que les données réelles indiquent le contraire).
Quels sont les inconvénients techniques, administratifs et autres associés à l'exécution d'une base de données au sein d'une machine virtuelle?
S'il vous plaît, postez des réponses qui peuvent être étayées par des faits objectifs. La spéculation et tout autre argument semi-religieux ne m'intéressent pas (la passion geek est bonne à bien des égards, mais cela ne nous aidera pas ici).
Cela étant dit,
- Quels problèmes apparaissent lors de l'exécution de la base de données sur une machine virtuelle? (s'il vous plaît poster des références)
- Ces problèmes sont-ils importants?
- Sont-ils importants uniquement dans certains scénarios?
- Quelles sont les solutions de contournement?
Réponses:
Bien que de nombreux fournisseurs de bases de données aient mis beaucoup de temps à le faire, ils prennent maintenant presque tous officiellement en charge leurs logiciels fonctionnant dans un environnement virtualisé.
Nous utilisons beaucoup d'instances Oracle 11g sous Linux en plus d'ESXi, et il est certainement possible d'obtenir de très bonnes performances. Comme pour toute mise à l'échelle matérielle, vous devez simplement vous assurer que l' hôte de virtualisation dispose de beaucoup de ressources (RAM, CPU) et que votre couche de disque est en mesure de fournir les performances d'E / S souhaitées.
la source
Comme le dit ErikA, cela devient de plus en plus courant. Je suis dans le camp SQL Server et je n'ai personnellement aucun système de production sous VM, mais je n'hésiterais pas à le faire (après un peu plus d'étude sur le sujet). Il y a cependant des éléments à prendre en compte avant de suivre cette voie (du moins pour SQL Server). Disque IO (comme d'autres l'ont mentionné) et l'allocation de mémoire ne sont que 2 exemples. Les choses seront différentes entre les différents hyperviseurs.
Brent Ozar est un expert reconnu de la virtualisation de SQL Server, en particulier de VMWare. Je recommanderais fortement de lire son matériel.
http://www.brentozar.com/community/virtualization-best-practices/
la source
Il y a peut et alors il faut . Une corvette peut aller à 150 mph, mais devriez-vous sur les autoroutes publiques? Vous pouvez vous nuire inutilement.
Les bases de données sont des systèmes d'exploitation invités. De par leur conception, au démarrage, ils saisissent des blocs d’une ressource et la gèrent directement pour des raisons de performances. Dès que vous faites du système d'exploitation principal du serveur de base de données un invité dans un environnement d'hébergement virtualisé, vous placez une couche d'arbitrage avec l'hyperviseur entre l'élément alloué au bloc de disque et de RAM et le serveur de base de données. Ça va ralentir. Plus vos requêtes sont inefficaces, plus elles ralentiront. Aujourd'hui, ces inefficacités peuvent être masquées sur du matériel dédié, mais dès que vous introduisez l'arbitrage dans votre ressource dépendante, vous allez le découvrir très vite.
Ce que beaucoup de compteurs de beans exigeant la virtualisation ne reconnaissent pas, c'est que les serveurs de base de données, en tant que systèmes d'exploitation invités, offrent leur propre couche de consolidation. Il n'y a aucune raison pour que vous ne puissiez pas déplacer, consolider plusieurs instances de base de données logiques sur un serveur physique, même au point de déplacer des adresses IP, de configurer des noms d'hôte supplémentaires, etc., pour permettre cette fusion naturelle des services. Et, avec ce modèle, non seulement vous conservez les économies de coûts que la direction préconise pour un nombre réduit d'hôtes physiques, mais vous conservez le blocage de l'accès aux ressources physiques sans l'empiétement de l'hyperviseur arbitraire, ce qui peut parfois permettre de prendre des décisions utiles. autres.
Il en va de même pour les autres systèmes d'exploitation invités, tels que Java. Les solutions de virtualisation sont généralement des environnements très chargés et l'hyperviseur doit prendre de nombreuses décisions pour déterminer qui "reçoit le jeton" sur une ressource. Chaque fois que vous pouvez éliminer cette couche, vous vous en tirerez mieux.
Coalescez plusieurs instances en utilisant d'abord la couche du système d'exploitation invité naturel. Il est fort probable que vous pourrez atteindre plus facilement vos objectifs de consolidation de la plate-forme et de performances.
la source
Il y a deux choses à réaliser ici:
Cela dit, lorsque je travaille, notre installation Sql Server est l’un des deux serveurs que je n’ai pas l’intention de virtualiser à l’avenir (l’autre est le contrôleur de domaine principal).
la source
Exécuter SQL Server est un ordinateur virtuel, à condition que vous puissiez lui fournir suffisamment de ressources pour exécuter votre application. Si, dans le monde physique, vous avez besoin de 24 cœurs et de 256 Go de RAM, vous devez fournir 24 vCPU et 256 Go de RAM dans le monde virtuel.
Je venais d' écrire un article dans le magazine SQL Server des derniers mois, consacré à l'exécution de SQL Server sous vSphere de VMware.
la source
J'exécute deux bases de données, une PostgreSQL et l'autre MySQL, dans un environnement virtuel (Xen) où les dom0s sont hautement disponibles. Les systèmes de fichiers domU sont tous situés sur un LUN SAN iSCSI, découpé avec des volumes logiques LVM2. La base de données MySQL est uniquement destinée à Cacti, elle n’est donc pas très utilisée et se trouve également sur le LUN iSCSI.
La base de données PostgreSQL est la base de données de notre environnement de transfert. Par conséquent, son utilisation est supérieure à celle de la base de données MySQL. Pour cette raison, la base de données est située sur un ensemble RAID10 local et DRBD est répliqué sur le deuxième nœud du cluster. Cependant, en termes de charge réelle, cette base de données de transfert ne connaît pas une charge très élevée. Ce qui, à mon avis, en fait un bon / bon candidat pour la virtualisation.
Parmi les avantages pour notre organisation, il y avait la consommation d'énergie réduite, un espace de stockage réduit et une surcharge de matériel administratif.
Notre base de données de production principale, en revanche, je ne peux pas imaginer devenir virtuelle ....
la source
Je travaille avec les serveurs MSSQL et MySQL sur de nombreux serveurs. Il y a quelques années, j'hésitais à configurer des serveurs SQL sur des ordinateurs virtuels, car j'avais entendu parler des problèmes de performances liés à l'exécution d'un serveur SQL sur un ordinateur virtuel. Cependant, j'ai été surpris après l'installation de mon premier couple de serveurs SQL et je n'ai constaté aucun changement dans les performances. De plus en plus de serveurs sur lesquels je travaille sont sur VM et presque tous les grands clients d'entreprise pour lesquels je travaille ont virtuellement des serveurs SQL.
Oui, la machine virtuelle ajoute des frais généraux et si vous hébergez plusieurs machines virtuelles sur une même boîte, vous aurez besoin d’un bon serveur. Un problème de ressource commun à rechercher consiste à ajouter des machines virtuelles supplémentaires et à réduire les ressources disponibles. Il est courant de planifier une certaine croissance, mais si vous achetez votre serveur pour héberger 2 ou 3 ordinateurs virtuels et que ses 10 ordinateurs en fonctionnement sont en train de subir de graves problèmes de performances.
Je mentirais si je disais que je n'ai jamais vu de problèmes de performances lors de l'exécution d'un serveur SQL sur une machine virtuelle. Mais j’ai appris que si vous constatez de mauvaises performances, il ya probablement un problème avec l’environnement.
la source