VMware VMFS5- und LUN-Größe - mehrere kleinere Datenspeicher oder 1 großer Datenspeicher?


10

Da VMFS5 nicht mehr das 2-TB-Limit für ein VMFS-Volume hat, überlege ich, welches Szenario insgesamt vorteilhafter wäre: -

  • Weniger LUNs größerer Größe oder
  • Mehr kleinere LUNs.

In meinem Fall habe ich ein neues 24-Festplatten-Speicherarray mit 600 GB Festplatten. Ich werde RAID10 verwenden, also ungefähr 7,2 TB, und versuchen zu entscheiden, ob 1 großer 7-TB-Datenspeicher oder mehrere Speicher mit jeweils 1 TB verwendet werden sollen.

Was sind die Vor- und Nachteile jedes Ansatzes?

Update : Natürlich habe ich es versäumt, Ersatzlaufwerke in meine Berechnung einzubeziehen, daher werden es knapp 7,2 TB sein, aber die allgemeine Idee ist dieselbe. :-)

Update 2 : Es gibt 60 VMs und 3 Hosts. Keine unserer VMs ist besonders E / A-intensiv. Die meisten von ihnen sind Web- / App-Server und auch Dinge wie Überwachung (Munin / Nagios), 2 Windows-DCs mit minimaler Auslastung und so weiter. DB-Server werden selten virtualisiert, es sei denn, sie haben SEHR niedrige E / A-Anforderungen. Im Moment denke ich, dass der einzige virtuelle DB-Server, den wir haben, eine MSSQL-Box ist und die DB auf dieser Box <1 GB ist.

Update 3 : Weitere Informationen zum Array und zur FC-Konnektivität. Das Array ist ein IBM DS3524 mit 2 Controllern mit jeweils 2 GB Cache. 4x 8Gbit FC-Ports pro Controller. Jeder ESXi-Host verfügt über 2x 4Gbit FC-HBAs.


1
Sind Sie zur Verwendung von StorageDRS lizenziert?
Chopper3

@ Chopper3: Wir haben derzeit reguläre Enterprise-Lizenzen, nicht Plus, also momentan kein StorageDRS.
ThatGraemeGuy

@ThatGraemeGuy Was war die Lösung dafür?
ewwhite

