Auswahl einer SAN-Technologie für Hunderte von VM-Webservern

15

Das Problem

Wir haben ein Problem mit der Leistung auf einer vorhandenen Plattform, daher wende ich mich an den Bienenstock, um eine zweite Meinung dazu zu erhalten. Bisher bezieht sich das Leistungsproblem eher auf IOPS als auf den Durchsatz.

Das Szenario

Ein Blade-Center mit 16 Hosts mit jeweils 64 GB RAM. (Es ist ein Dell M1000e mit M610, aber das ist wahrscheinlich nicht relevant.) 500 VMs, alle Webserver (oder zugehörige Webtechnologien wie MySQL, Load Balancer usw.), rund 90% sind Linux und der Rest Windows. Hypervisor ist VMWare vSphere. Wir müssen Host-HA bereitstellen, damit der lokale Speicher nicht ausreicht. Als solche haben die Hosts nur eine SD-Karte zum Booten.

Ein bisschen Hintergrunddenken

Im Moment haben wir bis zu 6 Hosts (das Blade-Center wird in einem Jahr bei aktuellem Wachstum voll ausgelastet sein) und wir führen iSCSI auf einem Dell MD3220i mit MD1220 zur Erweiterung aus.

Mögliche Optionen, über die wir nachgedacht haben, und unmittelbare Überlegungen dazu:

  • Verteilen der VMs auf NFS-Datenspeicher und Ausführen von NFS-Speicher, der die Leistungsanforderungen für eine bestimmte Anzahl von VMs erfüllt. NFS scheint billiger in der Skalierung zu sein und wurde ein bisschen mehr abstrahiert als Speicher auf Blockebene, sodass wir es nach Bedarf verschieben können.
  • Hinzufügen weiterer MD3220i-Controller / -Ziele. Wir befürchten jedoch, dass dies einen negativen Einfluss darauf haben könnte, wie VMWare mit vielen Zielen umgeht.
  • Auslagerung aller Festplatten von Nearline SAS auf SSD. Dies sollte das IOPS-Problem vollständig lösen, hat jedoch den offensichtlichen Nebeneffekt, dass unsere Speicherkapazität reduziert wird. Auch ist es immer noch sehr teuer.
  • vSphere 5 verfügt über eine Speicher-Appliance. Wir haben nicht so viel recherchiert, aber es muss gut funktionieren?

Die Frage

Welche Art von Speicher würden Sie unter all dem ausführen? Es müsste nicht auf ein anderes Blade-Center skaliert werden, sondern nur eine relativ gute Leistung für alle diese VMs.

Ich suche nicht nach "SAN x kaufen, weil es das Beste ist" Antworten. Ich suche nach Überlegungen zu den verschiedenen SAN-Technologien (iSCSI, FC, FCoE, InfiniBand, NFS usw.), zu verschiedenen Speichertypen (SATA, SAS, SSD) und zu Methoden für die Speicherung von mehreren hundert VMs (Konsolidierung, Trennung) , Scherben usw).

Über Gedanken, Links, Anleitungen, Verweise usw. kann ich mich jederzeit freuen. Ich würde auch gerne Gedanken zu den oben genannten Optionen hören, über die wir bereits nachgedacht hatten.

Vielen Dank im Voraus für jede Eingabe!

Update 5. März '12

Einige fantastische Antworten bisher, vielen Dank an alle!

Wenn ich mir die Antworten auf diese Frage so weit anschaue, denke ich, dass der folgende Weg der Weg ist:

  • Ordnen Sie den verfügbaren Speicher dem VMWare-Cluster zu und platzieren Sie die VM-Festplatten auf dem geeigneten Speicher für ihre Workloads.
  • Verwenden Sie möglicherweise ein SAN, mit dem die Platzierung von Daten auf einem geeigneten Speicher automatisch verwaltet werden kann.
  • Infiniband scheint die kostengünstigste Lösung zu sein, um die erforderliche Bandbreite bei voller Kapazität der Hosts zu erzielen.

