PowerFlex: MDM sigue fallando durante la actualización (NDU) en actor_CreateReplInternal
Resumen: Durante el proceso de actualización de PowerFlex, es posible que un proceso de MDM subordinado (o esclavos en una configuración de 5_node) siga fallando debido al poco espacio libre.
Síntomas
Versiones afectadas: El proceso MDM de PowerFlex 3.x.x
sigue fallando con los siguientes errores en el archivo trc de MDM.
(debe usar trace_decompress herramienta en 3.5.x para obtener trc.u.X.X sin comprimir):
05/02 05:06:23.629759 0x7f035168edb0:replFile_CreateFile:00120: mosAsyncIO_OpenFile succeeded on 1 try. FileName='/opt/emc/scaleio/mdm/rep/mdm_rep.bin', size=0
05/02 05:06:23.629761 0x7f035168edb0:replFile_Recover:00302: Start (/opt/emc/scaleio/mdm/rep/mdm_rep.bin)
05/02 05:06:23.629768 (nil):mosOsThrd_StartFunc:00576: Starting thread (async_io_submitter) tid 14515
05/02 05:06:23.629777 0x7f035168edb0:mosShmUmt_CreateOs:00152: shm_open failed, name scaleio_mdm_rep_shm, errno 2,size 0
05/02 05:06:23.629836 0x7f035168edb0:rep_Recover:02073: Could not map to shared memory scaleio_mdm_rep_shm, recovering from disk
05/02 05:06:23.629920 0x7f035168edb0:mosAsyncIOReq_GetReqRC:01899: Req failed with return code 0x5, rc=1(ERROR), sizeInBytes 8192, bytesIO 0
05/02 05:06:23.629930 0x7f035168edb0:mosAsyncIO_DoIOSyncBulk:01298: IO request 0 of 1 failed. The Async File: 0x7f036007ff00 offset: 0 size: 8192, bWrite: 0
05/02 05:06:23.629931 0x7f035168edb0:rep_RecoverShm:01887: Reading the header failed rc: ERROR
05/02 05:06:23.629935 0x7f035168edb0:rep_RecoverShm:01960: finished with rc: ERROR
05/02 05:06:23.629937 0x7f035168edb0:rep_Recover:02076: recover shm error with rc: ERROR
05/02 05:06:23.629938 0x7f035168edb0:rep_Recover:02232: ERROR: RC: ERROR
05/02 05:06:23.629941 0x7f035168edb0:replFile_Recover:00362: Shared mem recover error. RC: ERROR
05/02 05:06:23.629947 0x7f035168edb0:mosAsyncIO_CloseFileIntern:00560: Closing device path:/opt/emc/scaleio/mdm/rep/mdm_rep.bin
05/02 05:06:23.629993 0x7f035168edb0:mosIO_close:00138: Closing FD(17)
05/02 05:06:23.629997 0x7f035168edb0:replFile_Recover:00371: Error rc: ERROR
05/02 05:06:23.629999 0x7f035168edb0:actor_CreateReplInternal:09342: Fail (ERROR) to recover the MDM replication shared memory
05/02 05:06:23.630006 0x7f035168edb0:actor_DoPlannedCrash:00559: --- Actor planned crash at: actor_CreateReplInternal, reason: Fail to recover the MDM replication shared memory ---
El tamaño del archivo del repositorio es cero (/opt/emc/scaleio/mdm/rep/mdm_rep.bin).
Causa
No había suficiente espacio en disco para crear el archivo de repositorio correcto después de la actualización: el gateway de IM comprueba si hay 1000 MB de espacio libre antes de la NDU, pero es posible que no sea suficiente en las versiones más recientes de PowerFlex (3.5.x).
Tanto LIA como MDM crean una copia del repositorio de MDM anterior, por lo que con una capacidad libre de solo un poco más de 1000 MB, uno puede encontrarse con este problema.
Este problema puede ocurrir durante una NDU cuando hay poco espacio libre en disco (<1000 MB) en el sistema de archivos donde está montado /opt (ya sea / o /opt si se monta por separado), por ejemplo:
/opt NO se monta por separado, es decir, forma parte del sistema de archivos raíz:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 16.32G 696MB 96% /
/dev/sda1 1014M 151M 864M 15% /boot
/opt montado en su propio dispositivo o en un volumen lógico diferente
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 5.7G 12G 34% /
/dev/mapper/centos-opt 10G 9.6G 410MB 96% /opt
/dev/mapper/centos-home 27G 5G 22G 17% /home
/dev/sda1 1014M 151M 864M 15% /boot
Resolución
Asegúrese de que haya al menos 1,6 GB de espacio libre en el sistema de archivos / o /opt antes de la actualización. Si ya tiene este problema, libere algo de espacio (al menos 1 GB) y, a continuación, vuelva a instalar el paquete MDM en el MDM esclavo.
NOTA: Una vez que reinstale el paquete MDM en MDM esclavo, debe eliminar el ID de MDM del clúster y volver a agregarlo.
Solucionado en la versión
PowerFlex 3.6