Czy chciałbyś, aby serwery pozostawały bezproblemowo dostępne nawet w przypadku awarii karty sieciowej lub przełącznika sieciowego (switcha)? Czy chcesz, aby Twój serwer miał dostęp do wielu sieci VLAN? Chcesz uprościć konfigurację sieci dla hostów fizycznych i wirtualnych w swoim środowisku? Jeśli odpowiedziałeś twierdząco na którekolwiek z tych pytań, ten artykuł jest dla Ciebie. Niech zrobi to NIC Teaming (zespół kart sieciowych).
NIC Teaming poprawia odporność na awarie, lepiej wykorzystuje zasoby sieciowe, umożliwia dostęp do sieci VLAN oraz upraszcza konfigurację sieci.
W tym wpisie przedstawię w jaki sposób poprawnie wdrożyć to rozwiązanie oraz jak uniknąć problemów z nim związanych.
Wymagania wstępne
Nie musisz być ekspertem w dziedzinie Windows Server czy też w kwestii administrowania siecią, aby zrozumieć NIC Teaming.
Musisz rozumieć oraz mieć:
- Ogólne działanie sieci w tym szczególnie – adresy mac, adresy IP, sieci VLAN.
- Dostęp do systemu najlepiej Windows Server 2016 (lub 2019) z co najmniej dwiema dostępnymi kartami sieciowymi — lub 2012(R2).
W jaki sposób działa NIC Teaming?
Tradycyjna konfiguracja sieci serwera fizycznego zapewnia odporność na uszkodzenia, podłączając wiele kabli sieciowych z serwera do wielu przełączników fizycznych. W ten sposób serwer ma wiele aktywnych adresów IP przez cały czas, a równoważenie obciążenia nie istnieje.
Wdrażając NIC Teaming na swoim serwerze, możesz utrzymywać połączenie z wieloma switchami fizycznymi, ale używać tylko jednego adresu IP. Równoważenie obciążenia staje się łatwo dostępne. Odporność na awarie staje się natychmiastowa, zamiast czekać na przekroczenie limitu czasu/aktualizację rekordów DNS, a zarządzanie staje się prostsze.
Tworzenie NIC Teaming jest funkcją systemu Windows Server, która umożliwia grupowanie kart sieciowych w „zespoły”. Każdy zespół składa się z co najmniej jednego członka zespołu (karty NIC, które są w zespole) i co najmniej jednej wirtualnej karty NIC, która jest dostępna do użycia na wypadek awarii.
Członkowie zespołu to karty sieciowe używane przez zespół do komunikacji z przełącznikiem. Interfejsy zespołu to wirtualne karty sieciowe tworzone podczas dodawnia zespołu. Może być trudno zapamiętać, który jest który, ponieważ interfejsy zespołu otrzymują adres IP.
Funkcja NIC Teaming jest dostępna we wszystkich wersjach systemu Windows Server, począwszy od systemu Windows Server 2012. Ta funkcja jest niezwykle elastyczna i zapewnia administratorom znacznie prostsze rozwiązanie w zakresie agregacji łączy/równoważenia obciążenia, przełączania awaryjnego i sieci definiowanych programowo (VLAN).
Istnieją podobne rozwiązania u niektórych dostawców, jednak implementacja NIC Teaming od Microsoft ma na celu zapewnienie tych funkcji w sposób niezależny od sprzętu i dostawcy.
Podczas konfigurowania tego rozwiązania należy ustawić tryb Teaming mode (pracy zespołowej), Load balancing mode (tryb równoważenia obciążenia), Standby adapter (kartę w trybie gotowości) i Team interface VLAN (sieć VLAN interfejsu zespołu). Poniżej wyjaśnienie każdego z tych terminów.
Teaming mode
Teaming mode określa, w jaki sposób serwer i przełączniki będą dzielić ruch między wiele łączy. Istnieją trzy rodzaje trybów pracy zespołowej: switch independent (niezależny od przełącznika), LACP i static (statyczny).
Switch Independent
Umożliwia łączenie członków zespołu z wieloma przełącznikami. Tryb niezależny od przełącznika to jedyny tryb, w którym nie są stosowane żadne zmiany konfiguracji przełączników, z którymi jest połączony. Ten tryb wykorzystuje tylko adresy MAC do kontrolowania, do jakiego interfejsu powinny być wysyłane dane przychodzące.
Jest kilka sytuacji, w których możesz wybrać ten tryb.
Ma to mieć miejsce, gdy:
- Brak jest zmian konfiguracyjnych na podłączonych przełącznikach.
- Używanie wielu przełączników.
Jeśli wolisz używać jednego adaptera do obsługi ruchu i tylko przełączać awaryjnie do adaptera w stanie gotowości podczas awarii łącza fizycznego, musisz użyć Switch independent teaming mode oraz dokonać konfiguracji adaptera w stanie gotowości.
Adapter w trybie gotowości nie jest często używany, ponieważ zmniejsza całkowitą przepustowość dostępną do komunikacji z serwerem. Ustawienie domyślne to None all adapters Active – (Brak, wszystkie adaptery aktywne).
Static
Tworzenie zespołów wymaga ręcznego skonfigurowania portów na przełączniku, które łączą się z NIC Teaming w Link aggregation Group (grupę agregacji łączy (LAG)). Serwer i przełącznik podzielą ruch między wszystkie działające łącza.
Jeśli port na jednym z końców jest podłączony do innego urządzenia, ruch zostanie podzielony na to łącze, które go nie oczekuje. W związku z tym nie pomaga to w izolowaniu błędów, takich jak nieprawidłowo podłączone przewody sieciowe.
Należy używać statycznego trybu pracy zespołowej tylko wtedy, gdy przełączniki nie obsługują protokołu LACP.
LACP
Link Aggregation Control Protocol (Protokół kontroli agregacji łączy), jest podobne do tworzenia zespołu statycznego, ale śledzi również, czy każdy aktywny kabel w łączu jest faktycznie podłączony do zamierzonego LAG. LACP nie będzie wysyłać danych przez łącza, które nie są połączone z oczekiwaną LAG.
Należy używać protokołu LACP, gdy chcesz powiadomić przełącznik o NIC Teaming w celu zrównoważenia obciążenia danych wysyłanych przez przełącznik do grupy kart sieciowych w serwerze.
Ważne: Tryby statyczne i LACP wymagają podłączenia hosta tylko do jednego fizyczne przełącznika lub do stosu przełączników (switch stack). Switch stack to min. dwa fizyczne urządzenia, połączone w jedno logiczne przy pomocy specjalnego przewodu.
Load Balancing Mode
Określa, w jaki sposób zespół będzie prezentował interfejsy dla danych przychodzących i określi, jakich adapterów użyć dla danych wychodzących. Dostępne opcje to Address Hash (Hash adresu), Hyper-V port i Dynamic (dynamiczny).
W przeciwieństwie do load balancing appliance (urządzenia równoważącego obciążenie) ruch przychodzący nie będzie równomiernie dzielony między poszczególne łącza.
Address Hash
Address Hash (skrót adresu) będzie próbował użyć źródłowych i docelowych adresów IP i portów, aby stworzyć równowagę między członkami zespołu (pojedynczymi kartami sieciowymi). Jeśli żaden port nie jest częścią połączenia, do określenia sposobu równoważenia obciążenia użyje tylko adresów IP. W przypadkach, w których nie ma adresów IP, które są częścią połączenia, użyje adresów MAC.
Tworząc NIC Teaming, możesz wymusić używanie adresu IP+port, tylko adres IP lub tylko adres MAC. IP+port jest ustawieniem domyślnym i zapewnia najlepsze działanie. Aby używać tylko adresu IP lub tylko adresu MAC, musisz utworzyć NIC Teaming za pomocą PowerShell.
Chociaż tryb równoważenia obciążenia (load balancing mode) skrótu adresu (address hash) dobrze radzi sobie z dzieleniem ruchu wychodzącego na karty sieciowe wchodzące w jego skład, nie jest w stanie dostosować się do tych kart sieciowych, które są nadmiernie/niedostatecznie obciążone. Ponadto cały ruch przychodzący korzysta z adresu MAC głównego interfejsu sieciowego. Jest to jednak ograniczone do jednego łącza, jeśli używasz trybu switch Independent, musisz korzystać z address hash.
Hyper-V Port
Rozwiązanie to działa jedynie w przypadku konfiguracji maszyn Hyper-V. Ten tryb przypisze adres MAC do każdej maszyny na hoście maszyny wirtualnej, a następnie przypisze członka zespołu do każdego z adresów MAC. Dzięki temu konkretna maszyna wirtualna może mieć przypisanego członka zespołu podczas normalnej pracy.
Przewidywalni członkowie zespołu dla każdej maszyny wirtualnej oznaczają, że przepustowość maszyny wirtualnej jest ograniczona do maksimum pojedynczego łącza, przez które działa. Gdy na hoście Hyper-V jest niewiele maszyn wirtualnych, korzystanie z trybu równoważenia obciążenia portu Hyper-V prawdopodobnie nie będzie dobrze zrównoważone.
Zwykle nie musisz korzystać z trybu portu Hyper-V, ale może być to korzystne, jeśli musisz upewnić się, że każda maszyna wirtualna używa tego samego łącza przez cały czas.
Dynamic
Tryb dynamiczny wykorzystuje najlepsze funkcje z trybów Address Hash i Hyper-V port w celu zrównoważenia wychodzącego i przychodzącego ruchu sieciowego. Podobnie jak Hyper-V, ruch przychodzący jest dzielony przez przypisywanie członków zespołu do różnych adresów MAC. Podobnie jak hash adresu, ruch wychodzący jest dzielony przez kombinację hash pochodzącą z adresu IP/portu. Ta mieszanina zapewnia lepsze rozmieszczenie obciążenia w porównaniu z którąkolwiek z powyższych metod.
Tryb równoważenia dynamicznego ma jedno ważne ulepszenie: dynamiczne monitorowanie ruchu. Gdy algorytm trybu dynamicznego określi, że niektórzy członkowie zespołu są nadmiernie/niedostatecznie obciążeni, w razie potrzeby ponownie zrównoważy ruch wychodzący do innych członków zespołu.
Strumienie TCP mają naturalną kadencję, która umożliwia przewidywanie przyszłych wielkości/przerw ruchu w TCP – są to przepływy. Tryb dynamicznego równoważenia obciążenia może również przewidzieć, którzy członkowie zespołu staną się nadmiernie/niedostatecznie obciążeni i ponownie zrównoważyć ruch wychodzący, aby się przygotować.
Tryb dynamiczny jest prawie zawsze najlepszą opcją równoważenia obciążenia.
VLAN
Kiedy tworzysz zespół, domyślnie tworzy on jeden interfejs zespołu. Interfejs zespołu ma ustawienie VLAN do oznaczania ruchu na interfejsie do określonej sieci VLAN. Ustawienie sieci VLAN interfejsu zespołu na oznaczoną sieć VLAN jest zwykle wykonywane tylko wtedy, gdy członkowie zespołu, z których składa się zespół NIC, korzystają z trybu „trunk”.
Po utworzeniu zespołu możesz utworzyć dodatkowe interfejsy zespołu w różnych sieciach VLAN.
Microsoft zaleca, aby nigdy nie ustawiać sieci VLAN dla interfejsu wewnątrz maszyny wirtualnej. Zamiast tego użyj opcji zaawansowanej przełącznika Hyper-V Identyfikator sieci VLAN (VLAN ID), aby zdefiniować sieci VLAN dla maszyny wirtualnej.
NIC Teaming w Hyper-V
Konfigurowanie zespołów kart sieciowych w maszynie wirtualnej wiąże się z pewnymi ograniczeniami. Microsoft wyraźnie podkreśla, że korzystanie z „zespołów w zespołach” (zespoły na poziomie hosta i zespoły na poziomie maszyn wirtualnych) może być bardzo nieprzewidywalne i powodować utratę połączenia.
Tradycyjnie zapewnienie odporności maszyny wirtualnej na uszkodzenia wymagało podłączenia maszyny wirtualnej do wielu zewnętrznych przełączników wirtualnych. Trzeba było zaplanować, które maszyny wirtualne będą współużytkować każdy przełącznik wirtualny, aby żaden z nich nie był zbyt przeciążony. Problemy z równoważeniem obciążenia były jeszcze bardziej skomplikowane ze względu na możliwość przeciążenia z innych maszyn wirtualnych na hoście.
Obecnie można wdrożyć zespół kart sieciowych na hoście maszyny wirtualnej z pojedynczą kartą sieciową do każdej maszyny wirtualnej. Wszystkie maszyny wirtualne zyskują pełną odporność na awarie portów fizycznych lub przełączników. Wszystkie maszyny wirtualne mogą mieć zrównoważony ruch między członkami zespołu, co zapewnia znacznie lepszą ogólną przepustowość i obsługę zatorów. Twoja konfiguracja może teraz wyglądać tak jak na poniższym schemacie:
Tworzenie zespołów kart sieciowych w maszynie wirtualnej jest czasami używane do włączenia funkcji SR-IOV w celu zmniejszenia obciążenia procesora stosu sieciowego. Potrzebujesz również wsparcia BIOS i obsługi kart sieciowych, aby SR-IOV działał.
Wdrożenie NIC Teaming wymagania
Korzystanie z NIC Teaming w maszynie wirtualnej obejmuje następujące wymagania:
- Musisz używać wielu kart w maszynie wirtualnej.
- Adaptery muszą łączyć się z dwoma wirtualnymi przełącznikami, które są typu „zewnętrznego”.
- W przypadku łączenia z przełącznikami fizycznymi przełączniki muszą znajdować się w tej samej podsieci L2.
- Tryb VM NIC Team musi być ustawiony na Switch Independent, a tryb równoważenia obciążenia musi być ustawiony na Address Hash.
W Hyper-V należy również włączyć tworzenie zespołu kart sieciowych dla maszyny wirtualnej na karcie Zaawansowane funkcje (Advanced Features) każdej karty sieciowej, która będzie częścią zespołu. Poniżej możesz zobaczyć przykład tego, jak wygląda to ustawienie.
Maksymalna wydajność
Chociaż NIC Teaming zapewnia dobrą wydajność, istnieją różne scenariusze, w których może być konieczne skupienie się na poprawie wydajności. Szczegóły tych scenariuszy wykraczają poza zakres tego artykułu, ale jeśli chcesz dowiedzieć się więcej o wydajności, skoncentruj się na następujących rzeczach:
- Remote Direct Memory Access (RDMA)
- Switch Embedded Teaming (SET)
- Receive Side Scaling (RSS)
- Single-Root I/O Virtualization (SR-IOV)
Ogólnie rzecz biorąc, te dodatkowe ustawienia zmniejszają obciążenie procesora dla stosu sieciowego i opóźnienia między połączeniami.
NIC Teaming na Windows Server
Uzbrojony w wiedzę na temat działania NIC Teaming i wizję uproszczenia sieci, powinieneś teraz przygotować się do konfiguracji.
Na potrzeby tej demonstracji zespół NIC zostanie utworzony na maszynie wirtualnej ze względu na ograniczenia środowiska demonstracyjnego. Konfiguracja zespołu kart sieciowych na serwerze fizycznym jest taka sama, ale jeśli potrzebne są jakiekolwiek kroki specyficzne dla maszyny wirtualnej, zostaną one wywołane.
Windows Server począwszy od wersji 20212 aż po 2022 obsługuje to rozwiązanie.
Wdrożenie
Aby rozpocząć, uruchom Menedżera serwera (Server Manager) na komputerze z systemem Windows Server. Upewnij się, że masz połączenie z komputerem, na którym chcesz skonfigurować NIC Teaming.
- Najpierw kliknij prawym przyciskiem myszy na nazwę serwera, na którym chcesz utworzyć zespół kart sieciowych, i wybierz opcję Konfiguruj tworzenie zespołu kart sieciowych (Configure NIC Teaming).
- Z panelu Karty i interfejsy (Adapters and Interfaces) wybierz karty sieciowe, które chcesz dodać do NIC Teaming. Następnie kliknij prawym przyciskiem myszy wskazane karty i wybierz Dodaj do nowego zespołu (Add to new team) do nowego zespołu.
Tworzenie NIC Teaming można skonfigurować z dowolną kombinacją jednej lub wielu kart (maks. 32) i jednego lub większej liczby NIC Teaming.
- Nadaj własną nazwę dla NIC Teaming, skonfiguruj dodatkowe właściwości zgodnie z potrzebami, a następnie kliknij przycisk OK, aby utworzyć zespół.
- W tym przykładzie zespół kart sieciowych jest konfigurowany na maszynie wirtualnej. W rezultacie nie można używać trybu Teaming mode ani trybu Load balancing. Gdyby konfiguracja dotyczyła fizycznego serwera, warto użyć Switch Independent lub LACP, jeśli używasz LAG na przełączniku.
Dodanie kolejnych kart do istniejącego NIC Teaming
- Możesz dodać kolejne karty sieciowe do skonfigurowanego zespołu . Aby to zrobić, kliknij prawym przyciskiem myszy dostępną kartę sieciową i wybierz Dodaj do zespołu (Add to Team „name”).
- Możesz także dodać więcej interfejsów do zespołu, wybierając kartę Interfejsy zespołu (Team Interfaces), a następnie klikając ZADANIA -> Dodaj interfejs (TASKS -> Add Interface), jak pokazano poniżej.
Po pojawieniu się danych wejściowych wpisz sieć VLAN, której chcesz użyć, i opcjonalnie nazwę, jak pokazano poniżej.
NIC Teaming Powershell
Teraz, gdy już wiesz, jak skonfigurować GUI zespołu NIC, sprawdźmy jak to zrobić za pomocą PowerShell.
Lista kart sieciowych
Najpierw musisz zdecydować, które karty sieciowe dodasz do zespołu. Aby znaleźć nazwy kart sieciowych, użyj polecenia cmdlet Get-NetAdapter.
Po zanotowaniu nazw kart sieciowych możesz utworzyć NIC Teaming za pomocą PowerShell. Do tej konfiguracji użyjemy Ethernet 3 i 4.
Tworzenie NIC Teaming
Możesz uruchomić polecenie cmdlet New-NetLbfoTeam. Możesz zobaczyć przykład uruchomienia polecenia cmdlet New-NetLbfoTeam i jego dane wyjściowe poniżej.
Jako parametr TeamMembers użyjesz nazw kart sieciowych zebranych wcześniej.
SwitchIndependent w takim trybie działa TeamingMode w tym przykładzie. Jeśli konfigurujesz porty przełącznika w LAG, prawdopodobnie będziesz chciał użyć wartości LACP. Jeśli nie używasz LAG na przełączniku, prawdopodobnie wybierzesz opcję SwitchIndependent.
Wartość parametru LoadBalancingAlgorithm Dynamic jest używana, ponieważ ten tryb zapewnia najbardziej równomierne równoważenie obciążenia między członkami zespołu.
1 |
New-NetLbfoTeam -TeamMembers "Ethernetx", "Ethernetx+1" -Name "YourName" -TeamingMode SwitchIndependent -LoadBalancingAlgorithm TransportPorts |
Po wyświetleniu otrzymasz wirtualną kartę sieciową na liście adapterów Get-NetAdapter:
- Musisz użyć trybu „SwitchIndependent” TeamingMode.
- Musisz użyć jednego z typów skrótu adresu dla LoadBalancingAlgorithm (TransportPorts).
- Dynamiczne równoważenie obciążenia byłoby używane na serwerze fizycznym zamiast w TransportPorts.*
Kolejne karty sieciowe w NIC Teaming
Po utworzeniu NIC Teaming możesz dodać do niego karty sieciowe i interfejsy, tak jak GUI. Aby dodać więcej kart sieciowych, użyj polecenia cmdlet Add-NetLbfoTeamMember.
1 |
Add-NetLbfoTeamMember -Name NIC_name -Team Team_name |
Możesz również dodać więcej interfejsów do zespołu za pomocą polecenia cmdlet Add-NetLbfoteamNIC.
1 |
Add-NetLbfoTeamNIC -Team Team_name -VlanID 42 |
Podsumowanie
Wiesz już, czym jest tworzenie NIC Teaming, jaki ma związek z wydajnością/użytkowaniem maszyn wirtualnych/uproszczeniem sieci oraz jak wdrożyć ją za pomocą graficznego interfejsu użytkownika lub programu PowerShell.
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).