Bewährte Verfahren für Block Storage for Classic
Befolgen Sie unsere bewährten Verfahren, um die Leistung Ihres Speichers zu maximieren und Ausfallzeiten von Anwendungen zu vermeiden.
Best Practice 1-Pfad löschen
Zur Erzielung der maximalen E/A-Operationen pro Sekunde müssen geeignete Netzressourcen eingesetzt werden.
-
Führen Sie den Speicherdatenverkehr in einem dedizierten VLAN aus. Wenn der Speicherdatenverkehr über Software-Firewalls geleitet wird, erhöht sich dadurch die Latenz und die Speicherleistung wird beeinträchtigt. Es ist am besten, den Speicherdatenverkehr über ein VLAN zu leiten, das die Firewall umgeht. Weitere Informationen finden Sie unter Speicherdatenverkehr an eigene VLAN-Schnittstelle weiterleiten.
-
Vermeiden Sie das Routing Ihres Speicherdatenverkehrs an ein Gateway-Gerät wann immer möglich. Wenn Speicherdatenverkehr an eine Gateway-Einheit weitergeleitet wird, kann dies Latenzzeit zum Speicherdatenverkehr hinzufügen oder zu einer Unterbrechung des Speicherdatenverkehrs führen, wenn die Firewall in der Gateway-Einheit fehlerhaft konfiguriert ist. Die Speicherunterbrechung trifft insbesondere dann zu, wenn eine Wartung wie z. B. ein Neustart auf einer einzelnen (nicht in Gruppen zusammengefassten) Gateway-Einheit erforderlich ist. Wenn ein Speicherverkehr über ein Gateway-Gerät geleitet werden muss, stellen Sie sicher, dass das Gateway-Gerät über eine Schnittstelle mit mindestens 10 Gbps verfügt, da das Gateway-Gerät sonst zu einem Netzwerkengpass werden könnte.
-
Verwenden Sie eine schnellere NIC. Durchsatzgrenzwerte werden auf LUN-Ebene festgelegt und eine schnellere Schnittstelle erhöht diesen Grenzwert nicht. Bei einer langsameren Ethernet-Verbindung kann Ihre Bandbreite jedoch ein potenzielles Hindernis für das Erreichen der besten Leistungsstufen sein.
-
Wählen Sie eine höhere Bandbreite aus Die Geschwindigkeit Ihrer Ethernet-Verbindung muss höher als der erwartete maximale Durchsatz von Ihrem Datenträger sein.Grundsätzlich dürfte Ihre Ethernet-Verbindung nicht über 70% der verfügbaren Bandbreite hinaus ausgelastet werden.
Wenn Sie beispielsweise über 6.000 IOPS verfügen und eine Blockgröße von 16 KB verwenden, sind auf dem Datenträger etwa 94 MBps möglich.Wenn Sie jedoch eine 1-Gbps-Ethernet-Verbindung zu Ihrem Datenträger haben, wird dies zu einem Engpass, wenn Ihre Server versuchen, den maximal verfügbaren Durchsatz zu nutzen. Das liegt daran, dass 70 % der theoretischen Grenze einer 1-Gbps-Ethernet-Verbindung (125 MB pro Sekunde) nur 88 MB pro Sekunde ermöglichen würden.
Best Practice 2-Mehrere Pfade für Redundanz einrichten
Block Storage for Classic basiert auf erstklassiger, bewährter Hardware und Software für Unternehmen, um eine hohe Verfügbarkeit und Betriebszeit zu gewährleisten. Die Daten werden redundant auf mehreren physischen Festplatten auf HA-gekoppelten Knoten gespeichert. Jeder Speicherknoten verfügt über mehrere Pfade zu seinen eigenen Solid-State-Laufwerken und den SSDs des Partnerknotens. Diese Konfiguration schützt vor Pfadfehlern und Controllerfehlern, da der Knoten weiterhin auf die Platten seines Partners zugreifen kann, um die Produktivität zu steigern. In der Tat kann das System mehrere Platten im Cluster gleichzeitig verlieren, ohne die Kundenleistung oder das Risiko eines Datenverlusts zu beeinträchtigen. Redundante Netzports und -pfade schützen vor Netzausfällen über die Cloudverbindungen hinweg.
-
Leiten Sie den iSCSI-Verkehr nicht über den 802.3ad LACP-Port-Kanal. LACP (Link Aggregation Control Protocol) wird nicht als Konfiguration mit iSCSI empfohlen.
-
Verwenden Sie ein Multi-Path Input/Output (MPIO)-Framework für E/A-Ausgleich und Redundanz. MPIO ist ein Framework zum Konfigurieren von Lastausgleichs-und Failover-Prozessen für Verbindungen zu Speichereinheiten. Multipathing-Lösungen verwenden redundante physische Pfadkomponenten wie Adapter, Kabel und Netzswitches, um logische Pfade zwischen dem Server und der Speichereinheit zu erstellen. Jeder Speicherknoten verfügt über mehrere Pfade zu den SSD-Laufwerken. Der Host benötigt eine Möglichkeit, die E/A-Last zwischen den Pfaden zu verteilen und die interne Funktionsübernahme von einem Pfad zum nächsten zu handhaben. In dieser Situation kommt MPIO ins Spiel, Server würden mehrere Instanzen derselben Platte ohne MPIO sehen.
Mit einer MPIO-Konfiguration kann ein Server mit mehreren NICs Eingaben und Ausgaben über alle verfügbaren Schnittstellen an ein entsprechendes MPIO-fähiges Speichergerät übertragen und von einem solchen empfangen. Diese Konfiguration bietet Redundanz, die sicherstellen kann, dass der Speicherverkehr auch dann konstant bleibt, wenn eine oder mehrere Netzwerkkomponenten ausfallen und der Pfad ausfällt. Die Multipathing-Logik verwendet einen alternativen Pfad für Ein-/Ausgabe, damit Anwendungen weiterhin auf ihre Daten zugreifen können. Wenn ein Server über zwei 1-Gb-NICs und der Speicherserver über zwei 1-Gb-NICs verfügt, beträgt der theoretische maximale Durchsatz etwa 200 MB/s.
Es ist zwar möglich, Block Storage for Classic mit nur einem einzigen Pfad zu verknüpfen, es ist jedoch wichtig, Verbindungen auf beiden Pfaden herzustellen, um sicherzustellen, dass es nicht zu einer Unterbrechung des Dienstes kommt. Falls MPIO nicht korrekt konfiguriert ist, wird die Verbindung zum Speichermedium möglicherweise getrennt und es wird im Status 'offline' angezeigt, wenn ein Netzausfall auftritt oder wenn IBM Cloud®-Teams Wartungsarbeiten durchführen.
-
Fügen Sie bei Bedarf iSCSI-Mehrfachsitzungen hinzu. Die Verwendung mehrerer Sitzungen pro Ziel (MS/T) ist eine Strategie zur Optimierung der Speicherleistung, die von Oracledokumentiert wurde. Durch die Verwendung von MS/T und die Erstellung mehrerer TCP-Verbindungen können Sie den Netzwerkstapel besser nutzen. Sie können die Leistung steigern, indem Sie mehrere Sende- und Empfangs-Threads verwenden.
Fügen Sie persistente iSCSI-Mehrfachsitzungen über die iscsiadm-CLI hinzu.
-
Vorhandene Sitzungen auflisten.
iscsiadm -m session
-
Ändern Sie die Anzahl der Sitzungen mit dem folgenden Befehl. Diese Konfigurationsänderung ist persistent, wenn der Host neu gestartet wird.
iscsiadm -m node -T <IQN> -p <IP> --op update -n node.session.nr_sessions -v <TOTAL_SESSION>
Im folgenden Beispiel werden drei weitere Sitzungen (insgesamt vier) zum Zielportal 161.26.115.77:3260hinzugefügt.
iscsiadm -m node -T iqn.1992-08.com.netapp:stfdal1306 -p 161.26.115.77:3260 --op update -n node.session.nr_sessions -v 4
-
Melden Sie sich am Portal an, um die zusätzlichen Sitzungen einzurichten.
iscsiadm -m node -T iqn.1992-08.com.netapp:stfdal1306 -p 161.26.115.77:3260 -l
-
Listen Sie Sitzungen auf, um die hinzugefügten Sitzungen für die einzelne Portal-IP anzuzeigen.
iscsiadm -m session
-
Melden Sie sich von der iSCSI-Sitzung ab, indem Sie die Sitzungs-ID anstelle des X im folgenden Befehl verwenden.
iscsiadm -m session -r X -u
-
Best Practice 3-Host und Anwendungen optimieren
-
Verwenden Sie den E/A-Scheduler, der Ihren Anforderungen am besten entspricht. E/A-Scheduler helfen bei der Optimierung von Plattenzugriffsanforderungen. Sie erzielen traditionell eine Optimierung, indem sie E/A-Anforderungen zusammenführen. Durch die Gruppierung von Anforderungen in ähnlichen Abschnitten der Platte muss das Laufwerk nicht so häufig "suchen", was die Gesamtantwortzeit für Plattenoperationen verbessert. In modernen Linux-Implementierungen sind mehrere Optionen für den E/A-Scheduler verfügbar. Jeder der Scheduler hat seine eigene eindeutige Methode zum Planen von Plattenzugriffsanforderungen.
-
Deadline ist der Standard-E/A-Scheduler unter Red Hat 7.9und muss normalerweise nicht in einen anderen E/A-Scheduler geändert werden. Es ist ein latenzorientierter Scheduler, der eine separate Lesewarteschlange und eine separate Schreibwarteschlange erstellt. Jeder E/A-Anforderung ist eine Zeitmarke zugeordnet, die vom Kernel für eine Verfallszeit verwendet wird. Während dieser Scheduler auch versucht, die Warteschlangen auf der Basis einer möglichst effizienten Reihenfolge zu bedienen, fungiert die Ablaufzeit als "Endtermin" für jede E/A-Anforderung. Wenn eine E/A-Anforderung ihren Endtermin erreicht, wird sie mit Push-Operation an die höchste Priorität übertragen.
-
Keine Operation (NOOP) ist ein Basisscheduler, der die für ihn kommende Ein-/Ausgabe übergibt. Dieser Scheduler stellt alle E/A-Anforderungen in eine FIFO-Warteschlange (First In/First Out). Es ist ein nützliches Tool, um zu prüfen, ob komplexe Entscheidungen über die E/A-Terminierung anderer Scheduler E/A-Leistungsregressionen verursachen. Dieser Scheduler wird für Konfigurationen mit Einheiten empfohlen, die die E/A-Terminierung selbst durchführen, z. B. intelligenter Speicher oder in Multipathing-Umgebungen. Wenn Sie einen komplexeren Scheduler auf dem Host auswählen, können der Scheduler des Hosts und der Scheduler der Speichereinheit miteinander konkurrieren und die Leistung beeinträchtigen. Die Speichereinheit kann normalerweise bestimmen, wie die Ein-/Ausgabe am besten geplant werden soll. Weitere Informationen zum Überprüfen und Konfigurieren des E/A-Schedulers finden Sie unter Red Hat' s How to use the NOOP or None IO Schedulers.
-
Completely fair queuing (CFQ) verwendet sowohl Aufzüge als auch die Zusammenführung von Anforderungen und ist ein wenig komplexer als die NOOP-oder Endterminplaner. Dies ist der Standardscheduler für viele Linux-Distributionen. Er gruppiert gleichzeitige Anforderungen, die von Operationen ausgeführt werden, in einer Reihe von Prozesspools, bevor er Zeitscheiben für die Verwendung der Platte für jede Warteschlange zuordnet.
Wenn Ihre Arbeitslast von interaktiven Anwendungen dominiert wird, können sich die Benutzer über die langsame Leistung von Datenbanken mit vielen E/A-Operationen beklagen. In solchen Umgebungen finden Leseoperationen wesentlich häufiger statt als Schreiboperationen, und Anwendungen warten eher auf das Lesen von Daten. Sie können die Standardeinstellungen des E/A-Planers überprüfen und verschiedene Planer ausprobieren, um sie für Ihre spezifische Arbeitslast zu optimieren.
-
-
Optimieren Sie die E/A-Warteschlangenlänge. Ändern Sie
/etc/iscsi/iscsid.conf node.session.queue_depth
vom Standardwert 32 in 64. Die meisten Hostbusadapter (HBA) verfügen über eine Standardwarteschlangenlänge von etwa 32, was in der Regel ausreicht, um bis zu den maximalen IOPS-Zielwerten zu generieren. Wenn Sie nur einen Pfad zum Datenträger haben, ist das die maximale Anzahl von IOPS. Allerdings könnte dasselbe Volumen mit zwei oder mehr Sitzungen mehr E/A-Vorgänge pro Sekunde des Speicherdurchsatzes auf das Zielvolumen übertragen. Die Kehrseite der zunehmenden E/A-Tiefe ist, dass sich die Latenzzeit erhöht. Aktivieren Sie Jumbo-Frames, um der Latenzzeit entgegenzuwirken. Weitere Informationen zu Empfehlungen zur Hostwarteschlangenlänge finden Sie unter Einstellungen für Hostwarteschlange anpassen. -
Jumbo Frames aktivieren und konfigurieren Sie sie so, dass sie auf dem gesamten Netzwerkpfad gleich sind. von Quellgerät > Switch > Router > Switch > Zielgerät. Wenn die gesamte Kette nicht identisch ist, wird standardmäßig die niedrigste Einstellung der Kette verwendet. IBM Cloud® hat Netzeinheiten, die derzeit auf 9.000 gesetzt sind. Zur Leistungsoptimierung muss für alle Kundeneinheiten derselbe Wert festgelegt werden: 9.000.
Das Einstellen der MTU auf 9000 auf Ihrem Host hat die folgenden Vorteile:
- Daten können in weniger Rahmen übertragen werden.
- Daten können schneller übertragen werden, da weniger Pakete weniger Bytes an Formatinformationen benötigen, die im Paketheader gespeichert sind.
- Der Durchsatz wird erhöht, indem die Anzahl der CPU-Zyklen und Anweisungen für die Paketverarbeitung reduziert wird.
- Jumbo-Frames bieten weniger Chancen, dass Pakete nicht in der richtigen Reihenfolge ankommen oder verloren gehen, was zu weniger erneuten Übertragungen führt. Weniger Neuübertragungen bedeuten weniger Zeit für die TCP-Wiederherstellung. Das Ergebnis ist ein höherer Durchsatz.
-
Befolgen Sie die VMware-spezifischen Best Practices für Teaming. Wenn Sie Teaming verwenden möchten, um die Verfügbarkeit Ihres Netzzugriffs auf das Speicherarray zu erhöhen, müssen Sie die Portsicherheit auf dem Switch für die beiden Ports inaktivieren, auf denen die virtuelle IP-Adresse gemeinsam genutzt wird. Diese Portsicherheitseinstellung dient dazu, das Spoofing von IP-Adressen zu verhindern. Daher aktivieren viele Netzadministratoren diese Einstellung. Wenn Sie es nicht ändern, verhindert die Portsicherheitseinstellung das Failover der virtuellen IP von einem Switch-Port auf einen anderen und die Teambildung kann nicht von einem Pfad auf einen anderen übertragen werden. Bei den meisten LAN-Switches wird die Portsicherheit auf Portebene aktiviert und kann daher für jeden Port ein-oder ausgeschaltet werden.