Wie verwende ich iSCSI MPIO, um die Bandbreite mit XenServer zu erhöhen?

Wie verwende ich iSCSI MPIO, um die Bandbreite mit XenServer zu erhöhen?

Ich habe einen FreeNAS-Server mit vier Netzwerkschnittstellen. Der iSCSI-Verkehr läuft über zwei dieser Schnittstellen und jede Schnittstelle hat eine IP-Adresse in einem anderen Subnetz. Als Beispiel:

igb0: 192.168.10.1/24 igb1: 192.168.11.1/24

Es gibt drei XenServer-Hosts mit nur einer Schnittstelle für iSCSI-Verkehr. Im Schema sind also zwei Schnittstellen auf dem Speicher und insgesamt drei auf den Hosts vorhanden.

Mein Plan bestand darin, eine Verbindung von bis zu 2 GBit mit den Hosts herzustellen, begrenzt auf 1 GBit pro Host.

Das Problem beginnt mit der unterschiedlichen Subnetzbildung. Ich weiß nicht, wie ich zwei verschiedene IP-Adressen auf dieselbe Netzwerkschnittstelle auf den XenServer-Hosts setzen kann. Das XenCenter lässt das einfach nicht zu. Eine andere Idee war, diese Art von Datenverkehr mit unterschiedlichen VLANs zu isolieren. Das ist in Ordnung, aber es scheint auch nicht zu funktionieren.

EDIT: Leider funktioniert LACP nicht wie erwartet. Weitere Informationen finden Sie in den FreeNAS-Dokumenten: „LACP und andere Formen der Link-Aggregation funktionieren im Allgemeinen nicht gut mit Virtualisierungslösungen. Erwägen Sie in einer virtualisierten Umgebung die Verwendung von iSCSI MPIO durch die Erstellung eines iSCSI-Portals. Dadurch kann ein iSCSI-Initiator mehrere Links zu einem Ziel erkennen und diese für eine höhere Bandbreite oder Redundanz nutzen. Diese Anleitung enthält Anweisungen zum Konfigurieren von MPIO auf ESXi.“

Deshalb versuche ich, MPIO auch mit VLANs und Hacks einzurichten, um die 2 Gbit/s für den Speicher zu erreichen.

Antwort1

Wenn jeder Host nur eine Schnittstelle für iSCSI hat, können Sie MPIO mit dem hier beschriebenen Setup nicht verwenden. Sie sollten das FreeNAS-System jedoch so konfigurieren können, dass es Link Aggregation (LACP) verwendet, sodass Sie zwei Hosts gleichzeitig mit jeweils 1 GB (insgesamt 2 GB vom FreeNAS) bedienen können. Sehen Sie sich statt MPIO LACP an (oder besorgen Sie sich eine zweite Netzwerkkarte für jeden Host).

EDIT: Der Grund, warum LACP im Allgemeinen nicht für die Virtualisierung empfohlen wird, liegt darin, dass es nicht das tut, was die Leute erwarten. Normalerweise erwarten sie, dass sie durch die Platzierung von zwei NICs auf einem Host und zwei NICs auf dem Speicher die Bandbreite zum Speicher für eine einzelne VM (oder sogar von mehreren VMs auf diesem einen Host) verdoppeln können. So funktioniert es nicht, aber MPIO funktioniert, wenn es richtig konfiguriert ist.Jedoch, das ist eindeutig nicht das, was Sie versuchen. Wenn ich Ihre ursprüngliche Frage richtig verstehe, haben Sie zwei 1-GB-NICs in der Speicherbox und eine 1-GB-NIC in jedem der XenServer-Hosts (zumindest für den Speicher – ignorieren wir für den Moment die andere Netzwerkverbindung). Sie möchten, dass jeder der Hosts seine Verbindung zur Speicherbox gleichzeitig voll auslasten kann.LACP auf der Storagebox ist hier genau die richtige Lösung(LACP ist auf den XenServer-Hosts nicht erforderlich, da diese jeweils nur über eine Netzwerkkarte verfügen).

Wenn Sie wirklich darauf bestehen, dass dies mit MPIO funktioniert, ist dies möglich, wäre aber ein schrecklicher, schmutziger Hack. Sie müssten im Grunde jeden Host mit einer Dummy-NIC auf demandereSpeichernetzwerk, dann sag XenServer, die beiden NICs in einer MPIO-Konfiguration zu verwenden. XenCenter lässt dich das sicherlich nicht so konfigurieren, also müsstest du es von der Kommandozeile aus hacken. Ich werde dir nicht sagen, wie das geht, denn das ist diefalschwas zu tun ist. Es würde wahrscheinlich nicht mehr funktionieren, wenn Sie Konfigurationsänderungen vornehmen, und mit ziemlicher Sicherheit auch, wenn Sie XenServer aktualisieren.

Vertrauen Sie der Community: Konfigurieren Sie LACP nur auf der Storage-Box, und Sie erhalten, was Sie möchten. Wenn Sie zur Beruhigung eine analoge Konfiguration benötigen, stellen Sie sich vor, Sie installieren eine 2-GB-NIC in der FreeNAS-Box. (Die andere Lösung besteht natürlich darin, eine 10-GB-NIC in die FreeNAS-Box einzubauen und sie mit einem 10-GB-Port des Switches zu verbinden, mit dem die Hosts verbunden sind, aber ich vermute, dass Ihr Switch keinen 10-GB-Port hat.)

Antwort2

Verwenden Sie LACP für NFS. Verwenden Sie MPIO für iSCSI.

Wenn Ihre Hypervisor-Hosts keine Speicherschnittstellenredundanz haben,das istworauf Sie Ihre Aufmerksamkeit richten sollten; keine Hacks, kein Blödsinn. Fügen Sie Ihren Hosts eine zusätzliche Netzwerkkarte hinzu und konfigurieren Sie MPIO.

Antwort3

LACP

Die Verbindungsbündelung erfolgt auf der Ethernet-Schicht (L2), nicht auf der IP-Schicht (L3). Das LACP-Protokoll beinhaltet einen Hash, der ein L2-Hash, ein L3-Hash oder sogar ein L4-Hash sein kann (d. h. es werden die TCP/UDP-Portnummern untersucht), und dieser Hash verhindert (vom Design her) eine einzelne Sitzung, die mehr als eine einzige physische Schnittstelle umfasst. Daher bietet Ihnen eine einzelne iSCSI-Sitzung zu einem Ziel über LACP bestenfalls die Geschwindigkeit einer Schnittstelle.

MPIO

Es ist möglich, mehrere Sitzungen zwischen einem einzelnen Initiator und einem einzelnen Ziel unter einer bestimmten IP-Adresse zu öffnen. Wenn dies über eine LACP-gebundene Verbindung erfolgt, gibt es Gründe, warum Sie dies tun möchten. Leider unterstützen dies nicht alle Kombinationen aus Initiator und Ziel. Bei meinen Tests mit Citrix XenServer 6.2 (dem kostenlos herunterladbaren Installationsprogramm, nicht einer erweiterten Version) habe ich festgestellt, dass bei aktiviertem Multipath IO genau eine Sitzung zu jeder IP-Adresse geöffnet wird, die es finden kann. Wenn Sie also mehrere Pfade möchten, müssen Sie mehrere IP-Adressen auf mehreren Schnittstellen einrichten.

Neuere Versionen von Linux Open-iSCSI verfügen über diese zusätzliche Funktion, daher nehme ich an, dass Xenserver diese Funktion irgendwann auch erhalten wird.

verwandte Informationen