PowerFlex 3.x: Errore irreversibile continuo del servizio SDS con funzione drl_IsClean
Summary: In rari scenari, il servizio SDS potrebbe continuamente presentare un errore irreversibile con la funzione drl_IsClean. Questo problema è stato osservato quando i dispositivi SDS hanno dimensioni superiori a 2 TB. ...
Symptoms
Il servizio SDS presenta continuamente un errore irreversibile con la seguente traccia dello stack:
/opt/emc/scaleio/sds/logs/exp.0
2024/07/22 21:54:33.819866 Panic in file /data/build/workspace/ScaleIO-Common-Job/src/tgt/bm/drl.c, line 1238, function drl_IsClean, PID 17253.Panic Expression !(offsetInLbs < pDrl->protectedOffsetInLbs) PANIC_ID_tgt_1497349762194.
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(mosDbg_PanicPrepare+0x13a) [0x93ab8a]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(drl_IsClean+0x5e) [0x9346ae]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(mgPhyDev_IsDrlGroupClean+0x4b) [0x93476b]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(mgPhyComb_ReadIntegrityBits+0x130) [0x906040]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(mgStorageRegion_ReadRegionIntegrity+0xb4) [0x906224]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(storageRegion_ReadDirtyRegion+0xad) [0x740f4d]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(raidComb_ReadDrl+0x7d) [0x74105d]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(ioh_ReadCombDrl+0x758) [0x5eb368]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(ioh_NewRequest+0x2084) [0x5fb4a4]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(contNet_RecvIORequest+0x2c4) [0x601534]
Impatto
La non disponibilità dei dati dell'utente può verificarsi se un altro SDS si disaccoppia in uno dei seguenti stati:
- Modalità di manutenzione istantanea (IMM)
- Stato di errore
- Durante una ricostruzione in corso
Cause
Errori irreversibili del servizio SDS causati da offset di dispositivi di grandi dimensioni.
Resolution
Correzione:
- PowerFlex 3.6.5 e versioni successive (fine del supporto)
- PowerFlex 4.5 e versioni successive
Soluzione alternativa:
Seguire una delle opzioni.
Se l'opzione 1 non risolve il problema, passare all'opzione 2.
Opzione 1:
-
- Inserire il nodo SDS nell'IMM dalla riga di comando scli o dall'interfaccia utente del server di presentazione.
- Se il nodo SDS non è in grado di accedere all'IMM, arrestare il daemon SDS eseguendo lo script
/opt/emc/scaleio/sds/bin/delete_service.sh.Take necessary precautions to prevent the cluster from entering a Data Unavailability (DU) state. Before stopping the SDS daemon, verify that no Rebuild is in progress. If you're unsure about the DU state, consult L2 or an SME.
- Se il nodo SDS non è in grado di accedere all'IMM, arrestare il daemon SDS eseguendo lo script
- Arrestare il servizio SDS una volta posizionato l SDS nell'IMM
/opt/emc/scaleio/sds/bin/delete_service.sh - Rimuovere la memoria condivisa sull SDS (inclusa la memoria condivisa CloudLink).
- Spostare i file generati dal seguente comando in una directory temporanea
ls -l /dev/shm | egrep -i *EMC_sds* ls -l /dev/shm | egrep emc_scaleio_*
- Spostare i file generati dal seguente comando in una directory temporanea
- Avviare il servizio SDS
/opt/emc/scaleio/sds/bin/create_service.sh
- Inserire il nodo SDS nell'IMM dalla riga di comando scli o dall'interfaccia utente del server di presentazione.
-
- Uscire dall SDS dall'IMM utilizzando scli o l'interfaccia utente del server di presentazione. È previsto l'avvio di una ricostruzione. Se il SDS non era nell'IMM, andare al passaggio successivo
- Controllare l'output del seguente comando per assicurarsi che l SDS sia connesso:
scli --query_all_sds
- Uscire dall SDS dall'IMM utilizzando scli o l'interfaccia utente del server di presentazione. È previsto l'avvio di una ricostruzione. Se il SDS non era nell'IMM, andare al passaggio successivo
Opzione 2:
-
Se il sistema non si trova in uno stato di errore dei dati ed è disponibile una capacità libera o di riserva sufficiente, rimuovere il nodo SDS dal cluster PowerFlex. Una volta completato il ribilanciamento, aggiungere nuovamente il nodo SDS con tutti i dispositivi SDS.
IMPORTANTE:
Il problema potrebbe ripresentarsi tramite background scanner (BGS) ed errore parziale del dispositivo (PDE). Se possibile, disabilitare BGS o utilizzare BGS in modalità
"solo report".I checksum persistenti non devono generare problemi. Tuttavia, in caso di mancata corrispondenza del checksum, viene avviata una leggera ricostruzione, che potrebbe causare il ripetersi del problema. Se possibile, disabilitare il checksum persistente.