@ewwhite: Leider kann ich mich nicht erinnern. Es ist so lange her und ich bin schon seit einem Jahr von diesem Job weg. :-( Ich erinnere mich vage daran, wie ich 4 gleich große VMFS-Datenspeicher pro 24-Platten-Array erstellt habe, und ich weiß, dass wir nach dem Wechsel zu den neuen Arrays, FWIW, überhaupt keine E / A-Probleme hatten.
ThatGraemeGuy

Antworten:


4

Sie haben nicht angegeben, wie viele VMs Sie haben oder was sie tun werden. Selbst ohne diese Informationen würde ich vermeiden, dass eine große LUN aus Gründen der Blockgröße / Leistung, des Konflikts und der Flexibilität erstellt wird.


2

Ich gehe davon aus, dass Sie Server virtualisieren werden, nicht Desktops. Als Nächstes gehe ich davon aus, dass Sie mehrere ESX / ESXi-Server verwenden, um auf Ihren Speicher zuzugreifen und diese von vCenter Server verwalten zu lassen.

Wenn Sie sich für die LUN-Größe und die Anzahl der VMFS entscheiden, gleichen Sie mehrere Faktoren aus: Leistung, Konfigurationsflexibilität und Ressourcennutzung, während Sie an die unterstützte maximale Konfiguration Ihrer Infrastruktur gebunden sind.

Sie können die beste Leistung mit 1 VM zu 1 LUN / VMFS-Zuordnung erzielen. Es gibt keine Konkurrenz zwischen Maschinen auf demselben VMFS, keine Sperrkonflikte, jede Last ist getrennt und alles ist gut. Das Problem ist, dass Sie eine gottlose Anzahl von LUNs verwalten, möglicherweise unterstützte Höchstgrenzen erreichen, Kopfschmerzen bei der Größenänderung und Migration von VMFS haben, nicht ausreichend genutzte Ressourcen haben (dieser einzelne Prozentpunkt freier Speicherplatz in VMFS summiert sich) und im Allgemeinen etwas erstellen, das ist nicht schön zu verwalten.

Das andere Extrem ist ein großes VMFS, das alles hosten soll. Auf diese Weise erhalten Sie die beste Ressourcennutzung. Es gibt kein Problem bei der Entscheidung, was wo bereitgestellt wird, und Probleme mit VMFS X als Hotspot, während VMFS Y im Leerlauf ist. Die Kosten sind die aggregierte Leistung. Warum? Wegen der Verriegelung. Wenn ein ESX in ein bestimmtes VMFS schreibt, werden andere für die Zeit gesperrt, die zum Abschließen der E / A erforderlich ist, und müssen es erneut versuchen. Dies kostet Leistung. Außerhalb von Spielplatz- / Test- und Entwicklungsumgebungen ist die Speicherkonfiguration falsch.

Es wird akzeptiert, Datenspeicher zu erstellen, die groß genug sind, um eine Reihe von VMs zu hosten, und den verfügbaren Speicherplatz in Blöcke geeigneter Größe aufzuteilen. Wie viele VMs es gibt, hängt von den VMs ab. Möglicherweise möchten Sie eine einzelne oder mehrere kritische Produktionsdatenbanken auf einem VMFS, lassen jedoch drei oder vier Dutzend Test- und Entwicklungsmaschinen auf demselben Datenspeicher zu. Die Anzahl der VMs pro Datenspeicher hängt auch von Ihrer Hardware (Festplattengröße, Drehzahl, Controller-Cache usw.) und Zugriffsmustern ab (für jedes Leistungsniveau können Sie viel mehr Webserver auf demselben VMFS als Mailserver hosten).

Kleinere Datenspeicher haben noch einen weiteren Vorteil: Sie verhindern, dass Sie physisch zu viele virtuelle Maschinen pro Datenspeicher überfüllen. Kein zusätzlicher Verwaltungsdruck auf ein zusätzliches Terabyte virtueller Festplatten in einem halben Terabyte-Speicher (zumindest bis sie von Thin Provisioning und Deduplizierung erfahren).

Noch etwas: Beim Erstellen dieser Datenspeicher wird auf eine einzelne Blockgröße standardisiert. Es vereinfacht später viele Dinge, wenn Sie etwas über Datenspeicher hinweg tun und hässliche "nicht kompatible" Fehler sehen möchten.

Update : DS3k verfügt über aktive / passive Controller (dh jede LUN kann entweder von Controller A oder B bedient werden, wobei der Zugriff auf die LUN über den nicht besitzenden Controller zu Leistungseinbußen führt), sodass sich eine gerade Anzahl von LUNs auszahlt gleichmäßig auf die Steuerungen verteilt.

Ich könnte mir vorstellen, mit 15 VMs / LUN zu beginnen und Speicherplatz auf etwa 20 zu schaffen.


Übrigens gibt es mit VMFS5 weitaus weniger Sperrkonflikte als zuvor.
Chopper3

Einige zusätzliche Informationen zu den VMs und dem Speichersystem wurden hinzugefügt.
ThatGraemeGuy

1

Die kurze Antwort auf Ihre Frage lautet: Es hängt alles von Ihren E / A-Mustern ab, und dies ist für Ihre Umgebung einzigartig.

Ich schlage vor, Sie werfen einen Blick hier http://www.yellow-bricks.com/2011/07/29/vmfs-5-lun-sizing/, da dies Ihnen helfen kann, Ihre erwarteten IOPS und die Anzahl der geeigneten LUNs zu berücksichtigen. Das heißt, wenn Sie auf der Seite der Vorsicht irren, würden einige Leute raten, viele LUNS zu haben (Wenn meine Korrektur einer vorherigen Antwort genehmigt wird, lesen Sie meine Kommentare zu LUN IO-Warteschlangen auf der Array-Seite). Ich stimme eher zu, würde aber weiter gehen, um sie dann zu einem / wenigen VMFS-Volumes zusammenzufassen (glauben Sie der FUD nicht über Extents und andere VMFS-Limits http://virtualgeek.typepad.com/virtual_geek/2009/03 /vmfs-best-practices-and-counter-fud.html). Dies hat den Vorteil, dass einzelne / wenige Datenspeicher in vSphere verwaltet werden. Da vSphere VMs automatisch über die verfügbaren Extents verteilt, beginnend mit dem ersten Block jedes Extents, verteilt sich der Leistungsvorteil Ihrer E / A auf mehrere LUNs.

Noch etwas zu beachten ... Sie sagen, dass keine der VMs besonders E / A-intensiv ist. Vor diesem Hintergrund möchten Sie möglicherweise eine Kombination aus RAID5 und RAID10 in Betracht ziehen, um das Beste aus beiden Welten (Platz und Geschwindigkeit) herauszuholen.

Wenn Sie Ihre VMs mit mehreren VMDKs konfiguriert haben und die E / A-Muster des Betriebssystems und der Anwendung auf diese virtuellen Festplatten verteilt sind (z. B. Betriebssystem, Web, DB, Protokolle usw. jeweils auf einem separaten VMDK), können Sie jedes VMDK suchen ein anderer Datenspeicher, der den E / A-Fähigkeiten dieser physischen LUN entspricht (z. B. Betriebssystem unter RAID5, Protokolle unter RAID10). Es geht darum, ähnliche E / A-Muster zusammenzuhalten, um das mechanische Verhalten der zugrunde liegenden Festplatten zu nutzen, sodass beispielsweise Protokollschreibvorgänge in einer VM Ihre Webleseraten in einer anderen VM nicht beeinflussen.

Zu Ihrer Information ... Sie können DB-Server erfolgreich virtualisieren. Sie müssen lediglich die E / A-Muster und E / A-Raten analysieren und diese E / A auf eine geeignete LUN ausrichten. Währenddessen sind Sie sich der E / A-Muster und IOPS bewusst, die diese LUN bereits ausführt. Aus diesem Grund machen viele Administratoren die Virtualisierung für eine schlechte DB-Leistung verantwortlich, da sie die E / A / IOPS, die mehrere Server generieren würden, wenn sie sie auf eine gemeinsam genutzte LUN stellen, nicht sorgfältig berechnet haben (dh es ist der Fehler des Administrators, nicht der Fehler der Virtualisierung ).


0

Jedes Volume (LUN) hat seine eigene Warteschlangentiefe. Um E / A-Konflikte zu vermeiden, verwenden viele Implementierungen mehr kleinere LUNs. Sie können jedoch ganz einfach LUNs für einen Datenspeicher erstellen. Der Nachteil größerer (und weniger) VMWare-Datenspeicher besteht meines Wissens darin, dass die Anzahl der VMs, die gleichzeitig eingeschaltet sein können, begrenzt sein kann.


0

Eine weitere Überlegung ist die Leistung des Controllers. Ich kenne Ihr SAN nicht speziell, aber die meisten, wenn nicht alle SANs erforderten, dass eine LUN jeweils einem einzelnen Controller gehört. Sie möchten genügend LUNs auf dem System haben, damit Sie Ihre Arbeitslast zwischen den Controllern ausgleichen können.

Wenn Sie beispielsweise nur eine LUN hätten, würden Sie jeweils nur einen aktiven Controller verwenden. Der andere würde untätig sitzen, da er nichts zu tun hätte.

Wenn Sie zwei LUNs hätten, aber eine viel beschäftigter als die andere, würden Sie beide Controller verwenden, aber nicht gleichermaßen. Wenn Sie weitere LUNs hinzufügen, teilen sich die Controller die Arbeitslast gleichmäßiger.

Spezifische Beratung für Sie:

Ihre VMs sind in Bezug auf die Leistungsanforderungen alle relativ gleich. Ich würde zwei LUNs erstellen, eine pro Controller. Beginnen Sie mit dem Einfügen von VMs in die erste LUN und messen Sie Ihre E / A-Latenz und Warteschlangentiefe im Laufe der Zeit, während sich die VMs einleben. Verwenden Sie die zweite LUN noch nicht. Füllen Sie die LUN 1 weiter aus. Sie werden entweder einen Punkt erreichen, an dem Leistungsindikatoren angezeigt werden, dass die LUN voll ist, oder Sie haben die Hälfte Ihrer VMs auf diese LUN migriert und die Leistung beibehalten.

Wenn Leistungsprobleme auftreten, entferne ich 30% der VMs von LUN 1 und verschiebe sie auf LUN 2. Füllen Sie dann LUN 2 auf die gleiche Weise. Gegebenenfalls zu LUN 3 gehen ... macht das Sinn? Die Idee ist, eine maximale VM-Dichte auf einer bestimmten LUN zusammen mit einem Overhead von ungefähr 30% für den Fudge-Raum zu erreichen.

Ich würde auch ein Paar "Hochleistungs" -LUNs für alle VMs mit starker Belastung erstellen. Wieder eine pro Controller, um die Arbeitslast zu teilen.


-1

Basierend auf Ihren obigen Erklärungen sollte 1 Datenspeicher in Ordnung sein. 60 VMs über 3 Hosts sind nicht so schlecht (20: 1). Ich würde jedoch empfehlen, die HBAs auf 8 GB zu aktualisieren, wenn dies auf mindestens einem Host finanziell möglich ist, vorausgesetzt, Ihr Glasfaser-Switch ist mindestens ein 8-GB-Switch.

Davon abgesehen würde ich mindestens 2, wenn nicht 3 Datenspeicher auf dem Array erstellen. 1 Datenspeicher pro Host, wobei alle Server für vMotion auf die anderen zugreifen. Ich weiß nicht viel über das IBM-Array. Mit EMC würde ich eine einzelne RAID10-Gruppe mit 3 LUNs für jeden Datenspeicher erstellen. Mit diesem Setup eignet sich der Host mit den 8-Gbit-HBAs hervorragend für Ihre höheren E / A-Systeme.

Sie können 1 Datenspeicher / Server ausführen, und es gibt einige Fälle, in denen ich das selbst mache, aber ich mache das nur mit der SAN-Replikation auf speziellen Servern. Das Verwalten von 87 verschiedenen Datenspeichern auf 9 Servern für vMotion wird beim Einrichten verwirrend! Die meisten meiner VMs befinden sich in gemeinsam genutzten Datenspeichern mit 5 bis 10 Servern, je nachdem, wie viel Speicherplatz sie benötigen.

Eine letzte Anmerkung. Wenn Sie Server in einem Failover-Paar / Cluster oder mit einem Lastenausgleich haben, möchten Sie diese in verschiedenen Datenspeichern haben. Sie möchten nicht, dass der Datenspeicher ausfällt und dann keine Server mehr vorhanden sind. Zugegeben, wenn Sie das Array verlieren, haben Sie alles verloren, aber deshalb sichern wir, oder?


2
Es fällt mir schwer zu glauben, dass das OP mehr als 2x4Gb Bandbreite oder sogar 1x4Gb benötigt. Können Sie erklären, warum sich dieses Upgrade lohnt, abgesehen von "mehr ist immer besser"? Das Erstellen von 3 Datenspeichern klingt nach einer guten Balance, aber die Aussage "einer pro Host" ist verwirrend, da offensichtlich alle Hosts auf alle Datenspeicher zugreifen können. Andernfalls können Sie Storage vMotion, vMotion oder HA nicht verwenden ...
Jeremy

Ich sage nicht, 8 GB auf der ganzen Linie hinzuzufügen, wie gesagt, es ist eine Empfehlung, keine Anforderung. 2x4Gb ist großartig, und ich würde niemals 1x4Gb machen, nur weil Sie den redundanten Pfad benötigen. Wenn Sie es auf einem haben, kann nur eine Erweiterung auf höhere E / A-Systeme erfolgen. Heck, ich betreibe derzeit unser Exchange-System mit 2x4Gb HBAs, aber sie haben nur 3-4 VMs pro Host.
ARivera3483
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.