Exécution de 100 machines virtuelles sur un seul serveur hôte VMWare


24

J'utilise VMWare depuis de nombreuses années, exécutant des dizaines de serveurs de production avec très peu de problèmes. Mais je n'ai jamais essayé d'héberger plus de 20 VM sur un seul hôte physique. Voici l'idée:

  1. Une version allégée de Windows XP peut vivre avec 512 Mo de RAM et 4 Go d'espace disque.
  2. 5000 $ me donne une machine de classe serveur à 8 cœurs avec 64 Go de RAM et quatre miroirs SAS.
  3. Étant donné que 100 machines virtuelles mentionnées ci-dessus s'intègrent dans ce serveur, mon coût matériel n'est que de 50 $ par machine virtuelle, ce qui est super sympa (moins cher que la location de machines virtuelles chez GoDaddy ou tout autre hébergeur).

Je voudrais voir si quelqu'un est capable d'atteindre ce type d'évolutivité avec VMWare? J'ai fait quelques tests et suis tombé sur un problème étrange. Les performances des VM commencent à se dégrader considérablement une fois que vous avez démarré 20 VM. Dans le même temps, le serveur hôte ne présente aucun goulot d'étranglement des ressources (les disques sont inactifs à 99%, l'utlisation du processeur est inférieure à 15% et il y a beaucoup de RAM libre).

J'apprécierai si vous pouvez partager vos réussites autour de la mise à l'échelle de VMWare ou de toute autre technologie de virtualisation!


4
Quel produit VMware prévoyez-vous d'utiliser? ESX? ESXi? Serveur?
wzzrd le

2
Vous pouvez exécuter XP avec 256 sans trop de difficultés, surtout s'il s'agit de tâches légères. Microsoft requiert 64 mais 128 est "suffisant" technet.microsoft.com/en-us/library/bb457057.aspx
Matt Rogish

1
d'où achetez-vous vos serveurs? J'en veux un :)
warren

1
5000 USD seulement, pouvez-vous m'en vendre deux? :)
Taras Chuhay

Vous avez "cette quantité de CPU" dans votre serveur d'hébergement, et chaque machine virtuelle en recevra une part. De plus, esxi aura des frais généraux: "basculez vers cette machine virtuelle, gérez-la, passez à la suivante, etc.", plusieurs fois par seconde. Cela signifie que chaque machine virtuelle n'obtiendra qu'une fraction du processeur total. Plus il y a de VM, plus vous divisez votre CPU (et plus vous ajoutez également de surcharge, ce qui signifie qu'au lieu d'avoir 100 Vms, vous en avez en fait un peu plus).
Olivier Dulac

Réponses:


15

Oui, vous pouvez. Même pour certaines charges de travail Windows 2003, 384 Mo seulement suffisent, donc 512 Mo est une assez bonne estimation, même si elle est un peu élevée. La RAM ne devrait pas être un problème, ni le CPU.

Un 100 VMs est un peu raide, mais c'est faisable, surtout si les VMs ne vont pas être très occupées. Nous exécutons facilement 60 serveurs (Windows 2003 et RHEL) sur un seul serveur ESX.

En supposant que vous parlez de VMware ESX, vous devez également savoir qu'il est capable de surcharger la mémoire. Les machines virtuelles n'utilisent presque jamais leur ration de mémoire complète, donc ESX peut engager plus que la quantité de RAM disponible pour les machines virtuelles et exécuter plus de machines virtuelles qu'il n'en a officiellement.

Votre goulot d'étranglement ne sera probablement pas un processeur ou une RAM, mais des E / S. VMware revendique d'énormes quantités d'IOPS dans son marketing, mais lorsque les efforts se concrétisent, les conflits de réservation SCSI et la bande passante limitée vous arrêteront complètement avant de vous approcher des fanfaronnages IOPS VMware.

Quoi qu'il en soit, nous ne connaissons pas la dégradation des performances de 20 VM. Quelle version d'ESX utilisez-vous?


Merci Wzzrd! J'utilise actuellement VMWare Server 2.0, mais je prévois d'essayer ESX très bientôt. J'ai regardé très attentivement les E / S sur toutes les baies d'hôtes, et la seule façon dont j'ai pu maximiser les performances est de redémarrer plusieurs invités à la fois. Lorsque les invités effectuent une charge de travail légère ou restent inactifs, les disques hôtes sont inactifs à 99%. Donc, je soupçonne que quelque chose d'autre que CPU et IO ralentit toutes les machines virtuelles. Soit dit en passant, ils ralentissent considérablement - il faut 20 secondes pour ouvrir le menu Démarrer, et si j'exécute le Gestionnaire des tâches dans une machine virtuelle, le gestionnaire de tâches prend 90% de CPU - bizarre!
Dennis Kashkin

