Dela via


Optimera prestanda för ditt elastiska SAN

Den här artikeln innehåller några allmänna riktlinjer för hur du får optimala prestanda med en miljö som använder ett Elastiskt SAN i Azure.

Optimering på klientsidan

Allmänna rekommendationer (virtuella Windows- och Linux-datorer)

  • För bästa prestanda distribuerar du dina virtuella datorer och elastiska SAN i samma zon och i samma region.

  • Vm Storage I/O till elastiska SAN-volymer använder vm-nätverksbandbredd, så traditionella gränser för diskdataflöde på en virtuell dator gäller inte för elastiska SAN-volymer. Välj en virtuell dator som kan ge tillräckligt med bandbredd för produktion/VM-till-VM I/O och iSCSI I/O för anslutna elastiska SAN-volymer. I allmänhet bör du använda virtuella datorer i Gen 5 (D/E/M-serien) för bästa prestanda.

  • Aktivera "Accelererat nätverk" på den virtuella datorn när den virtuella datorn skapas. Information om hur du gör det via Azure PowerShell eller Azure CLI eller för att aktivera accelererat nätverk på befintliga virtuella datorer finns i Använda Azure PowerShell för att skapa en virtuell dator med accelererat nätverk

Skärmbild av flödet för att skapa virtuella datorer, aktivera accelererat nätverk markerat.

  • Du måste använda 32 sessioner per målvolym för varje volym för att uppnå maximala IOPS- och/eller dataflödesgränser. Använd Multipath I/O (MPIO) på klienten för att hantera dessa flera sessioner till varje volym för belastningsutjämning. Skript är tillgängliga för Windows, Linux eller på sidan Anslut till volym för dina volymer i Azure-portalen, som använder 32 sessioner som standard. Windows software iSCSI-initieraren har en gräns på högst 256 sessioner. Om du behöver ansluta fler än åtta volymer till en virtuell Windows-dator minskar du antalet sessioner till varje volym efter behov.

MPIO

Windows

Använd följande kommandon för att uppdatera inställningarna:

# 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

Mer information om MPIO-cmdletar finns i MPIO-referens.

Linux

Uppdatera /etc/multipath.conf-filen med följande:

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 1			# To disable I/O queueing after retrying once when all paths are down
}
devices {
  device {
    vendor "MSFT"
    product "Virtual HD"
  }
}

iSCSI

Windows

Uppdatera registerinställningarna nedan för iSCSI-initieraren i Windows.

  1. Öppna Registereditorn:
  2. Välj Start, skriv regedit i sökrutan och tryck på Retur.
  3. Gå till följande plats: [\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0004 (Microsoft iSCSI Initiator)\Parameters]
  4. Uppdatera följande inställningar. Högerklicka på varje inställning och välj Ändra. Ändra Bas till Decimal, uppdatera värdet och välj OK.
beskrivning Parameter och värde
Anger maximalt antal data som initieraren skickar i en iSCSI PDU till målet till 256 KB MaxTransferLength=262144
Anger maximal SCSI-nyttolast som initieraren förhandlar med målet till 256 KB MaxBurstLength=262144
Anger maximalt antal ej begärda data som initieraren kan skicka i en iSCSI PDU till ett mål på 256 KB FirstBurstLength=262144
Anger maximalt antal data som initieraren kan ta emot i en iSCSI PDU från målet till 256 KB MaxRecvDataSegmentLength=262144
Inaktiverar R2T-flödeskontroll InitialR2T=0
Aktiverar omedelbara data ImmediateData=1
Anger tidsgränsvärdet för WMI-begäranden till 30 sekunder WMIRequestTimeout = 30 sekunder
Anger timeout-värde för länk nedtid till 30 sekunder LinkDownTime = 30 sekunder

I klusterkonfigurationer kontrollerar du att iSCSI-initierarnamn är unika för alla noder som delar volymer. I Windows kan du uppdatera dem via iSCSI-initierarappen.

  1. Välj Start, sök efter iSCSI-initieraren i sökrutan. Då öppnas iSCSI-initieraren.

  2. Välj Konfiguration för att se aktuellt initierarnamn.

    Skärmbild av konfigurationen av iSCSI-initieraren i Windows.

  3. Om du vill ändra den väljer du Ändra, anger nytt initierarnamn och väljer OK.

    Skärmbild av uppdatering av iSCSI-initierarens namn i Windows.

