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!
quelle
Antworten:
Der Schlüssel zu einer guten VMWare-Speicherplattform besteht darin, zu verstehen, welche Art von Last VMWare erzeugt.
Der beste Weg, um Speicher für eine VMWare-Plattform zu erstellen, besteht darin, mit den Grundlagen zu beginnen.
quelle
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?
quelle
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).
quelle
esxtop
aller 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.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.
quelle
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) ...
quelle