Les machines virtuelles et la charge de travail élevée des E / S, est-ce toujours sain d'esprit?

14

J'ai vu sur de nombreux services de virtualisation (Azure) et produits (vmware, kvm, hyperv) des E / S et des blocages système sous une charge de travail d'E / S élevée.

Mes questions sont:

  • Est-il toujours judicieux d'utiliser une solution virtualisée lors de l'exécution de charges de travail lourdes d'E / S?
  • Quelles sont les meilleures pratiques concernant ce genre de choses?
  • Qu'est-ce qui cause ces problèmes, existe-t-il des goulots d'étranglement bien connus du système ou s'agit-il simplement de conflits excessifs?
chasse bryan
la source
Document de recherche IBM pertinent . J'envisagerais également d'utiliser des conteneurs, par exemple Docker. D'après le document: "Les conteneurs peuvent également éliminer la distinction entre les serveurs non virtualisés IaaS et" bare metal "[...] car ils offrent le contrôle et l'isolement des VM avec les performances du bare metal."
oleksii
1
1. Quelles recherches avez-vous faites? Nous nous attendons à ce que vous fassiez une quantité importante de recherches avant de demander. Montrer vos recherches aide les autres et aide les gens à vous donner de meilleures réponses. Voir serverfault.com/help/how-to-ask et le centre d'aide . 2. Cette question est assez large, peut-être trop large pour ce site. Le conseil standard est: une question par question. 3. Ce site ne convient pas aux questions appelant une opinion. Pouvez-vous demander quelque chose de plus spécifique et de plus objectivement responsable que les "meilleures pratiques concernant ce genre de choses"?
DW
1. 10 ans de fonctionnement de diverses machines virtuelles, kvn, xen, virtualbox, amazon, azure, hyperv. J'ai trouvé que les performances étaient généralement désastreuses, mais il y a tellement de battage médiatique et de capital-risque qui circulent que l'orthodoxie informatique actuelle est que tout doit être virtualisé. Vous vous demandez si ce n'est que moi ou si d'autres professionnels des opérations ressentent également un certain scepticisme.
bryan hunt
2
Si vous avez trouvé que les performances étaient GÉNÉRALEMENT désastreuses, alors - après 10 ans de travail avec la virtualisation - il est temps d'accepter la défaite en tant qu'administrateur et de chercher quelque chose que vous pouvez faire, alors que le reste du monde n'a aucun problème à le faire. Sérieusement, je pense que vous dramatisez ici. Ou ne se rend jamais compte que la virtualisation doit acheter un sous-système d'E / S décent. Je trouve toujours horrible lorsque les gens chargent plus de 10 machines virtuelles - sur un disque de bureau et se plaignent de la vitesse d'E / S.
TomTom
C'est plus une observation. Je n'ai pas toujours mon mot à dire sur la solution choisie. Je suis ops. Je garde tout ce qui est jeté sur moi et fonctionne.
bryan hunt

Réponses:

19

Est-il toujours judicieux d'utiliser une solution virtualisée lors de l'exécution de charges de travail lourdes d'E / S?

Oui, très sain d'esprit, en fait, pour la plupart des organisations, le virtuel est désormais la valeur par défaut et faire des choses sur des boîtes physiques est vraiment l'exception. Nous avons plus de 100 000 machines virtuelles de toutes formes et beaucoup d'entre elles sont> 40 000 IOPS sans aucun problème.

Quelles sont les meilleures pratiques concernant ce genre de choses?

L'essentiel ici n'est pas de savoir s'il est virtualisé ou non - c'est de bien comprendre vos besoins d'E / S et de faire correspondre les ressources de stockage virtuel. C'est aussi simple que cela, si vous savez ce dont vous avez besoin / voulez et que vous avez le budget pour l'adapter à vos systèmes de stockage, alors la couche de virtualisation joue vraiment peu ou pas de rôle - à moins que vous ne poussiez VRAIMENT les choses bien sûr (je parle des dizaines / centaines de millions de IOP).

Qu'est-ce qui cause ces problèmes, existe-t-il des goulots d'étranglement bien connus du système ou s'agit-il simplement de conflits excessifs?

Le manque de compréhension ou d'essayer d'en faire trop avec trop peu de ressources de stockage, c'est ce qui cause normalement des problèmes aux gens.

Chopper3
la source
10

Est-il toujours judicieux d'utiliser une solution virtualisée lors de l'exécution de charges de travail lourdes d'E / S?

Un serveur de base de données tire-t-il régulièrement un nombre d'E / S aléatoire de 1 Go / seconde? Ayez-en un ici.

Ou un serveur de fichiers virtuel fournissant jusqu'à 600 Mo / seconde à un cluster HPC. Celui-ci exécute 8 Velicoraptors dans un Raid 10 dédié.

Quelles sont les meilleures pratiques concernant ce genre de choses?

Fournissez beaucoup d'E / S. Je pense que cette machine virtuelle SQL a environ 8 ou 10 SSD dédiés.

À l'origine de ces problèmes, existe-t-il des goulots d'étranglement bien connus,

Les gens qui ne font pas de mathématiques de base. Si le sous-système d'E / S n'est pas capable de gérer la charge, il ne le fera pas non plus sous virtualisation. Besoin de BEAUCOUP d'E / S - puis fournissez un sous-système de stockage dédié de taille appropriée.

TomTom
la source
10
"Fournir beaucoup d'interface utilisateur" - vous vouliez probablement dire IO
oleksii
2

Outre les mathématiques de base et le concept selon lequel vous avez toujours besoin des mêmes E / S que non virtualisées, il existe également une qualité de service / hiérarchisation. La plupart des plates-formes de virtualisation offrent au moins un support de base pour cela, cela aidera beaucoup à empêcher le mauvais fonctionnement de la machine virtuelle de développement de bloquer votre base de données de production.

Milo de Vries
la source
1
Ouais. Besoin de 5000IOPS alors un disque dur avec 350 ne le coupera pas. Chargez plus de vms sur le même disque et non, cela ne fonctionnera pas comme par magie. Je suis toujours étonné de voir combien de personnes ignorent les mathématiques de base.
TomTom