Udostępnij za pośrednictwem


Optymalizowanie wydajności elastycznej sieci SAN

Ten artykuł zawiera ogólne wskazówki dotyczące uzyskiwania optymalnej wydajności w środowisku korzystającym z elastycznej sieci SAN platformy Azure.

Optymalizacje po stronie klienta

Ogólne zalecenia (Maszyny wirtualne z systemem Windows i Linux)

  • Aby uzyskać najlepszą wydajność, wdróż maszyny wirtualne i elastyczną sieć SAN w tej samej strefie i tym samym regionie.

  • We/wy magazynu maszyny wirtualnej do elastycznych woluminów SIECI SAN są używane przepustowość sieci maszyny wirtualnej, więc tradycyjne limity przepływności dysku na maszynie wirtualnej nie mają zastosowania do woluminów elastycznych sieci SAN. Wybierz maszynę wirtualną, która może zapewnić wystarczającą przepustowość dla operacji we/wy środowiska produkcyjnego/maszyny wirtualnej i we/wy iSCSI do dołączonych elastycznych woluminów SIECI SAN. Ogólnie rzecz biorąc, w celu uzyskania najlepszej wydajności należy użyć maszyn wirtualnych 5. generacji (serii D/E/M).

  • Włącz opcję "Przyspieszona sieć" na maszynie wirtualnej podczas tworzenia maszyny wirtualnej. Aby to zrobić za pośrednictwem programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure lub włączenia przyspieszonej sieci na istniejących maszynach wirtualnych, zobacz Tworzenie maszyny wirtualnej z przyspieszoną siecią przy użyciu programu Azure PowerShell

Zrzut ekranu przedstawiający przepływ tworzenia maszyny wirtualnej z wyróżnioną przyspieszoną siecią.

  • Aby osiągnąć maksymalną liczbę operacji we/wy na sekundę i/lub limity przepływności, należy użyć 32 sesji na wolumin docelowy dla każdego woluminu. Użyj wielościeżkowego wejścia/wyjścia (MPIO) na kliencie, aby zarządzać tymi wieloma sesjami na każdym woluminie na potrzeby równoważenia obciążenia. Skrypty są dostępne dla systemu Windows, Linux lub na stronie Połączenie woluminów w witrynie Azure Portal, która domyślnie używa 32 sesji. Inicjator iSCSI oprogramowania systemu Windows ma limit maksymalnie 256 sesji. Jeśli musisz połączyć więcej niż osiem woluminów z maszyną wirtualną z systemem Windows, zmniejsz liczbę sesji do każdego woluminu zgodnie z potrzebami.

Wielościeżkowego wejścia / wyjścia

Windows

Użyj następujących poleceń, aby zaktualizować ustawienia:

# 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

Aby uzyskać więcej informacji na temat poleceń cmdlet MPIO, zobacz Dokumentacja funkcji MPIO.

Linux

Zaktualizuj plik /etc/multipath.conf o następujące elementy:

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

Zaktualizuj poniższe ustawienia rejestru dla inicjatora iSCSI w systemie Windows.

  1. Otwórz Edytor rejestru:
  2. Wybierz pozycję Start, wpisz regedit w polu wyszukiwania i naciśnij klawisz Enter.
  3. Przejdź do następującej lokalizacji: [\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0004 (inicjator iSCSI)\Parameters]
  4. Zaktualizuj następujące ustawienia. Kliknij prawym przyciskiem myszy każde ustawienie i wybierz polecenie Modyfikuj. Zmień wartość Base na Decimal, zaktualizuj wartość i wybierz przycisk OK.
opis Parametr i wartość
Ustawia maksymalną ilość danych, które inicjator wysyła w obiekcie pdU iSCSI do obiektu docelowego na 256 KB MaxTransferLength=262144
Ustawia maksymalny ładunek SCSI negocjowany przez inicjatora z obiektem docelowym na 256 KB MaxBurstLength=262144
Ustawia maksymalnie niepożądane dane, które inicjator może wysyłać w pdU iSCSI do obiektu docelowego do 256 KB FirstBurstLength=262144
Ustawia maksymalną ilość danych, które inicjator może odbierać w obiekcie pdU iSCSI z docelowego do 256 KB MaxRecvDataSegmentLength=262144
Wyłącza sterowanie przepływem R2T InitialR2T=0
Włącza natychmiastowe dane ImmediateData=1
Ustawia wartość limitu czasu dla żądań WMI do 30 sekund WMIRequestTimeout = 30 sekund
Ustawia wartość limitu czasu dla czasu połączenia do 30 sekund LinkDownTime = 30 sekund