Linux

Uppdatera följande inställningar med rekommenderade värden i den globala iSCSI-konfigurationsfilen (iscsid.conf, som vanligtvis finns i katalogen /etc/iscsi) på klienten innan du ansluter några volymer till den. När en volym är ansluten skapas en nod tillsammans med en konfigurationsfil som är specifik för noden (till exempel på Ubuntu finns den i /etc/iscsi/nodes/$volume_iqn/portal_hostname,$port katalog) som ärver inställningarna från den globala konfigurationsfilen. Om du redan har anslutit en eller flera volymer till klienten innan du uppdaterar den globala konfigurationsfilen uppdaterar du den nodspecifika konfigurationsfilen för varje volym direkt eller med följande kommando:

sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n $iscsi_setting_name -v $setting_value

Där

  • $volume_iqn: Elastic SAN volume IQN
  • $portal_hostname: Elastic SAN-volymportalens värdnamn
  • $port: 3260
  • $iscsi_setting_name: parameter för varje inställning som anges nedan
  • $setting_value: värde som rekommenderas för varje inställning nedan
beskrivning Parameter och värde
# Ange maximala data som initieraren skickar i en iSCSI PDU till målet till 256 KB node.conn[0].iscsi. MaxXmitDataSegmentLength = 262144
# Ange maximal SCSI-nyttolast som initieraren förhandlar med målet till 256 KB node.session.iscsi.MaxBurstLength = 262144
# Ange maximalt antal oönskade data som initieraren kan skicka i en iSCSI PDU till ett mål på 256 KB node.session.iscsi.FirstBurstLength = 262144
# Ange maximala data som initieraren kan ta emot i en iSCSI PDU från målet till 256 KB node.conn[0].iscsi. MaxRecvDataSegmentLength = 262144
# Inaktivera R2T-flödeskontroll node.session.iscsi.InitialR2T = Nej
# Aktivera omedelbara data node.session.iscsi.ImmediateData = Ja
# Ange timeout-värde för WMI-begäranden node.conn[0].timeo.login_timeout = 30

node.conn[0].timeo.logout_timeout = 15
# Aktivera CRC-sammandragskontroll för huvud och data node.conn[0].iscsi. HeaderDigest = CRC32C

node.conn[0].iscsi. DataDigest = CRC32C

I klusterkonfigurationer kontrollerar du att iSCSI-initierarnamn är unika för alla noder som delar volymer. I Linux kan du ändra /etc/iscsi/initiatorname.iscsi för att uppdatera initierarnamnet. Skärmbild som uppdaterar iSCSI-initierarens namn i Linux.

Elastiska SAN-optimeringar

Innan du distribuerar ett elastiskt SAN är det nödvändigt att fastställa den optimala storleken på det elastiska SAN som du distribuerar för att uppnå rätt balans mellan prestanda för dina arbetsbelastningar och kostnader. Använd följande steg för att fastställa den bästa storleksändringen för dig:

Med din befintliga lagringslösning väljer du ett tidsintervall (dag/vecka/kvartal) för att spåra prestanda. Det bästa tidsintervallet är en som är en bra ögonblicksbild av dina program/arbetsbelastningar. Under den tidsperioden registrerar du det kombinerade maximala IOPS- och dataflödet för alla arbetsbelastningar. Om du använder ett intervall som är högre än en minut, eller om någon av dina arbetsbelastningar har flaskhalsar med den aktuella konfigurationen, kan du överväga att lägga till mer baskapacitet i din Elastic SAN-distribution. Du bör lämna lite utrymme när du bestämmer din baskapacitet, för att ta hänsyn till tillväxten. Resten av elastic SAN-lagringen bör använda ytterligare kapacitet för att spara på kostnaden.

Mer information om prestanda finns i Elastisk SAN och prestanda för virtuella datorer.