SMB wielokanałowy przez VPN: czego klient naprawdę używa
SMB wielokanałowy przez VPN dodaje niewiele kanałów: przeczytaj interfejsy klienta, wybrane połączenia i dialekt SMB, zanim obwiniasz tunel za wolne pliki.
Wolny dostęp do plików przez VPN skłania do traktowania ustawienia wielokanałowego jako rozwiązania, a ustawienie często nie ma z czym pracować. Jeden wirtualny adapter bez RSS nie rozdzieli ruchu na kilka kanałów, niezależnie od tego, co mówi pole wyboru. Liczy się zdolność, którą SMB widzi na obu końcach, a nie specyfikacja fizycznej karty sieciowej laptopa. Poniższy opis zaczyna się od aktywnej sesji i wraca do układu adapterów.
Zacznij od sesji, a nie od specyfikacji karty sieciowej
Najpierw potwierdź, że sesja w ogóle może korzystać z trybu wielokanałowego. Funkcja należy do SMB3, więc starszy dialekt wynegocjowany z urządzeniem lub starym serwerem wyklucza ją, zanim jakiekolwiek pytanie o adapter nabierze znaczenia. Następnie potwierdź, z którym serwerem klient naprawdę się połączył, ponieważ nazwa rozwiązująca się na inny węzeł niż sprawdzany daje przekonujący, ale nieistotny wynik.
Get-SmbConnection
Get-SmbClientConfiguration | Select-Object EnableMultichannel
Get-SmbClientNetworkInterface
Pierwsze polecenie podaje dialekt, serwer i udział w jednym wierszu. Drugie pokazuje, czy funkcja jest włączona u klienta, a trzecie wymienia interfejsy znane SMB wraz z ich zgłoszonymi możliwościami. Wirtualny adapter, który nie zgłasza ani RSS, ani RDMA, mówi, czym może stać się układ.
Jeśli dialekt nie jest SMB3, zatrzymaj się i najpierw rozwiąż tę kwestię. W przeciwnym razie każde późniejsze polecenie opisze funkcję, która nie może zadziałać.
Czytaj interfejsy klienta uczciwie
SMB nie zależy, który adapter przenosi twoją trasę domyślną; wylicza interfejsy, których może użyć, i ocenia każdy z nich. Laptop z Wi-Fi, Ethernetem i adapterem VPN może przedstawić trzy interfejsy, a tylko jeden z nich może być osiągalny dla serwera, z którym rozmawiasz. Pozostałe są kandydatami, nie kanałami.
Czytaj kolumny RSS i RDMA, a nie kolumnę szybkości łącza. Wirtualny adapter zwykle zgłasza wysoką szybkość nominalną bez możliwości RSS, a szybkość nominalna opisuje łącze wirtualne, a nie ścieżkę przez internet. Żadna z tych liczb nie mówi, ilu kanałów używa sesja.
Jeśli adapter nie pokazuje możliwości RSS, obsługiwana poprawka należy do sterownika dostawcy VPN, a nie do zaawansowanych właściwości fizycznej karty sieciowej. Zaznaczenie pola RSS na adapterze sprzętowym niczego nie zmienia w tym, co adapter wirtualny pokazuje SMB.
Oddziel wybrane kanały od odkrytych kandydatów
Lista połączeń to część najczęściej czytana błędnie. Po uwzględnieniu niewybranych kandydatów wynik pokazuje wszystko, co SMB rozważył, a to nie jest zbiór kanałów przenoszących dane. Czytaj flagę wyboru i liczbę kanałów dla konkretnej pary interfejsów klienta i serwera, która cię interesuje.
Get-SmbMultichannelConnection -ServerName files.lab.example -IncludeNotSelected
Get-SmbMultichannelConnection -ServerName files.lab.example | Format-List *
Zastąp nazwą swojego serwera. Druga forma wypisuje właściwości wybranych połączeń, w tym indeksy interfejsów i bieżącą liczbę kanałów, i to jest liczba, która ma znaczenie. Kilka odkrytych adresów na jednym adapterze to nadal jeden adapter.
Odkryty adres może też być bezużyteczny z powodu polityki VPN: może to być adres lokalnej podsieci, którego tunel nie przenosi, albo adres, który serwer obsługuje tylko w innej sieci. SMB wymienia go jako kandydata, bo interfejs istnieje, a nie dlatego, że ścieżka działa.
Co adapter VPN robi z układem
Trzy układy warto rozróżnić, bo tylko dwa z nich mogą dać więcej niż jeden kanał. Jeden adapter bez RSS daje jeden kanał. Jeden adapter z obsługą RSS może rozłożyć połączenia na rdzenie. Kilka użytecznych adapterów może dać kilka kanałów nawet bez RSS, i to jest konfiguracja, o której ludzie zapominają, gdy uznają RSS za obowiązkowy.
| Layout SMB sees | Channels possible |
|---|---|
| One adapter, no RSS | One |
| One adapter with RSS | Several, spread across cores |
| Two or more usable adapters | Several, one path per adapter |
| Several adapters behind one tunnel | Several, one shared bottleneck |
Ostatni wiersz jest tym, który ma znaczenie przez VPN. Kanały, które wszystkie wchodzą do tego samego szyfrowanego tunelu, dzielą przepustowość tunelu, procesor bramy i łącze WAN. Dodanie tam kanału redystrybuuje pracę bez dodawania pojemności, a pomiar to pokaże.
Podczas porównywania zostaw włączone podpisywanie i szyfrowanie, ponieważ ich wyłączenie zmienia to, co mierzysz. Wynik wydajności zależny od wyłączenia ustawienia bezpieczeństwa nie jest wynikiem, który możesz wdrożyć.
Zmierz obciążenie, które naprawdę jest wolne
Nazwij obciążenie, zanim cokolwiek zmienisz: jedna duża kopia sekwencyjna, wiele małych plików w jednym katalogu albo aplikacja otwierająca i zamykająca uchwyty. Tryb wielokanałowy może pomóc w pierwszym przypadku, gdy istnieją prawdziwie niezależne ścieżki, a w trzecim robi bardzo niewiele, ponieważ kosztem są tam zależne rundy, a nie przepustowość.
Zbierz punkt odniesienia w obecnym układzie, zmień jedną rzecz i zmierz ponownie z tym samym zestawem plików i o tej samej porze dnia. Zapisz liczbę wybranych ścieżek obok wartości, aby późniejszy czytelnik mógł ocenić, czy zmiana zmieniła układ, czy tylko obciążenie.
Jeśli kanały się nie zmieniły, pytanie o wydajność jest gdzie indziej: koszt szyfrowania tunelu, opóźnienie ścieżki albo dysk i procesor samego serwera. Warto to zmierzyć, zanim do laptopa, który ma ich już dość, dodasz kolejny adapter.