Choix d'une technologie SAN pour des centaines de serveurs Web VM

15

Le problème

Nous avons un problème avec les performances sur une plate-forme existante, donc je me tourne vers l'esprit de la ruche pour un deuxième avis à ce sujet. Le problème de performances jusqu'à présent concerne l'IOPS plutôt que le débit.

Le scénario

Un centre lame de 16 hôtes, chacun avec 64 Go de RAM. (C'est un Dell M1000e avec M610, mais ce n'est probablement pas pertinent) 500 machines virtuelles, tous les serveurs Web (ou les technologies Web associées telles que MySQL, les équilibreurs de charge, etc.), environ 90% sont Linux et le reste de Windows. L'hyperviseur est VMWare vSphere. Nous devons fournir l'hôte HA, donc le stockage local est hors service. En tant que tels, les hôtes n'ont qu'une carte SD pour démarrer.

Un peu de réflexion

À l'heure actuelle, nous comptons jusqu'à 6 hôtes (le centre lame sera à pleine capacité dans un an à la croissance actuelle) et nous exécutons iSCSI sur un Dell MD3220i w / MD1220 pour l'expansion.

Options possibles que nous avons envisagées et réflexions immédiates avec elles:

  • Répartir les machines virtuelles dans les banques de données NFS et exécuter un stockage NFS qui répond aux exigences de performances pour un nombre donné de machines virtuelles. NFS semble moins cher à l'échelle, et a été un peu plus abstrait que le stockage au niveau du bloc afin que nous puissions le déplacer selon les besoins.
  • Ajout de contrôleurs / cibles MD3220i supplémentaires. Nous craignons cependant que cela puisse avoir un effet négatif sur la façon dont VMWare gère de nombreuses cibles.
  • Échange de tous les disques de Nearline SAS vers SSD. Cela devrait résoudre entièrement le problème des IOPS, mais a pour effet secondaire évident de réduire notre capacité de stockage. De plus, c'est toujours très cher.
  • vSphere 5 dispose d'un dispositif de stockage. Nous n'avons pas fait beaucoup de recherches, mais cela doit bien fonctionner?

La question

Quel type de stockage feriez-vous sous tout cela? Il n'aurait pas besoin d'évoluer vers un autre centre de serveurs lame, il devrait simplement fournir des performances relativement bonnes pour toutes ces machines virtuelles.

Je ne cherche pas de réponses "Acheter SAN x parce que c'est la meilleure". Je recherche des réflexions sur les différentes technologies SAN (iSCSI, FC, FCoE, InfiniBand, NFS, etc.), les différents types de stockage (SATA, SAS, SSD) et les méthodologies de gestion du stockage pour 100s de VMs (Consolidation, Séparation , Sharding, etc.).

Absolument toutes les pensées, liens, guides, pointeurs, etc. sont les bienvenus à ce sujet. J'aimerais également entendre des réflexions sur les options ci-dessus que nous avons déjà envisagées.

Merci d'avance pour toute contribution!

Mise à jour du 5 mars '12

Des réponses fantastiques jusqu'à présent, merci beaucoup à tous!

En partant des réponses à cette question jusqu'à présent, je commence à penser que l'itinéraire suivant est le chemin:

  • Étendez le stockage disponible au cluster VMWare et placez les disques VM sur un stockage adapté à leurs charges de travail.
  • Utilisez potentiellement un SAN capable de gérer automatiquement le placement des données sur un stockage approprié.
  • Infiniband semble être le plus rentable pour obtenir la bande passante requise avec les hôtes à pleine capacité.

Il semble que cela vaudrait la peine de faire appel aux services de prévente d'un grand fournisseur de SAN pour se faire une idée du scénario.

Je vais continuer à considérer ce problème pendant un certain temps. En attendant, plus de conseils reçus avec gratitude!

SimonJGreen
la source
Mellanox propose également un commutateur \ nic de 40 Go qui est assez extrodinaire, très proche de l'infinibande en termes de $ / performance. À ce stade, je considérerais un nexenta avec quelques cartes de 40 Go comme une option viable.
tony roth

Réponses:

13