Es klingt definitiv so, als ob es sich lohnen würde, die Vorverkaufsservices eines großen SAN-Anbieters in Anspruch zu nehmen, um das Szenario zu verstehen.

Ich werde mich noch eine Weile mit diesem Problem befassen. In der Zwischenzeit keine Ratschläge mehr dankbar erhalten!

SimonJGreen
quelle
Mellanox hat auch einen 40-GBe-Switch-Deal, der ziemlich extrodyna- misch ist und in Bezug auf $ / Leistung sehr nahe an Infiniband heranreicht. Zu diesem Zeitpunkt würde ich eine Nexenta mit ein paar 40-GBE-Karten als praktikable Option in Betracht ziehen.
Tony Roth

Antworten:

13

Der Schlüssel zu einer guten VMWare-Speicherplattform besteht darin, zu verstehen, welche Art von Last VMWare erzeugt.

  • Erstens ist die Arbeitslast normalerweise zufällig, da Sie viele Server hosten. Es gibt viele E / A-Streams, die gleichzeitig ausgeführt werden, und nicht viele davon können erfolgreich vorab zwischengespeichert werden.
  • Zweitens ist es variabel. Während des normalen Betriebs sehen Sie möglicherweise 70% zufällige Lesevorgänge. Sobald Sie sich jedoch entscheiden, eine VM in einen neuen Datenspeicher oder etwas anderes zu verschieben, sehen Sie massive sequenzielle Schreibvorgänge von 60 GB. Wenn Sie bei der Architektur nicht aufpassen, kann dies die Fähigkeit Ihres Speichers beeinträchtigen, normale E / A-Vorgänge zu verarbeiten.
  • Drittens generiert ein kleiner Teil Ihrer Umgebung normalerweise einen großen Teil der Speicherarbeitslast.

Der beste Weg, um Speicher für eine VMWare-Plattform zu erstellen, besteht darin, mit den Grundlagen zu beginnen.

  • Sie müssen in der Lage sein, eine große zufällige Lese-Workload zu bedienen, was kleinere, schnellere Laufwerke sowie möglicherweise eine SSD bedeutet. Mit den meisten modernen Speichersystemen können Sie Daten je nach Zugriff automatisch verschieben. Wenn Sie eine SSD verwenden, möchten Sie sicherstellen, dass Sie sie so verwenden. Es sollte vorhanden sein, um Hotspots schrittweise zu reduzieren. Unabhängig davon, ob Sie eine SSD verwenden oder nicht, ist es von Vorteil, die gesamte Arbeit auf alle Laufwerke verteilen zu können. Daher wäre etwas mit einer Art von Speicherpooling von Vorteil.
  • Sie müssen in der Lage sein, sporadisch große Schreibvorgänge durchzuführen. Dabei spielt die Spindeldrehzahl der zugrunde liegenden Laufwerke keine Rolle, aber die Effizienz des Controller-Stacks und die Größe des Caches. Wenn Sie das Caching gespiegelt haben (was nicht optional ist, es sei denn, Sie möchten bei einem Controller-Fehler wieder auf Backups zurückgreifen), ist die Bandbreite zwischen den beiden für das Spiegeln verwendeten Caches in der Regel der Engpass für große sequenzielle Schreibvorgänge. Stellen Sie sicher, dass alles, was Sie erhalten, über eine Hochgeschwindigkeits-Controller- (oder Cluster-) Verbindung für das Schreib-Caching verfügt. Geben Sie Ihr Bestes, um ein Hochgeschwindigkeits-Front-End-Netzwerk mit so vielen Ports wie möglich zu erhalten und gleichzeitig einen realistischen Preis zu erzielen. Der Schlüssel zu einer guten Front-End-Leistung besteht darin, die Speicherauslastung auf so viele Front-End-Ressourcen wie möglich zu verteilen.
  • Sie können die Kosten erheblich senken, indem Sie eine Schicht für Speicher mit niedriger Priorität sowie Thin Provisioning einrichten. Wenn Ihr System einzelne Blöcke nicht automatisch auf billige große / langsame Laufwerke (wie Nearline-SAS oder SATA mit 7200 U / min und 2 TB +) migriert, versuchen Sie es manuell. Große langsame Laufwerke eignen sich hervorragend für Archive, Sicherungen, einige Dateisysteme und sogar Server mit geringer Auslastung.
  • Bestehen Sie darauf, dass der Speicher VAAI-integriert ist, damit VMWare nicht verwendete Teile der VMs sowie die Datenspeicher freigeben kann.
