PowerFlex « ERROR : Failed to fork timer » lors de la mise à jour de la licence
Summary: Le client ne peut pas mettre à jour sa licence PowerFlex.
Symptoms
Scénario
Lorsque vous tentez de mettre à jour sa licence, le message suivant peut s’afficher : « ERROR : Échec de la duplication du minuteur »
Symptômes
À partir du journal de suivi 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
Impact
Le client ne peut pas mettre à jour sa licence tant que son problème de ressource n’est pas résolu.
Cause
Lorsque la commande scli --set_license est exécutée pour appliquer la licence, le processus MDM est cloné (dupliqué) deux fois.
La première étape a réussi, mais la commande n’a pas pu cloner le processus MDM. Cela peut se produire si le système ne dispose pas de ressources suffisantes pour cloner le processus. Dans ce cas, la configuration de surallocation de la mémoire de la SVM limitait le système à la moitié de la mémoire disponible :
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
Vérifiez que le système dispose de suffisamment de ressources disponibles.
Vérifiez les paramètres de noyau sysctl pour la surallocation de mémoire :
# sysctl -a |grep commit vm.overcommit_memory = 2 (default is 0) vm.overcommit_ratio = 50 (default is 50)
Dans ce cas, le fait d’avoir défini « vm.overcommit_memory » sur deux signifie que la mémoire n’est pas surchargée. Cette opération entraîne l’échec de toute allocation de mémoire dépassant la limite de surallocation. L’espace d’adressage total engagé pour le système ne peut pas dépasser swap + une quantité configurable (la valeur par défaut est de 50 %) de RAM physique.
Pour résoudre ce problème, ajoutez/modifiez l’un des éléments suivants dans /etc/sysctl.conf :
- Remplacez « vm.overcommit_ratio » par 100 pour que le système d’exploitation puisse valider l’espace d’adressage total disponible et redémarrer.