Question

La virtualisation des serveurs est un problème majeur de nos jours. Je dois donc installer certains de nos logiciels sur un serveur virtualisé et voir ce qui se passe. En résumé: un transfert rsync met rapidement le serveur virtualisé à genoux. L'hôte de virtualisation est une machine imposante sans autre charge. Je ne pense pas que cela devrait arriver. Haut affiche des charges moyennes élevées et une unité centrale proche de 100%. Il y a un énorme goulot d'étranglement quelque part.

Je suis plus un programmeur qu'un administrateur système, je ne sais pas comment résoudre ce problème en dehors de Googling aléatoire. Je soupçonne que je ne suis pas seul dans ce domaine.

Ce que j'aimerais voir ici, ce sont des conseils généraux sur la virtualisation, ainsi que des pointeurs vers de bons articles et autres ressources, que nous et d'autres pourrions utiliser pour nous éduquer.

  • Quels outils (même les outils Unix standard) peuvent être utilisés pour localiser les goulots d'étranglement?
  • Quelles mesures doivent être suivies pour que tout se passe bien?
  • Quels types de choses peuvent être efficacement virtualisées?
  • Quels types de configuration sont voués à l'échec?

Je m'excuse de l'ampleur de la question. Je n'ai tout simplement pas les connaissances nécessaires pour poser des questions spécifiques utiles à ce sujet.

Modifier: Pour en savoir plus sur mon problème spécifique:

  • paravirtualisation XAN, 3 x invité CentOS
  • Tous les invités sur les disques SCSI locaux, il existe un contrôleur RAID entièrement matériel
  • rsyncd s'exécutant sur 1 os invité, transfert initié depuis un serveur distant non virtualisé via un réseau local 100 Mbps

Comme je l'ai déjà dit, je ne peux vraiment pas fournir une tonne de données utiles. Je ne m'attends pas vraiment à trouver une solution directe à ce problème, je serais heureux de pouvoir indiquer les points de départ pour développer les compétences requises pour mieux comprendre ce type de problèmes.

Était-ce utile?

La solution

J'allais mettre cela dans un commentaire, mais je pense que c'est plus utile à l'air libre:

Pourriez-vous ajouter plus de détails sur votre configuration:

  • Quel serveur VM?
    (Serveur VMware, VMware ESX, Serveur virtuel MS, MS Hyper-V, autre chose?)
  • Quel système d'exploitation pour le ou les invités?
    (Windows, Linux, 32 bits, 64 bits?)
  • Où sont stockés les invités?
    (Disque local, ou sur un NAS ou un SAN?)
  • Avez-vous synchronisé des invités sur le même serveur de machine virtuelle ou entre un invité et un serveur physique?
  • Si vous êtes sur un réseau, à quelle vitesse se trouve le réseau?

Dans tout environnement, l’optimisation des performances implique la collecte de données à 90% et l’analyse à 10%. Les environnements virtualisés ont plus de variables à prendre en compte que les environnements physiques, mais plus important encore, leur courbe de réponse est différente de celle des environnements physiques. Certaines applications peuvent fonctionner mieux dans un environnement virtualisé que dans un environnement physique. d'autres ne le feront pas. Vous devez comprendre les exigences de l'application ainsi que les contraintes de la mise en œuvre.

Je ne pense pas qu'il existe des applications exclusivement logicielles qui ne puissent pas être déployées avec succès sur des serveurs virtuels, si vous portez une attention particulière aux détails. (Les applications nécessitant un matériel personnalisé qui ne peut pas être virtualisé avec succès constituent un problème différent.)

Autres conseils

J'utilise rsync pour garder certaines parties de notre (tout nouvel) environnement virtuel synchronisées sans aucun problème. Je ne pense pas qu'il s'agisse d'un problème de virtualisation, mais bien d'un problème d'E / S, que vous semblez avoir déjà identifié.

J'ai constaté que la virtualisation est très pénalisante pour les disques durs et que cela ne fait qu'empirer à mesure que le nombre d'invités que vous avez sur votre ordinateur hôte augmente. Pour les machines très gourmandes en E / S, envisagez de segmenter leur accès au disque en l'éloignant des autres hôtes. Utilisez-vous un type de technologie SAN? Nous avons trouvé cela très utile sur mon lieu de travail (nous utilisons deux serveurs Sun Intel à 8 cœurs et une baie iSCSI de 1 To à 12 disques).

Votre matériel est-il entièrement pris en charge par le fournisseur de logiciel de virtualisation? Si vous essayez d'utiliser du matériel non pris en charge, il est probable que votre contrôleur de disque n'utilisera pas les meilleurs pilotes, ce qui expliquerait les accès lents à votre disque.

Vous pouvez utiliser iostat sur Linux / Unix pour obtenir des informations sur les E / S. Il existe également iotop , même s'il n'est pas encore inclus dans de nombreuses distributions.

Je dirais que c'est un problème d'E / S. Dans les environnements virtuels, l’un des facteurs les plus importants qui affectent les performances est l’état du disque de la machine hôte. Les choses que nous faisons pour optimiser les performances sont les suivantes:

  1. Allocation de disque fixe. De cette manière, vous obtenez un bloc d’espace disque contigu pour la machine virtuelle.
  2. Planifiez une défragmentation du système d'exploitation VM Slice et du lecteur du serveur hôte. La fragmentation est votre ennemi.
  3. Assurez-vous de terminer les sessions de serveur correctement. Lorsque vous faites rebondir le système d’exploitation virtuel, n’arrêtez pas simplement la tranche de la machine virtuelle, car cela provoquerait une fragmentation énorme du disque. Le système d’exploitation virtuel doit exécuter le processus de fermeture / redémarrage.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top