La clé d'une bonne plate-forme de stockage VMWare est de comprendre quel type de charge VMWare génère.

  • Tout d'abord, étant donné que vous hébergez de nombreux serveurs, la charge de travail est généralement aléatoire. Il existe de nombreux flux d'E / S en même temps, et peu d'entre eux peuvent être mis en cache avec succès.
  • Deuxièmement, c'est variable. Pendant les opérations normales, vous pouvez voir 70% de lectures aléatoires, mais à l'instant où vous décidez de déplacer une machine virtuelle vers un nouveau magasin de données ou quelque chose, vous verrez une écriture séquentielle massive de 60 Go. Si vous ne faites pas attention à l'architecture, cela peut paralyser la capacité de votre stockage à gérer les E / S normales.
  • Troisièmement, une petite partie de votre environnement génère généralement une grande partie de la charge de travail de stockage.

La meilleure façon d'aborder la création de stockage pour une plate-forme VMWare est de commencer par les fondamentaux.

  • Vous devez pouvoir gérer une charge de travail de lecture aléatoire importante, ce qui signifie des disques plus petits et plus rapides, ainsi que éventuellement un SSD. La plupart des systèmes de stockage modernes vous permettent de déplacer automatiquement les données en fonction de la façon dont elles sont accessibles. Si vous prévoyez d'utiliser un SSD, vous devez vous assurer que c'est ainsi que vous l'utilisez. Il devrait être là pour réduire progressivement les points chauds. Que vous utilisiez ou non un SSD, il est avantageux de pouvoir mettre tout le travail sur tous les disques, donc quelque chose avec un type de pool de stockage serait bénéfique.
  • Vous devez avoir la possibilité de traiter des écritures volumineuses intermittentes, qui ne se soucient pas autant de la vitesse de rotation des disques sous-jacents, mais se soucient de l'efficacité de la pile du contrôleur et de la taille du cache. Si vous avez mis en cache la mise en cache (ce qui n'est pas facultatif, sauf si vous êtes prêt à revenir aux sauvegardes chaque fois que vous rencontrez une panne de contrôleur), la bande passante entre les deux caches utilisés pour la mise en miroir sera votre goulot d'étranglement pour les grandes écritures séquentielles, généralement. Assurez-vous que tout ce que vous obtenez a une interconnexion de contrôleur (ou cluster) à grande vitesse pour la mise en cache d'écriture. Faites de votre mieux pour obtenir un réseau frontal haut débit avec autant de ports que possible, tout en restant réaliste sur le prix. La clé d'une bonne performance frontale est de répartir votre charge de stockage sur autant de ressources frontales que possible.
  • Vous pouvez réduire considérablement les coûts en disposant d'un niveau de stockage à faible priorité, ainsi que d'un provisionnement fin. Si votre système ne migre pas automatiquement des blocs individuels vers des disques gros / lents bon marché (comme SAS ou SATA nearline avec 7200 tr / min et 2 To + tailles), essayez de le faire manuellement. Les gros disques lents sont d'excellentes cibles pour les archives, les sauvegardes, certains systèmes de fichiers et même les serveurs à faible utilisation.
  • Insistez pour que le stockage soit intégré à VAAI afin que VMWare puisse désallouer les parties inutilisées des VM ainsi que les banques de données.
Basilic
la source
Quelques excellents commentaires là-bas, merci. Certainement quelque chose à aller réfléchir.
SimonJGreen
10

Mes gros déploiements VMWare sont NFS et iSCSI sur 10 GbE. Cela signifie des HBA 10 GbE à double port dans les serveurs, ainsi que la tête de stockage. Je suis un fan du stockage basé sur ZFS pour cela. Dans mon cas, il s'agit d'un NexentaStor commercial , mais certains choisissent de rouler le leur.

Les principales fonctionnalités du stockage basé sur ZFS dans ce contexte seraient la fonctionnalité de mise en cache ARC / L2ARC, vous permettant de hiérarchiser le stockage. Les données les plus actives trouveraient leur chemin dans le stockage RAM et SSD en tant que deuxième niveau. L'exécution de votre pool de stockage principal à partir de disques SAS 10 000 ou 15 000 serait également bénéfique.

