PowerFlex : Fonctionnement inattendu du SDS en raison de défaillances de l’allocation de mémoire : mos_AllocPageAlignedOrPanic
摘要: Le processus SDS peut paniquer (ou continuer à paniquer continuellement) en raison d’échecs d’allocation de mémoire.
症状
Une mémoire insuffisante peut être à l’origine de ce problème sur l’hôte SDS (c’est-à-dire l’attribution de la mémoire SVM) ou due à la configuration du système d’exploitation.
Le processus SDS présente un fonctionnement inattendu avec le backtrace suivant :
01/12 22:26:55.091827 Panic in file /data/build/workspace/ScaleIO-SLES12-2/src/mos/usr/mos_utils.c, line 235, function mos_AllocPageAlignedOrPanic, PID 11191.Panic Expression pMem != ((void *)0) .
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(mosDbg_PanicPrepare+0x11d) [0x4f713d]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(mos_AllocPageAlignedOrPanic+0x2d) [0x4fa95e]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(stmp_Allocate+0x110) [0x49c063]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(phyToothMap_HardenIntern+0x37b) [0x46edcf]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(phyToothMap_HardenAll+0x39) [0x46f5a3]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(phyDev_HardenCombArr+0x34) [0x464a31]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(phyComb_ReadTooth+0x6a) [0x4b2b59]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(raidMigrate_Start+0x5f0) [0x4bb9e2]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133(raidSyncPool_StartJob+0x1cf) [0x489e7f]
/opt/emc/scaleio/sds/bin/sds-2.6.0.133() [0x50d008]
Selon les paramètres du système d’exploitation, des erreurs OOM (mémoire insuffisante) peuvent être observées dans le fichier de messages.
Impact
Ce comportement peut déclencher une situation DATA_DEGRADED/DATA_FAILURE.
原因
Mémoire insuffisante sur l’hôte SDS Dans l’environnement vSphere, vérifiez si la RAM est affectée à une SVM et si elle est réservée. Si oui, vérifiez la configuration de la mémoire au niveau du système d’exploitation :
Vérifiez les paramètres du noyau sysctl pour une surallocation de la mémoire :
Chemin d’accès au fichier /etc/sysctl.conf
# sysctl -a |grep commit
vm.overcommit_memory = 2 (default is 0)
vm.overcommit_ratio = 50 (default is 50)
解决方案
Le problème n’est pas lié à PowerFlex. PowerFlex fonctionne normalement.
Pour vérifier et/ou modifier le vm.overcommit Pour cela, procédez comme suit :
1. Connectez-vous au SDS à l’aide de SSH en tant qu’utilisateur root
2. Exécutez
cat /etc/sysctl.conf | grep "vm.overcommit"
Exemple :
[root@sds-node logs]# cat /etc/sysctl.conf | grep "vm.overcommit" vm.overcommit_memory = 2 vm.overcommit_ratio = 50
3. Exécutez les commandes suivantes :
sed -i 's/vm\.overcommit_memory = .*/vm\.overcommit_memory = 2/g' /etc/sysctl.conf sed -i 's/vm\.overcommit_ratio = .*/vm\.overcommit_ratio = 100/g' /etc/sysctl.conf sysctl -p
Validation
[root@sds-node logs]# cat /etc/sysctl.conf | grep "vm.overcommit" vm.overcommit_memory = 2 vm.overcommit_ratio = 100
Répétez ces étapes sur tous les SDS concernés dans l’environnement pour vous assurer qu’ils sont définis sur les paramètres de bonnes pratiques recommandés. Vous n’avez pas besoin de mettre le SDS en mode maintenance pour effectuer cette opération.
Articles similaires :