W konfiguracjach klastra upewnij się, że nazwy inicjatorów iSCSI są unikatowe we wszystkich węzłach, które współużytkują woluminy. W systemie Windows można je zaktualizować za pomocą aplikacji inicjatora iSCSI.

  1. Wybierz pozycję Start, wyszukaj inicjator iSCSI w polu wyszukiwania. Spowoduje to otwarcie inicjatora iSCSI.

  2. Wybierz pozycję Konfiguracja , aby wyświetlić bieżącą nazwę inicjatora.

    Zrzut ekranu przedstawiający konfigurację inicjatora iSCSI w systemie Windows.

  3. Aby go zmodyfikować, wybierz pozycję Zmień, wprowadź nową nazwę inicjatora i wybierz przycisk OK.

    Zrzut ekranu przedstawiający aktualizowanie nazwy inicjatora iSCSI w systemie Windows.

Linux

Zaktualizuj następujące ustawienia przy użyciu zalecanych wartości w globalnym pliku konfiguracji iSCSI (iscsid.conf, ogólnie znajdującym się w katalogu /etc/iscsi) na kliencie przed połączeniem z nim woluminów. Po nawiązaniu połączenia woluminu węzeł jest tworzony wraz z plikiem konfiguracji specyficznym dla tego węzła (na przykład w systemie Ubuntu, można go znaleźć w katalogu /etc/iscsi/nodes/$volume_iqn/portal_hostname,$port katalogu) dziedzicząc ustawienia z pliku konfiguracji globalnej. Jeśli co najmniej jeden wolumin został już połączony z klientem przed zaktualizowaniem globalnego pliku konfiguracji, zaktualizuj plik konfiguracji specyficzny dla węzła bezpośrednio lub za pomocą następującego polecenia:

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

Gdzie

  • $volume_iqn: elastyczna nazwa IQN woluminu SIECI SAN
  • $portal_hostname: nazwa hosta elastycznego portalu woluminów SIECI SAN
  • $port: 3260
  • $iscsi_setting_name: parametr dla każdego ustawienia wymienionego poniżej
  • $setting_value: wartość zalecana dla każdego poniższego ustawienia
opis Parametr i wartość
# Ustaw maksymalną ilość danych, które inicjator wysyła w obiekcie pdU iSCSI do obiektu docelowego na 256 KB node.conn[0].iscsi. MaxXmitDataSegmentLength = 262144
# Ustaw maksymalny ładunek SCSI negocjowany przez inicjatora z obiektem docelowym na 256 KB node.session.iscsi.MaxBurstLength = 262144
# Ustaw maksymalnie niepożądane dane, które inicjator może wysyłać w jednostki PDU iSCSI do obiektu docelowego na 256 KB node.session.iscsi.FirstBurstLength = 262144
# Ustaw maksymalną ilość danych, które inicjator może odbierać w jednostki PDU iSCSI z obiektu docelowego do 256 KB node.conn[0].iscsi. MaxRecvDataSegmentLength = 262144
# Wyłącz sterowanie przepływem R2T node.session.iscsi.InitialR2T = Nie
# Włączanie danych natychmiastowych node.session.iscsi.ImmediateData = Tak
# Ustaw wartość limitu czasu dla żądań WMI node.conn[0].timeo.login_timeout = 30

node.conn[0].timeo.logout_timeout = 15
# Włącz sprawdzanie skrótów CRC dla nagłówka i danych node.conn[0].iscsi. HeaderDigest = CRC32C

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

W konfiguracjach klastra upewnij się, że nazwy inicjatorów iSCSI są unikatowe we wszystkich węzłach, które współużytkują woluminy. W systemie Linux można zmodyfikować /etc/iscsi/initiatorname.iscsi, aby zaktualizować nazwę inicjatora. Zrzut ekranu przedstawiający aktualizowanie nazwy inicjatora iSCSI w systemie Linux.

Elastyczne optymalizacje sieci SAN

Przed wdrożeniem elastycznej sieci SAN określenie optymalnego rozmiaru wdrożonej elastycznej sieci SAN jest niezbędne do osiągnięcia odpowiedniej równowagi wydajności obciążeń i kosztów. Aby określić najlepsze rozmiary, wykonaj następujące kroki:

W przypadku istniejącego rozwiązania magazynu wybierz interwał czasu (dzień/tydzień/kwartał), aby śledzić wydajność. Najlepszy interwał czasu to taki, który jest dobrą migawką aplikacji/obciążeń. W tym okresie zarejestruj łączną maksymalną liczbę operacji we/wy na sekundę i przepływność dla wszystkich obciążeń. Jeśli używasz interwału wyższego niż minutę lub jeśli którekolwiek z obciążeń ma wąskie gardła z bieżącą konfiguracją, rozważ dodanie większej pojemności podstawowej do wdrożenia elastycznej sieci SAN. Podczas określania pojemności bazowej należy pozostawić trochę miejsca, aby uwzględnić wzrost. Pozostała część magazynu elastycznej sieci SAN powinna korzystać z dodatkowej pojemności, aby zaoszczędzić na kosztach.

Aby uzyskać więcej informacji na temat wydajności, zobacz Wydajność elastycznej sieci SAN i maszyny wirtualnej.