Il s'agit d'un autre cas de profilage et de compréhension de votre charge de travail. Travaillez avec quelqu'un qui peut analyser vos modèles de stockage et vous aider à planifier. Côté ZFS / NexentaStor, j'aime PogoStorage . Sans ce type d'informations, la méthode de transport (FC, FCoE, iSCSI, NFS) peut ne pas avoir d'importance. Avez-vous une surveillance de votre infrastructure existante? À quoi ressemble l'activité d'E / S maintenant?

ewwhite
la source
Quelle est la taille de ces déploiements par curiosité? Et quelle sorte de charge de travail?
SimonJGreen
Plusieurs hôtes. Le plus grand a 90 machines virtuelles à usage mixte, y compris Linux, Windows infra (File / AD / Exchange), VDI et les systèmes de base de données. La RAM sur les unités de stockage est élevée (96 Go +) et j'ai 1,2 To de cache de lecture L2ARC sur les SSD d'entreprise.
ewwhite
Vous devrez pardonner mon ignorance ici, et pour être clair, je ne doute pas que vous faites la bonne chose. Pourquoi avez-vous autant de RAM dans les unités de stockage? Est-il utilisé pour les tampons?
SimonJGreen
2
Ah je viens de lire sur ZFS et ARC / L2ARC. C'est une sauce géniale :)
SimonJGreen
8

La question clé est: "où est le goulot d'étranglement?" Vous mentionnez les IOPS, mais cela signifie-t-il que vous avez identifié positivement les disques eux-mêmes comme étant le goulot d'étranglement, ou simplement que les ports SAN ne fonctionnent pas à pleine capacité, ou que les VM sont bien plus attendues que vous ne le souhaiteriez?