Basilikum
quelle
Einige hervorragende Kommentare, danke. Auf jeden Fall etwas zum Nachdenken.
SimonJGreen
10

Meine großen VMWare-Bereitstellungen sind NFS und iSCSI über 10 GbE. Dies bedeutet Dual-Port-10-GbE-HBAs in den Servern sowie im Speicherkopf. Ich bin ein Fan von ZFS-basiertem Speicher. In meinem Fall ist es um kommerziellen NexentaStor gewickelt , aber einige entscheiden sich dafür, ihre eigenen zu rollen.

Die Hauptmerkmale von ZFS-basiertem Speicher sind in diesem Zusammenhang die ARC / L2ARC-Caching-Funktionen, mit denen Sie Speicher auf mehreren Ebenen bereitstellen können. Die aktivsten Daten würden als zweite Ebene in den RAM- und SSD-Speicher gelangen. Es wäre auch von Vorteil, Ihren Hauptspeicherpool mit 10- oder 15-k-SAS-Laufwerken zu betreiben.

Dies ist ein weiterer Fall der Profilerstellung und des Verständnisses Ihrer Arbeitsbelastung. Arbeiten Sie mit jemandem zusammen, der Ihre Speichermuster analysieren und Sie bei der Planung unterstützen kann. Auf der ZFS / NexentaStor-Seite mag ich PogoStorage . Ohne diese Art von Einblick spielt die Transportmethode (FC, FCoE, iSCSI, NFS) möglicherweise keine Rolle. Haben Sie eine Überwachung Ihrer vorhandenen Infrastruktur? Wie sieht die I / O-Aktivität jetzt aus?

ewwhite
quelle
Wie groß sind diese Einsätze aus Neugier? Und was für eine Arbeitsbelastung?
SimonJGreen
Mehrere Hosts. Am größten sind 90 gemischt genutzte VMs, darunter Linux-, Windows-Infra- (File / AD / Exchange), VDI- und Datenbanksysteme. Der RAM auf den Speichereinheiten ist hoch (96 GB +) und ich habe 1,2 TB L2ARC-Lesecache auf Enterprise-SSDs.
ewwhite
Sie müssen hier meine Unwissenheit vergeben, und um klar zu sein, ich bezweifle nicht, dass Sie das Richtige tun. Warum haben Sie so viel RAM in den Speichereinheiten? Wird es für Puffer verwendet?
SimonJGreen
2
Ah, ich habe gerade über ZFS und ARC / L2ARC gelesen. Das ist
super
8

Die Schlüsselfrage lautet: "Wo ist der Engpass?" Sie erwähnen IOPS. Bedeutet dies jedoch, dass Sie die Festplatten selbst als Engpass identifiziert haben oder lediglich, dass die SAN-Ports nicht voll ausgelastet sind oder dass die VMs weitaus besser ausgelastet sind als Sie möchten?

Wenn Sie definitiv festgestellt haben, dass die Festplatten der begrenzende Faktor sind, dann ist der Wechsel zu NFS oder Infiniband oder was auch immer nicht für Ihre Leistung geeignet - Sie benötigen SSDs (oder zumindest mehrstufigen Speicher mit SSDs im Mix) oder ein ganzes Bündel mehr Spindeln (eine Lösung, die sich in letzter Zeit erheblich verteuert hat, seit die weltweite Schrittmotorenproduktion in den Ozean gespült wurde).