2
Cela serait dû au fait que vous utilisez VMware Server. VMware Server est une plate-forme de virtualisation au-dessus d'une autre plate-forme (Linux, le plus souvent), tandis qu'ESX est une plate-forme de virtualisation bare metal. Très différent, tant dans le concept que dans la façon dont il fonctionne.
wzzrd le

Malheureusement, lorsque le jour du patch est livré avec 100 vm, vous redémarrerez beaucoup de tapis en même temps;) Et le patch lui-même est difficile. Méfiez-vous d'un service pack - c'est là que la vraie douleur commence;)
TomTom

Arrêtez de vous tromper en pensant que le métal nu est quelque chose de spécial. ESXi n'est qu'un Linux dépouillé. Oui, Linux.
dresende

2
@dresende. Non, ça ne l'est pas. Croyez-moi.
wzzrd

11

Un problème majeur avec un tel environnement serait la prévention des catastrophes et la protection des données. Si le serveur meurt, 100 machines virtuelles meurent avec lui.

Vous devez planifier une sorte de basculement des machines virtuelles et planifier une sorte de gestion «extra-VM» qui protégera vos machines virtuelles en cas de panne. Bien sûr, ce type de redondance signifie une augmentation des coûts - c'est probablement la raison pour laquelle de nombreuses dépenses ne sont approuvées qu'après que ses avantages ont été constatés dans la pratique (par son absence).

N'oubliez pas non plus que l'hôte VM n'est qu'un des nombreux points de défaillance uniques:

  • Réseau - que faire si la carte réseau de l'hôte VM tombe en panne?
  • Mémoire - que faire si une partie de la mémoire de l'hôte VM se détériore?
  • CPU - si un coeur de CPU meurt, qu'advient-il des VMs?
  • Alimentation - existe-t-il un ou deux câbles d'alimentation?
  • Port de gestion - supposons que vous ne puissiez pas accéder à la gestion des hôtes de la machine virtuelle?

Ce n'est que quelques exemples: une infrastructure de VM massive nécessite une attention particulière à la prévention de la perte de données et à la prévention de la perte de VM.


2
Écoutez David. Vous souhaiterez une configuration N + 1, ce qui signifie que vous avez besoin d'au moins une machine inactive de rechange capable d'absorber toute la charge de travail d'une autre machine en cas de panne. Ma recommandation est un cluster à deux serveurs qui répartit la charge uniformément mais pourrait gérer indépendamment toute la charge de travail en cas de défaillance d'une machine.
Jason Pearce

4

Aucune déclaration sur la viabilité de cela en production, mais il y a une démo NetApp très intéressante où ils provisionnent des bureaux 5440 XP sur 32 hôtes ESX (soit 170 par hôte) en environ 30 minutes en utilisant très peu d'espace disque en raison de la déduplication contre la machine virtuelle commune images

http://www.youtube.com/watch?v=ekoiJX8ye38

Je suppose que vos limitations proviennent du sous-système de disque. Vous semblez avoir pris en compte la mémoire et l'utilisation du processeur en conséquence.


3

Je ne l'ai jamais fait - mais je vous promets que vous dépenserez beaucoup plus que sur le stockage pour obtenir suffisamment d'E / S pour prendre en charge autant de machines virtuelles que vous n'en aurez sur le matériel du serveur. Vous aurez besoin de beaucoup d'E / S si tous les 100 d'entre eux sont actifs en même temps. Pour ne pas paraître négatif, mais avez-vous également considéré que vous mettez beaucoup d'oeufs dans le même panier (on dirait que vous recherchez une solution à serveur unique?)


2
Je voudrais certainement créer plusieurs "paniers" et mettre en place des sauvegardes automatisées. De nos jours, les goulots d'étranglement d'E / S peuvent être facilement résolus avec les disques SSD. J'utilise des disques Intel MLC de 160 Go en production et ils sont spectaculaires. Vous obtenez essentiellement des performances d'E / S aléatoires 5 fois meilleures que les disques SAS haut de gamme (dans les configurations RAID simples).
Dennis Kashkin

1