Si vous avez définitivement identifié que les disques sont le facteur limitant, alors passer à NFS ou à l'infinibande ou tout ce qui ne fera pas le squat pour vos performances - vous avez besoin de SSD (ou au moins d'un stockage hiérarchisé avec SSD dans le mélange) ou un ensemble entier de broches (une solution qui est devenue beaucoup plus chère récemment depuis que la production mondiale de moteurs pas à pas a été rejetée dans l'océan).

Si vous n'êtes pas sûr à 100% où se trouve le goulot d'étranglement, vous devez d'abord le trouver - échanger des parties de votre infrastructure de stockage plus ou moins au hasard en fonction des suppositions des autres ici ne va pas être très efficace (surtout compte tenu du coût des modifications à mettre en œuvre).

womble
la source
absolument correct, je suppose toujours que la personne qui pose la question a fait ses devoirs. Mais cela étant dit, après avoir fait pas mal de consultations sur les performances, j'abandonne la plupart du temps et je dis d'ajouter plus ou plus de disques et plus de 98%, le problème est résolu. Les 2% restants sont surchargés au-delà de toute croyance.
tony roth
4
"Je suppose toujours que la personne qui a posé la question a fait ses devoirs" - hypothèse baaaaaad ...
womble
Cette réponse est parfaite. À de nombreuses reprises, je me suis attaqué à un problème comme celui-ci et j'avais une idée préconçue de ce qu'était le problème. Neuf fois sur dix, cela se termine en larmes lorsque j'apprends que je n'en savais tout simplement pas assez sur le problème. Profilez soigneusement, déterminez quel est le goulot d'étranglement, puis continuez. Vous pouvez demander de l'aide à "l'esprit de la ruche" ou vous tourner vers un fournisseur de SAN pour obtenir de l'aide. De plus, si vous rencontrez des problèmes de profilage, NetApp et / ou EMC se feront un plaisir de vous aider à déterminer vos statistiques, puis à dimensionner une solution pour vous. Les deux ont un bon logiciel pour le faire.
SvrGuy
Je basais ce diagnostic sur la sortie combinée de esxtoptous les hôtes (montrant l'utilisation du disque), en prenant le total de CMD / s et en le comparant aux références sur le SAN que nous utilisons. Le CMD / s total est constamment élevé lorsque l'on prend les résultats de référence comme titre. Les SSD semblent définitivement être une bonne option du point de vue technique, ils sont tout simplement horriblement chers encore en Go / £. Cela pourrait être une solution avec un stockage à plusieurs niveaux. Sur une note / FYI, selon un récent communiqué de presse, j'ai reçu WD sont de retour aux niveaux de production sur les disques.
SimonJGreen
Comment la référence sur le SAN a-t-elle été réalisée? Le facteur limitant pourrait toujours être le réseau, par opposition aux disques eux-mêmes. Au moins, vous avez un point de référence pour commencer, si vous voulez commencer à jouer avec différentes choses pour accélérer les choses, ce qui est d'une importance cruciale.
womble
4

Si vous voulez iscsi ou nfs, vous voudrez au minimum quelques ports 10 / 40gb ou infiniband qui est de loin l'option la moins chère, mais les solutions de stockage natives pour infiniband semblent limitées. Le problème sera le module pour le bladecenter quelles sont ses options, généralement 8 Go fc ou 10 \ 1 gbe et peut-être infinibande. Notez que l'infiniband peut être utilisé avec nfs et rien ne lui est fermé en termes de performances \ prix. si le centre de la lame prend en charge qdr infiniband, je le ferais avec un hôte linux d'une sorte avec un qdr infiniband tca via nfs. Voici un bon lien décrivant ce http://www.zfsbuild.com/2010/04/15/why-we-chose-infiniband-instead-of-10gige

mais si le bladecenter peut prendre en charge l'infinibande qdr et que vous pouvez vous permettre une infinibande native, c'est la solution que vous devez choisir.

Actuellement, vous pouvez obtenir des commutateurs de 40 Go beaucoup moins chers (c'est une pensée étrange) que des commutateurs de 10 Go, mais je doute que votre centre de lame supporte cela.

Tony Roth
la source
Ce sont les options de connectivité du centre lame: dell.com/us/enterprise/p/poweredge-m1000e/pd Infiniband semble bon, et pour cette quantité de machines virtuelles invitées, le coût est justifiable. Que feriez-vous côté SAN?
SimonJGreen
tout ce que Dell a qui prend en charge l'infiniband devrait être votre solution san.
tony roth
ne semble pas que Dell ait un stockage basé sur IB, donc je pense que cette option pourrait être un étirement dans ce cas. Sun et SGI ont tous deux des SAN basés sur IB qui ne savent pas quels sont les coûts.
tony roth
Ils n'offrent pas de stockage IB, mais ils offrent une connectivité IB. Je n'ai aucun scrupule à utiliser un autre fournisseur de stockage, nous n'avons aucun amour pour Dell à cet égard.
SimonJGreen
1
alors sun ou sgi auront une solution pour vous, vous ne savez pas quels sont les numéros de modèle actuels.
tony roth
-3

Le stockage local est épuisé? Je suis assez satisfait du débit d'écriture sur mes RAID 5 locaux - mis en miroir avec DRBD8 sur le partenaire de cluster de ma machine XEN ... (mais ce n'est "pas pris en charge", bien sûr).

En dehors de cela, je suis sûr que mySQL est votre problème de performances (je n'ai jamais vu de pire base de données). Essayez de le régler et / ou essayez de mettre la base de données entière dans le cache du système de fichiers (pour un accès en lecture) ...

Nils
la source
L'OP dispose d'une solution VMWare existante et fonctionne avec des hôtes sans disque. Le stockage local n'a pas de sens.
ewwhite
Le stockage local peut également inclure l'utilisation de lames de stockage locales. Mais VMWare ne le supportera pas, je suppose.
Nils
Je ne crois pas que Dell propose des lames de stockage locales - et je ne suis pas sûr d'avoir vu celles-ci avec quelqu'un d'autre. J'ai vu des lames de disque qui se fixent à une seule lame et n'offrent de stockage à personne dans la lame. Vous auriez besoin d'une interconnexion pour cela, ce serait essentiellement un SAN local au châssis, non?
mfinni
Désolé @Nils, je suis sûr que vous n'avez pas lu correctement la question.
SimonJGreen
Nils - en regardant le D2200sb: "Le fond de panier du boîtier fournit une connexion PCI Express à la lame de serveur c-Class adjacente et permet un accès au stockage haute performance sans aucun câble supplémentaire. ... Utilisez le logiciel HP P4000 Virtual SAN Appliance (VSA) pour transformer le D2200sb en un SAN iSCSI pour une utilisation par tous les serveurs du boîtier et tout serveur du réseau. "
mfinni