Freigeben über


Optimieren der Leistung Ihrer Elastic SAN-Instanz

Dieser Artikel enthält einige allgemeine Anleitungen zum Erzielen einer optimalen Leistung mit einer Umgebung, die ein Azure Elastic SAN verwendet.

Clientseitige Optimierungen

Allgemeine Empfehlungen

Virtuelle Windows- und Linux-Computer

  • Um eine optimale Leistung zu erzielen, stellen Sie Ihre virtuellen Computer (VM) und Elastic SAN in derselben Zone und in derselben Region bereit.

  • VM-Speicher-E/A zu Elastic SAN-Volumes verwendet VM-Netzwerkbandbreite, sodass herkömmliche Datenträgerdurchsatzgrenzwerte für einen virtuellen Computer nicht für Elastic SAN-Volumes gelten. Wählen Sie einen virtuellen Computer aus, der ausreichende Bandbreite für Produktions-/VM-zu-VM-E/A und iSCSI-E/A für angefügte Elastic SAN-Volumes bereitstellen kann. Im Allgemeinen sollten Sie VMs der Generation 5 (D / E / M) für die beste Leistung verwenden.

  • Aktivieren Sie beschleunigtes Netzwerk auf dem virtuellen Computer während der Erstellung. Informationen dazu über Azure PowerShell oder Azure CLI oder zum Aktivieren des beschleunigten Netzwerks auf vorhandenen virtuellen Computern finden Sie unter Verwenden von Azure PowerShell zum Erstellen eines virtuellen Computers mit beschleunigtem Netzwerk

Screenshot des VM-Erstellungsablaufs, hervorgehobenes beschleunigtes Netzwerk aktivieren.

  • Sie müssen für jedes Volume 32 Sitzungen pro Zielvolume verwenden, um die maximalen IOPS- und/oder Durchsatzgrenzwerte zu erreichen. Verwenden Sie Multipfad-E/A auf dem Client, um diese mehreren Sitzungen für jedes Volume zum Lastenausgleich zu verwalten. Skripte sind für Windows, Linux oder auf der Seite "Mit Volume verbinden" für Ihre Volumes im Azure-Portal verfügbar, die standardmäßig 32 Sitzungen verwenden. Der iSCSI-Initiator der Windows-Software hat maximal 256 Sitzungen. Wenn Sie mehr als acht Volumes mit einer Windows-VM verbinden müssen, verringern Sie die Anzahl der Sitzungen bei Bedarf auf jedes Volume.

Azure VMware-Lösung

  • Bereitstellen Ihres Elastic SAN in derselben Region und Verfügbarkeitszone wie Ihr Azure VMware Solution Cluster

  • Konfigurieren privater Endpunkte vor der Bereitstellung Ihres Elastic SAN-Volumes als externer Datenspeicher

  • Wenn Sie planen, dass Ihre Umgebung jemals über 16 Knoten in einem Azure VMware Solution-Cluster verfügt, verwenden Sie eine der folgenden Konfigurationen, je nachdem, über welche Hosts Sie verfügen.

    • AV36, AV36P, AV52 – Sechs iSCSI-Sitzungen über drei private Endpunkte
    • AV64 – Sieben iSCSI-Sitzungen über sieben private Endpunkte
  • Wenn Ihre Umgebung nicht über 16 Knoten verfügt, verwenden Sie eine der folgenden Konfigurationen.

    • AV36, AV36P, AV52 – Acht iSCSI-Sitzungen über vier private Endpunkte
    • AV64 – Acht iSCSI-Sitzungen über acht private Endpunkte

    Hinweis

    Wenn ein elastisches SAN-Volume an einen Cluster angefügt wird, wird es automatisch an alle Knoten angefügt. Wenn Sie über 16 Knoten verfügen und jeder Knoten so konfiguriert ist, dass acht iSCSI-Sitzungen verwendet werden, die die maximale Anzahl von Verbindungen (128) verwenden. Um sicherzustellen, dass Ihnen bei Bedarf verfügbare iSCSI-Sitzungen zur Verfügung stehen, konfigurieren Sie Ihre Knoten so, dass sieben iSCSI-Sitzungen genutzt werden, falls Sie einen zusätzlichen Knoten zur Wartung anhängen müssen.

  • Verwenden Sie beim Erstellen eines virtuellen Datenträgers die Eager Zeroed Thick Provisioning

  • Größe des ExpressRoute-Gateways, damit es Ihre Durchsatzanforderungen erfüllen kann

  • Konfigurieren Sie Ihr Elastic SAN so, dass es mindestens 16 TiB in seiner Basisgröße hat, damit Sie bis zu der maximalen Leistung Ihrer Elastic SAN-Datenspeicher erhalten können

