PowerFlex "ERROR: Nie udało się rozwidlić timera" podczas aktualizowania licencji
Summary: Klient nie może zaktualizować licencji PowerFlex.
Symptoms
Scenariusz
Podczas próby aktualizacji licencji klient może zobaczyć następujący komunikat "ERROR: Nie udało się rozwidlić timera"
Objawy
Z dziennika śledzenia MDM
29/09 15:19:38.957139 0x7f91e2645db8:mosEventLog_PostInternal:00608: New event added. Message: "Command set_license received, User: 'admin'. [774]". Additional info: "" Severity: Info 29/09 15:19:38.957208 (nil):mosIO_close:00137: Closing FD(299) 29/09 15:19:38.964892 (nil):mos_CreateProcessWithTimeout:00050: ERROR: Failed to fork timer 29/09 15:19:38.968880 (nil):mosIO_close:00137: Closing FD(299) 29/09 15:19:38.968906 0x7f91e2645db8:mdmObj_SetLicense:01918: Decode rc: ILLEGAL 29/09 15:19:38.968912 0x7f91e2645db8:mdmObj_SetLicense:01921: Bad license. RC: ILLEGAL 29/09 15:19:38.968946 0x7f91e2645db8:mosEventLog_PostInternal:00608: New event added. Message: "Command set_license was not successful. Error code: The license key is invalid or does not match this version. Please contact Customer Support. [774]". Additional info: "" Severity: Warning
Wpływ
Klient nie może zaktualizować licencji, dopóki problem z zasobami nie zostanie rozwiązany.
Cause
Po uruchomieniu polecenia scli --set_license w celu zastosowania licencji proces MDM jest klonowany (rozwidlony) dwukrotnie.
Pierwszy krok zakończył się powodzeniem, ale polecenie nie mogło sklonować procesu MDM. Taka sytuacja może wystąpić, jeśli system nie ma wystarczających zasobów do sklonowania procesu. W takim przypadku konfiguracja z nadmiernym zobowiązaniem pamięci SVM ograniczyła system tylko do połowy dostępnej pamięci:
grep 'vm.overcommit' ./server/sysctl.txt -H server/sysctl.txt:vm.overcommit_kbytes = 0 server/sysctl.txt:vm.overcommit_memory = 2 server/sysctl.txt:vm.overcommit_ratio = 50
Resolution
Upewnij się, że w systemie są dostępne wystarczające zasoby.
Sprawdź parametry jądra sysctl pod kątem nadmiernego zaangażowania pamięci:
# sysctl -a |grep commit vm.overcommit_memory = 2 (default is 0) vm.overcommit_ratio = 50 (default is 50)
W takim przypadku ustawienie "vm.overcommit_memory" na dwa oznacza, że nie należy nadmiernie angażować pamięci. Alokacja pamięci przekraczająca limit nadmiernego zatwierdzenia kończy się niepowodzeniem. Łączna wartość zatwierdzonej przestrzeni adresowej systemu nie może przekraczać swap + konfigurowalna ilość (domyślnie 50%) fizycznej pamięci RAM.
Aby rozwiązać ten problem, dodaj/edytuj jedną z następujących rzeczy w pliku /etc/sysctl.conf:
- Zmień wartość "vm.overcommit_ratio" na 100, aby system operacyjny mógł zatwierdzić całkowitą dostępną przestrzeń adresową i uruchomić się ponownie.