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
- 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.
- Otwórz Edytor rejestru:
- Wybierz pozycję Start, wpisz regedit w polu wyszukiwania i naciśnij klawisz Enter.
- Przejdź do następującej lokalizacji: [\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0004 (inicjator iSCSI)\Parameters]
- 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.
Wybierz pozycję Start, wyszukaj inicjator iSCSI w polu wyszukiwania. Spowoduje to otwarcie inicjatora iSCSI.
Wybierz pozycję Konfiguracja , aby wyświetlić bieżącą nazwę inicjatora.
Aby go zmodyfikować, wybierz pozycję Zmień, wprowadź nową nazwę inicjatora i wybierz przycisk OK.
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.
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.