Wenn Sie sich jedoch nicht hundertprozentig sicher sind, wo sich der Engpass tatsächlich befindet, müssen Sie dies zuerst herausfinden - ein mehr oder weniger zufälliges Austauschen von Teilen Ihrer Speicherinfrastruktur, basierend auf den Vermutungen anderer Personen, wird hier nicht möglich sein sehr effektiv (vor allem angesichts des hohen Kostenaufwands für die Implementierung von Änderungen).

womble
quelle
Absolut richtig, ich gehe immer davon aus, dass die Person, die die Frage gestellt hat, ihre Hausaufgaben gemacht hat. Aber nachdem ich einige Leistungsberatungen durchgeführt habe, gebe ich meistens einfach auf und sage, mehr oder schnellere Laufwerke hinzufügen, und mehr als 98% des Problems sind gelöst. Die anderen 2% sind unglaublich überbunden.
Tony Roth
4
"Ich gehe immer davon aus, dass die Person, die die Frage gestellt hat, ihre Hausaufgaben gemacht hat" - baaaaaad Annahme ...
womble
Diese Antwort ist perfekt. Bei vielen Gelegenheiten habe ich mich auf den Weg gemacht, um ein Problem wie dieses anzugehen, und ich hatte eine vorgefasste Vorstellung davon, was das Problem war. Neun von zehn Fällen endet es in Tränen, als ich erfahre, dass ich einfach nicht genug über das Problem wusste. Profilieren Sie sorgfältig, bestimmen Sie den Engpass und fahren Sie dann fort. Sie können den "Hive Mind" um Hilfe bitten oder sich an einen SAN-Anbieter wenden, um Unterstützung zu erhalten. Wenn Sie Probleme mit der Profilerstellung haben, helfen Ihnen NetApp und / oder EMC gerne dabei, Ihre Statistiken zu ermitteln und eine Lösung für Sie zu finden. Beide haben dafür eine gute Software.
SvrGuy
Diese Diagnose basierte auf der kombinierten Ausgabe esxtopaller Hosts (Anzeige der Festplattenauslastung), der Gesamt-CMD / s und dem Vergleich mit Benchmarks für das von uns verwendete SAN. Die Gesamt-CMD / s sind konstant hoch, wenn die Benchmark-Ergebnisse als Überschrift verwendet werden. SSDs scheinen aus technischer Sicht definitiv eine gute Option zu sein, sie sind einfach horrend teuer und immer noch GB / £. Könnte jedoch eine Lösung mit mehrstufigem Speicher sein. Nebenbei bemerkt, laut einer kürzlich veröffentlichten Pressemitteilung, die ich erhalten habe, sind WD wieder auf Produktionsniveau auf Datenträgern.
SimonJGreen
Wie wurde der Benchmark für das SAN durchgeführt? Der begrenzende Faktor könnte immer noch das Netzwerk sein, im Gegensatz zu den Festplatten selbst. Zumindest haben Sie einen Maßstab, von dem aus Sie beginnen können, wenn Sie mit verschiedenen Dingen spielen möchten, damit die Dinge schneller laufen, was von entscheidender Bedeutung ist.
womble
4

Wenn Sie iscsi oder nfs möchten, benötigen Sie mindestens ein paar 10 / 40gb-Ports oder Infiniband. Dies ist bei weitem die günstigste Option, aber native Speicherlösungen für Infiniband scheinen begrenzt zu sein. Das Problem wird das Modul für das Blasenzentrum sein, welche Optionen es gibt, normalerweise 8 Gbit / s oder 10 Gbit / s und möglicherweise Infiniband. Beachten Sie, dass Infiniband mit nfs verwendet werden kann und in Bezug auf Leistung und Preis nichts damit zu tun hat. Wenn das Blade-Center QDR-Infiniband unterstützt, würde ich das mit einem Linux-Host irgendeiner Art mit einem QDR-Infiniband-TCA über NFS tun. Hier ist ein guter Link, der diese http://www.zfsbuild.com/2010/04/15/why-we-chose-infiniband-instead-of-10gige beschreibt

