Virtuelle Maschinen und hohe I / O-Auslastung - ist das jemals vernünftig?

14

Ich habe auf zahlreichen Virtualisierungsdiensten (Azure) und Produkten (VMware, KVM, Hyperv) gesehen, dass E / A und System unter hoher E / A-Auslastung hängen bleiben.

Meine Fragen sind:

  • Ist es jemals vernünftig, eine virtualisierte Lösung zu verwenden, wenn Sie hohe E / A-Workloads ausführen?
  • Was sind die Best Practices für diese Art von Dingen?
  • Was verursacht diese Probleme, gibt es bekannte Systemengpässe oder ist nur eine Frage übermäßiger Konflikte?
Bryan Hunt
quelle
Relevantes IBM Forschungspapier . Ich würde auch in Betracht ziehen, Container zu verwenden, z. B. Docker. Aus dem Papier: "Container können auch die Unterscheidung zwischen IaaS und nicht virtualisierten [...]" Bare-Metal "-Servern beseitigen, da sie die Steuerung und Isolation von VMs mit der Leistung von Bare-Metal bieten."
oleksii
1
1. Welche Recherchen haben Sie durchgeführt? Wir erwarten von Ihnen, dass Sie vor dem Fragen eine erhebliche Menge an Nachforschungen anstellen. Das Anzeigen Ihrer Recherchen hilft anderen und hilft Menschen dabei, bessere Antworten zu geben. Siehe serverfault.com/help/how-to-ask und die Hilfe . 2. Diese Frage ist ziemlich weit gefasst, möglicherweise zu weit gefasst für diese Site. Standard Rat ist: eine Frage pro Frage. 3. Diese Seite eignet sich nicht für Fragen, die zur Stellungnahme auffordern. Können Sie etwas fragen, das spezifischer und objektiver zu beantworten ist als "Best Practices für diese Art von Dingen"?
DW
1. 10 Jahre mit verschiedenen virtuellen Maschinen, kvn, xen, virtualbox, amazon, azure, hyperv. Ich fand die Leistung im Allgemeinen katastrophal, aber es gibt so viel Hype und Risikokapital, dass die aktuelle IT-Orthodoxie dahintersteckt, dass alles virtualisiert werden muss. Ich frage mich, ob ich es nur bin oder ob andere Ops-Profis auch ein gewisses Maß an Skepsis verspüren.
Bryan Hunt
2
Wenn Sie feststellen, dass die Leistung im Allgemeinen katastrophal ist, ist es nach zehnjähriger Arbeit mit Virtualisierung an der Zeit, eine Niederlage als Administrator hinzunehmen und nach Möglichkeiten zu suchen, wenn der Rest der Welt keine Probleme damit hat. Im Ernst, ich denke du dramatisierst hier. Oder merkt nie, dass Virtualisierung den Kauf eines anständigen IO-Subsystems erfordert. Ich finde es immer schrecklich, wenn Leute mehr als 10 virtuelle Maschinen auf eine Desktop-Disc laden und sich über die E / A-Geschwindigkeit beschweren.
TomTom
Es ist eher eine Beobachtung. Ich habe nicht immer ein Mitspracherecht bei der gewählten Lösung. Ich bin ops Ich behalte einfach, was auf mich geworfen wird.
Bryan Hunt

Antworten:

19

Ist es jemals vernünftig, eine virtualisierte Lösung zu verwenden, wenn Sie hohe E / A-Workloads ausführen?

Ja, in der Tat sehr vernünftig, in der Tat ist für die meisten Organisationen jetzt virtuell die Standardeinstellung, und Dinge an physischen Boxen zu tun, ist die Ausnahme. Wir haben über 100.000 VMs aller Art und viele davon sind> 40.000 IOPS, ohne dass Probleme auftreten.

Was sind die Best Practices für diese Art von Dingen?

Entscheidend dabei ist nicht, ob es virtualisiert ist oder nicht - es ist wichtig, dass Sie die E / A-Anforderungen genau kennen und die virtuellen Speicherressourcen aufeinander abstimmen. So einfach ist es, wenn Sie wissen, was Sie brauchen / wollen und das Budget haben, das zu Ihren Speichersystemen passt, spielt die Virtualisierungsebene wirklich keine oder nur eine geringe Rolle - es sei denn, Sie treiben die Dinge WIRKLICH voran (ich spreche zig / Hundert Millionen von IOPs).

Was verursacht diese Probleme, gibt es bekannte Systemengpässe oder ist nur eine Frage übermäßiger Konflikte?

Mangelndes Verständnis oder der Versuch, zu viel mit zu wenig Speicherressourcen zu tun, verursachen normalerweise Probleme.

Chopper3
quelle
10

Ist es jemals vernünftig, eine virtualisierte Lösung zu verwenden, wenn Sie hohe E / A-Workloads ausführen?

Zieht ein Datenbankserver regelmäßig eine zufällige E / A-Anzahl von 1 Gbit / Sekunde? Hab eins hier.

Oder ein virtueller Dateiserver, der bis zu 600 MB / s an einen HPC-Cluster liefert. Dieser läuft 8 Velicoraptors in einem Raid 10, gewidmet.

Was sind die Best Practices für diese Art von Dingen?

Sorgen Sie für ausreichend IO. Ich denke, dass diese SQL-VM etwa 8 oder 10 dedizierte SSD hat.

Was verursacht diese Probleme? Gibt es bekannte Systemengpässe?

Leute, die keine einfachen Matheübungen machen. Wenn das E / A-Subsystem die Last nicht verarbeiten kann, wird dies auch bei der Virtualisierung nicht der Fall sein. Benötigen Sie VIELE E / A, dann stellen Sie ein dediziertes Speichersubsystem mit der entsprechenden Größe bereit.

TomTom
quelle
10
„Sorgen Sie für ausreichende UI“ - Sie wahrscheinlich gemeint IO
Oleksii
2

Neben dem grundlegenden mathematischen Konzept, dass Sie immer noch dieselben E / A wie nicht virtualisiert benötigen, gibt es auch QOS / Priorisierung. Die meisten Virtualisierungsplattformen bieten zumindest eine grundlegende Unterstützung dafür, um zu verhindern, dass die Entwickler-VM Ihre Produktdatenbank blockiert.

Milo de Vries
quelle
1
Ja. Benötigen Sie 5000IOPS, dann schneidet eine Festplatte mit 350 es nicht. Laden Sie mehr VMS auf die gleiche Disc und nein, es wird nicht magisch funktionieren. Ich bin immer wieder erstaunt, wie viele Leute die Grundlagen der Mathematik ignorieren.
TomTom,