Je serais très inquiet de la contention du processeur avec 100 machines virtuelles sur un seul hôte. Vous devez vous rappeler que le processeur n'est PAS virtualisé, donc chaque machine devra attendre l'accès au processeur. Vous pouvez commencer à voir la contention en regardant ESXTOP on m'a dit que plus de 5 dans le champ% RDY est très mauvais par les ingénieurs VMWare.

D'après mon expérience, j'ai vu environ 30 à 40 serveurs fonctionnant sur un hôte (sans en faire trop).


1

J'avais 10 hôtes sur VMWare Server 1.0.6 (sous Windows 2003) et cela rencontrait régulièrement des problèmes d'E / S (et si les versions nocturnes se chevauchaient avec quelque chose d'autre, alors elles auraient des problèmes). Après la mise à niveau de Windows vers ESXi U3, nous avons constaté que nos problèmes de performances avaient disparu (les versions nocturnes n'échouaient plus).

Notez également que même si les SSD ont un taux d'E / S bien plus élevé que les supports en rotation, il y a des cas où cela ne tient pas, comme certains types de modèles d'écriture (beaucoup de petites écritures dispersées sur le lecteur réduisent les performances à moins que le contrôleur n'ait un cache tampon d'écriture intelligent qui fait un bon travail sur les écritures scatter).

Je recommanderais de rechercher / tester les fichiers SWAP sur différents lecteurs si vous rencontrez des problèmes.


1

Si vous voulez le faire, je vous invite fortement à utiliser les nouveaux processeurs Intel 'Nehalem' Xeon 55xx - ils sont conçus pour exécuter des machines virtuelles et leur bande passante mémoire supplémentaire vous aidera énormément aussi. Oh, et si vous pouvez utiliser plus de disques plus petits que quelques grands, cela vous aidera beaucoup. Si vous pouvez également utiliser ESX v4 sur 3.5U4.


1

J'ai 20 machines virtuelles XP fonctionnant avec 512 Mo de RAM chacune sur une machine avec 16 Go de RAM. Moins que cela et ils s'échangent sur le disque et cela donne le goulot d'étranglement. Ce sont toujours des machines virtuelles XP actives.

VMware et sa fonction OverCommit devraient vous permettre de pousser plus de RAM vers chaque machine XP. Une machine similaire partagera les mêmes pages, ce qui pourrait réduire l'écriture sur le disque. C'est quelque chose que j'aimerais examiner pour notre configuration pour essayer d'ajouter plus de machines car nos machines virtuelles XP font 10-20 meg de trafic de disque continu.


1

Nous n'avons pas pu atteindre 100 invités satisfaits sur VMWare Server, mais nous avons constaté qu'ESXi faisait un bien meilleur travail. Ainsi, il semble que 100 XP vms ne soit pas un problème si vous utilisez ESXi et un serveur décent (quelques miroirs de disque pour répartir les E / S, quelques puces I7 et 64 Go de RAM). Il n'y a pas de délai visible pour les utilisateurs finaux et les ressources de l'hôte ne sont pas maximisées (la plus chaude est la CPU mais elle est généralement au moins à 70% inactive).

PS. Cette question a été postée par moi lorsque nous nous débattions avec VMWare Server.


0

La dernière fois que j'ai vérifié, VMware ne recommande pas plus de 4 VM par cœur de traitement pour ESX, en supposant un vCPU par VM.

Cela suggère que les frais généraux de gestion deviennent un facteur.

Je suis très intéressé de voir si vous pouvez réellement atteindre un facteur 4x sur une boîte à 8 cœurs.


1
C'est donc avant ESX 3.5U2 - le document de configuration maximale pour la mise à jour 2 indique 8 à des fins générales, mais cela passe à 11 pour les charges de travail VDI. Je suis presque sûr d'avoir vu quelque chose que je ne peux pas trouver par moi-même qui a augmenté cette recommandation VDI à 19 avec la mise à jour 3 ou 4. Pour vSphere, cette limite est maintenant de 20. Recherchez VMware ESX Configuration Maximums pour les documents officiels de VMware.
Helvick

Mes machines virtuelles restent inactives la plupart du temps. Les gens se connectent peut-être plusieurs fois par jour pour exécuter des logiciels légers. J'ai confirmé que ces machines virtuelles créent une très faible surcharge de processeur sur l'hôte lorsqu'elles sont inactives (20 machines virtuelles ajoutent jusqu'à 9% d'utilisation du processeur sur la base d'un système double quadcore). Pourriez-vous vous rappeler comment la limite de quatre VM par CPU est justifiée? Pensent-ils aux serveurs Web ou aux instances d'OS de bureau?
Dennis Kashkin
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.