aber wenn das bladecenter qdr infiniband unterstützt und sie sich natives infiniband leisten können, dann ist dies die lösung, die sie wählen sollten.

Derzeit können Sie 40-GBE-Switches viel billiger kaufen (das ist ein seltsamer Gedanke) als 10-GBE-Switches, aber ich bezweifle, dass Ihr Blade-Center dies unterstützen wird.

Tony Roth
quelle
Dies sind die Konnektivitätsoptionen aus dem Blade Center: dell.com/us/enterprise/p/poweredge-m1000e/pd Infiniband sieht gut aus, und bei dieser Anzahl von Gast-VMs sind die Kosten gerechtfertigt. Was würden Sie SAN-Seite tun?
SimonJGreen
Was auch immer Dell hat, das Infiniband unterstützt, sollte Ihre San-Lösung sein.
Tony Roth
sieht nicht so aus, als hätte dell einen IB-basierten Speicher, daher würde ich annehmen, dass diese Option in diesem Fall ein Vorteil sein könnte. Sowohl Sun als auch SGI haben auf IB basierende SANs, die sich nicht sicher sind, welche Kosten anfallen.
Tony Roth
Sie bieten keinen IB-Speicher, aber IB-Konnektivität. Ich habe keine Bedenken, einen anderen Speicheranbieter zu verwenden, und wir haben diesbezüglich keine Vorliebe für Dell.
SimonJGreen
1
dann haben entweder sun oder sgi eine lösung für dich, nicht sicher, was die aktuellen model # sind.
Tony Roth
-3

Lokale Speicherung ist aus? Ich bin ziemlich zufrieden mit dem Schreibdurchsatz auf meinem lokalen RAID 5s - gespiegelt mit DRBD8 an den Cluster-Partner meines XEN-Rechners ... (aber dies wird "natürlich nicht unterstützt").

Abgesehen davon bin ich mir ziemlich sicher, dass mySQL Ihr Leistungsproblem ist (ich habe noch nie eine schlechtere Datenbank gesehen). Versuchen Sie, es zu entfernen und / oder die gesamte Datenbank in den Dateisystem-Cache zu stellen (für Lesezugriff) ...

Nils
quelle
Das OP verfügt über eine vorhandene VMWare-Lösung und wird mit plattenlosen Hosts ausgeführt. Lokale Speicherung macht keinen Sinn.
Ewwhite
Der lokale Speicher kann auch die Verwendung von Local Storage Blades umfassen. Aber VMWare wird das vermutlich nicht unterstützen.
Nils
Ich glaube nicht, dass Dell lokale Storage Blades anbietet - und ich bin mir nicht sicher, ob ich diese mit jemand anderem gesehen habe. Ich habe Drive Blades gesehen, die an einem einzelnen Blade befestigt sind und niemandem im Blade Speicherplatz bieten. Sie würden dafür eine Verbindung benötigen, es wäre im Wesentlichen ein Gehäuse-lokales SAN, oder?
Mfinni
Sorry @Nils, ich bin mir ziemlich sicher, dass du die Frage nicht richtig gelesen hast.
SimonJGreen
Nils - Blick auf den D2200sb: "Die Gehäuserückwandplatine bietet eine PCI Express-Verbindung zum benachbarten c-Class-Server-Blade und ermöglicht Hochleistungsspeicherzugriff ohne zusätzliche Kabel. ... Verwenden Sie die HP P4000 Virtual SAN Appliance Software (VSA), um Verwandeln Sie den D2200sb in ein iSCSI-SAN, das von allen Servern im Gehäuse und allen Servern im Netzwerk verwendet werden kann. "
mfinni