Multipfad-E/A

Fenster

Verwenden Sie die folgenden Befehle, um Ihre Einstellungen zu aktualisieren:

# Enable multipath support for iSCSI devices
Enable-MSDSMAutomaticClaim -BusType iSCSI

# Set the default load balancing policy based on your requirements. In this example, we set it to round robin which should be optimal for most workloads.
mpclaim -L -M 2

# Set disk time out to 30 seconds
Set-MPIOSetting -NewDiskTimeout 30

Weitere Informationen zu MPIO-Cmdlets finden Sie in der MPIO-Referenz.

Linux (Englisch)

Aktualisieren Sie die Datei "/etc/multipath.conf" mit den folgenden Befehlen:

defaults {
    user_friendly_names yes		# To create ‘mpathn’ names for multipath devices
    path_grouping_policy multibus	# To place all the paths in one priority group
    path_selector "round-robin 0"	# To use round robin algorithm to determine path for next I/O operation
    failback immediate			# For immediate failback to highest priority path group with active paths
    no_path_retry 3			# To disable I/O queueing after retrying once when all paths are down
    polling_interval 5         # Set path check polling interval to 5 seconds
    find multipaths yes        # To allow multipath to take control of only those devices that have multiple paths 
}
devices {
  device {
    vendor "MSFT"
    product "Virtual HD"
  }
}

Azure VMware-Lösung

Microsoft verwaltet MPIO-Einstellungen für Azure VMware Solution. Optimale Werte werden festgelegt, wenn Sie einen Datenspeicher erstellen.

iSCSI

Fenster

Aktualisieren Sie die Registrierungseinstellungen für iSCSI-Initiator unter Windows.

  1. Öffnen Sie den Registrierungs-Editor:
  2. Wählen Sie "Start" aus, geben Sie "regedit" in das Suchfeld ein, und drücken Sie die EINGABETASTE.
  3. Navigieren Sie zum folgenden Speicherort: [\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0004 (Microsoft iSCSI Initiator)\Parameters]
  4. Aktualisieren Sie die folgenden Einstellungen. Klicken Sie mit der rechten Maustaste auf jede Einstellung, und wählen Sie "Ändern" aus. Ändern Sie Base in Dezimal, aktualisieren Sie den Wert und wählen Sie OK aus.
BESCHREIBUNG Parameter und Wert
Legt maximale Daten fest, die der Initiator in einem iSCSI-PDU an das Ziel sendet, auf 256 KB MaxTransferLength=262144
Legt die maximale SCSI-Nutzlast fest, die der Initiator mit dem Zielgerät auf einen Wert von 256 KB aushandelt. MaxBurstLength=262144
Legt die maximale Menge unaufgeforderter Daten fest, die der Initiator in einem iSCSI-PDU an ein Ziel senden kann, auf 256 KB. FirstBurstLength=262144
Legt maximale Daten fest, die der Initiator in einem iSCSI-PDU vom Ziel auf 256 KB empfangen kann MaxRecvDataSegmentLength=262144
Deaktiviert die R2T-Flusssteuerung InitialR2T=0
Ermöglicht sofortige Daten ImmediateData=1
Legt den Timeoutwert für WMI-Anforderungen auf 30 Sekunden fest. WMIRequestTimeout = 30 Sekunden
Legt den Timeoutwert für die Verknüpfungsablaufzeit auf 30 Sekunden fest. LinkDownTime = 30 Sekunden

Stellen Sie in Clusterkonfigurationen sicher, dass iSCSI-Initiatornamen für alle Knoten eindeutig sind, die Volumes freigeben. In Windows können Sie sie über die iSCSI-Initiator-App aktualisieren.

  1. Wählen Sie "Start" aus, suchen Sie im Suchfeld nach iSCSI-Initiator . Dadurch wird der iSCSI-Initiator geöffnet.

  2. Wählen Sie "Konfiguration" aus, um den aktuellen Initiatornamen anzuzeigen.

    Screenshot der Konfiguration des iSCSI-Initiators unter Windows.

  3. Um sie zu ändern, wählen Sie "Ändern", geben Sie den namen des neuen Initiators ein, und wählen Sie "OK" aus.

    Screenshot der Aktualisierung des iSCSI-Initiatornamens unter Windows.

