Po migracji maszyn do Hyper-V R2 wirtualne maszyny, których NIC są obciążone dużą ilością jednoczesnych połączeń (IIS, ISA itp.) często są dotknięte problemem, że połączenia do WM są zrywane a wirtualny NIC zmienia stan na “disabled”. Dzieje się tak w momencie dużego obciążenia wirtualnego switha, gdy jego bufor (odpowiednik tablicy przełączania) jest pełny w efekcie czego cześć pakietów jest gubiona, generowane są błędy i w efekcie wirtualny interfejs sieciowy zmienia stan na “disabled”.
Na wirtualnych maszynach w logach systemowych pojawia się następująca informacja:
Event Type: Information
Event Source: netvsc
Event Category: None
Event ID: 4
Date: 2/17/2010
Time: 11:46:07 AM
User: N/A
Computer: MACHINENAME
Description:
The miniport ‘Microsoft Virtual Machine Bus Network Adapter’ reset.
Są trzy metody na rozwiązanie tego problemu:
- Powiększenie wielkości bufrów VMBus wirtualnych maszyn na których występuje problem z 1MB do 2MB lub 4MB (w dalszej części opiszę to dokładniej). Uznaję to rozwiązanie za preferowane ze względu na najmniejszą inwazyjność fixa w infrastrukturę.
- Instalacja patcha KB974909 o statusie testowym na maszynach z Hyper-V R2 na których działają maszyny z problemem (w przypadku klastra na wszystkich maszynach w klastrze gdzie wystąpił problem z VM).
- Zmiana NIC wirtualnej maszyny z Synthetic na Legacy adapter. Rozwiązanie to obniża oczywiście parametry połączenia VM (między innymi jego prędkość do 100Mbps). Ze względu na obniżenie parametrów nie można go uznać za rozwiązanie zalecane w środowiskach produkcyjnych.
Aby powiększyć bufor VMBus wirtualnej maszyny na której występuje problem należy:
- Przejść do gałezi rejestru: HKLM\SYSTEM\CurrentControlSet\Control\Class\{GUID}\{index}.
- Aby zidentyfikować jaki GUID ma interfejs wirtualnej maszyny na którym występuje problem:
W przypadku VM na Windows Server 2008/2008 R2 jest to banalne):
Identyfikacja inerfejsu na Windows Server 2003 jest trochę trudniejsza:)Należy przejśc do HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\NetworkCards\{numer} i odczytać wartość GUID. (rozwiązanie działa również na nowszych systemach).
W przypadku niemożności znalezienia GUID powyższą metodą: przejść do HKLM\SYSTEM\CurrentControlSet\Control\Class\ i wyszukać “Microsoft Virtual Machine Bus Network Adapter” (uwaga – może być kilka interfejsów).
- Utworzyć dwie wartości DWORD o nazwach ReceiveBufferSize i SendBufferSize, nadać im wartość 0800 (hexadecimal) lub 2048 (decimal). Jest to wartość bufora w KB, przy braku tych wpisów wielkość buforów jest domyślna i wynosi 1024KB.
- Wykonać restart wirtualnej maszyny aby ustawienia zostały wprowadzone.
Jeśli po wykonaniu powyższych kroków problem wciąż występuje (w moim przypadku miałem tą sytuację z jedna najbardziej obciążoną maszyną z IIS) należy jako wartość wprowadzić 1000 (hexadecimal) lub 4096 (decimal). Maksymalna możliwa wartość bufora to 4096KB.
źródła poza własnym doświadczeniem:
Network Adapter disabled, Event ID 4 Netvsc, miniport reset – TechNet Forums
0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.