Błąd MaxEnvelopeSize Exceeded

Spotkał mnie ostatnio bardzo ciekawy przypadek. Po zbudowaniu klastra z serwerów windowsowych okazało się, że nie mogę nim zarządzać, choć sama walidacja klastra przebiegła z jednym ostrzeżeniem. Sam klaster działał, serwery także, nie było również problemów z udostępnionymi usługami. Jedyne co nie działało w ramach klastra – jego nazwa oraz adres IP były niesiągalne w sieci (chociaż istniał odpowiedni wpis w DNSach).

Zalogowałem się na jednym z nodów gdzie Server Manager krzyczał na czerwono o braku komunikacji z nazwą klastra, oraz wirtualnymi zasobami. Odświeżenie widoku wyrzuciło błąd:

The WS-Management service can not process the request. The computed response packet size < 521932 > Exceeds the maximum envelope size That is allowed < 512000 > 

Rozmiar pakietów różnił się nieznacznie między różnymi adresami IP i nazwami serwerów, klastra oraz samych udostępnianych zasobów. Postanowiłem sprawdzić konfigurację usługi WinRM (Windows Remote Management (WS-Management)). Sam serwis miał ustawione automatyczne uruchomienie i działał na obydwu nodach w klastrze. Trzeba było poszukać głębiej. Polecenie:

winrm get winrm/config

Wyrzuciło na ekran:

Faktycznie 512000 bitów. Należało więc podnieść tą wartość. Jednak jakież było moje zdziwienie gdy prawidłowo wyglądające polecenie:

winrm set winrm/config @{MaxEnvelopeSizekb="8192"}

zwróciło błąd – „Error: Invalid use of command line. Type „winrm –?” for help.” Po chwili zastanowienia postanowiłem sprawdzić inne polecenie – tym razem rodem z PowerShella:

Set-Item -Path WSMan:\localhost\MaxEnvelopeSizeKb -Value 8192

Tym samym udało mi się zmienić wartość MaxEnvelopeSizekb na pożądaną:

Walidacja klastra nie zwracała już żadnych błędów zaś nazwa i adres IP był osiągalne, a zarządzanie stało się możliwe.

Piotr Berent

Piotr Berent od 2002 w pocie czoła pracujący w środowisku IT, obecnie freelancer - Inżynier Systemowy. Entuzjasta wirtualizacji, automatyzacji i rozwiązań opartych o narzędzia open-source.

Dodaj komentarz