Linux (Englisch)

Aktualisieren Sie die folgenden Einstellungen mit empfohlenen Werten in der globalen iSCSI-Konfigurationsdatei (iscsid.conf, im Allgemeinen im Verzeichnis "/etc/iscsi") auf dem Client, bevor Sie Volumes damit verbinden. Wenn ein Volume verbunden ist, wird ein Knoten zusammen mit einer Konfigurationsdatei erstellt, die für diesen Knoten spezifisch ist (z. B. auf Ubuntu-VMs, sie kann im /etc/iscsi/nodes/$volume_iqn/portal_hostname,$port Verzeichnis gefunden werden), die die Einstellungen von der globalen Konfigurationsdatei erbt. Wenn Sie bereits ein oder mehrere Volumes mit dem Client verbunden haben, bevor Sie die globale Konfigurationsdatei aktualisieren, aktualisieren Sie die knotenspezifische Konfigurationsdatei für jedes Volume direkt oder verwenden den folgenden Befehl:

# Variable declaration
volume_iqn=<Elastic SAN volume IQN>
portal_hostname=<Elastic SAN volume portal hostname>
port=3260

# Set maximum data the initiator sends in an iSCSI PDU to the target to 256 KB
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.conn[0].iscsi.MaxXmitDataSegmentLength -v 262144

# Set maximum SCSI payload that the initiator negotiates with the target to 256 KB
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.session.iscsi.MaxBurstLength -v 262144

# Set maximum unsolicited data the initiator can send in an iSCSI PDU to a target to 256 KB 
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.session.iscsi.FirstBurstLength -v 262144

# Set maximum data the initiator can receive in an iSCSI PDU from the target to 256 KB 
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.conn[0].iscsi.MaxRecvDataSegmentLength -v 262144

# Disable R2T flow control 
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.session.iscsi.InitialR2T -v No

# Enable immediate data
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.session.iscsi.ImmediateData -v Yes

# Set timeout value for WMI requests
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.conn[0].timeo.login_timeout -v 30
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.conn[0].timeo.logout_timeout -v 15

# Enable CRC digest checking for header and data 
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.conn[0].iscsi.HeaderDigest -v CRC32C
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.conn[0].iscsi.DataDigest -v CRC32C 

Stellen Sie in Clusterkonfigurationen sicher, dass iSCSI-Initiatornamen für alle Knoten eindeutig sind, die Volumes freigeben. Ändern Sie unter Linux /etc/iscsi/initiatorname.iscsi, um den Initiatornamen zu aktualisieren. Screenshot zum Aktualisieren des iSCSI-Initiatornamens unter Linux.

Azure VMware-Lösung

Microsoft verwaltet iSCSI-Einstellungen. Optimale Werte werden festgelegt, wenn Sie einen Datenspeicher erstellen.

Flexible SAN-Optimierungen

Bevor Sie ein Elastic SAN bereitstellen, müssen Sie die optimale Größe des von Ihnen bereitgestellten Elastic SAN ermitteln, um die richtige Balance der Leistung für Ihre Workloads und Kosten zu erzielen. Führen Sie die folgenden Schritte aus, um die beste Größenanpassung für Sie zu ermitteln:

Wählen Sie mit Ihrer vorhandenen Speicherlösung ein Zeitintervall (Tag/Woche/Quartal) aus, um die Leistung nachzuverfolgen. Das beste Zeitintervall ist eine gute Momentaufnahme Ihrer Anwendungen/Workloads. Zeichnen Sie im Laufe dieses Zeitraums die kombinierten maximalen IOPS und den Durchsatz für alle Workloads auf. Wenn Sie ein Intervall verwenden, das höher als eine Minute ist oder eine Ihrer Workloads Engpässe mit Ihrer aktuellen Konfiguration hat, sollten Sie erwägen, ihrer Elastic SAN-Bereitstellung mehr Basiskapazität hinzuzufügen. Sie sollten beim Bestimmen der Basiskapazität Platz lassen, um das Wachstum zu berücksichtigen. Der Rest des Speichers Ihres Elastic SAN sollte zusätzliche Kapazität verwenden, um Kosten zu sparen.

Weitere Informationen zur Leistung finden Sie unter Elastic SAN und virtual machine performance.