PowerFlex ha risolto molti errori di lettura dopo l'avvio a freddo di un server SDS
Summary: Dopo un ciclo di alimentazione imprevisto del server SDS, MDM segnala molti errori di lettura corretti. Sistema PowerFlex che utilizza un pool di storage con granularità media (MG, Medium Granularity) e ha la funzione di checksum persistente abilitata. Dispositivi di dimensioni superiori a 2 TB. Su un singolo server SDS si verifica un ciclo di alimentazione imprevisto (avvio a freddo). Due o più server SDS subiscono un ciclo di alimentazione imprevisto (avvio a freddo). Abbiamo confermato che questo problema deriva dalla funzione di checksum persistente (PC) con dispositivi di dimensioni superiori a 2 TB, in particolare se abbinato a un avvio a freddo di un server SDS. ...
Symptoms
Scenario
Sistema PowerFlex che utilizza un pool di storage con granularità media e ha la funzione di checksum persistente abilitata.
Dispositivi di dimensioni superiori a 2 TB.
Su un singolo server SDS si verifica un ciclo di alimentazione imprevisto (avvio a freddo).
Due o più server SDS subiscono un ciclo di alimentazione imprevisto (avvio a freddo).
Sintomi
I registri eventi MDM segnalano molti errori di lettura corretti:
2023-12-05 12:01:42.634000:0031658:SCANNER_NEW_FIXED_ERRORS__INFO INFO SDS <name> encountered one or more read errors on device /dev/disk/by-id/scsi-<id>, and they were all fixed (Found: 29443, Fixed: 29443) ...
I registri di traccia SDS mostrano le mancate corrispondenze del checksum:
2023/12/05 12:01:39.643280 7ff09dd3ddb0:mosT10Dif_VerifyContT10DIFBuffer:00381: (T10DIF) DIF Verification Failed: blk=0, blkSize=8, pData=0x7fedddbff000, pDif=0x7ff09dd38820, computed_guard=b5c2, DIF_guard=58e1, difGranularity=8 2023/12/05 12:01:39.643288 7ff09dd3ddb0:mgPhyDevPersChksm_IO_ReadValidate:03647: data Validation (state: PROTECTED) failed, devId 0xddd77b550046000e, combId 4716801282c6, combOffsetInLbs 16609280, dataOffsetInLbs 4306157568, dataSizeInLbs 2048, chksmRelativeOffsetBytes 1075099648, chksmSizeBytes 512, rc IO_ERR_PERS_CHECKSUM_MISMATCH (Pers. Checksum) 2023/12/05 12:01:39.643298 7ff09dd3ddb0:mgStorageRegion_ReadSync:03646: Reading tooth data failed: IO_ERR_PERS_CHECKSUM_MISMATCH. combId:4716801282c6,vTree:0xda6ddd6400000022,offsetVol:0x374ba9000,offsetInComb:16609280,sizeInLbs:2048,phyToothIdx:2101592,srcToothIdx:inv,dstToothIdx:inv New:(0,0) Requested:(37,1) volId:0 2023/12/05 12:01:39.643372 7ff09dd3ddb0:mgPhyDev_IncreaseInaccessibleCapacity:06587: PDE - devId ddd77b550046000e toothIndex 2101592 Increased inaccessible capacity to 1 2023/12/05 12:01:39.643383 7ff09dd3ddb0:raidComb_ReportCorruptionIfShould:19441: PDE - Comb 4716801282c6 Reported CORRUPT integrity result SUCCESS combId:4716801282c6,vTree:0xda6ddd6400000022,offsetVol:0x374ba9000,offsetInComb:16609280,sizeInLbs:2048,phyToothIdx:2101592,srcToothIdx:inv,dstToothIdx:inv New:(0,0) Requested:(37,1) volId:0 2023/12/05 12:01:39.643390 7ff09dd3ddb0:ioh_NewRequest:10209: Check for scan error on comb 4716801282c6 - Done rc is IO_ERR_PERS_CHECKSUM_MISMATCH (Lba 16609280 2048) (0 ms) 2023/12/05 12:01:39.647175 7ff098be4db0:storageRegion_PostIntegrityCorrection:04647: PDE - Clearing corruption in comb 4716801282c6 offsetInComb 16609280 extentSize 2048 after raidComb_WriteCombLocal combId:4716801282c6,vTree:0xda6ddd6400000022,offsetVol:0x374ba9000,offsetInComb:16609280,sizeInLbs:2048,phyToothIdx:2101592,srcToothIdx:inv,dstToothIdx:inv New:(0,0) Requested:(37,1) volId:0 2023/12/05 12:01:39.647259 7ff098be4db0:mgPhyDev_DecreaseInaccessibleCapacity:06604: PDE - devId ddd77b550046000e toothIndex 2101592 Decreased inaccessible capacity to 0 2023/12/05 12:01:39.647350 7ff098be4db0:ioh_NewRequest:09688: comb:4716801282c6,vTree:0x0,offsetVol:0xffffffffffffffff,offsetTooth:0x0, Succeeded to fix comb 4716801282c6, offset 16609280, by its primary
Se più SDS subiscono un avvio a freddo, potrebbe essere osservata una capacità inaccessibile. Questo può essere visto dal query_all:
Number of devices with inaccessible capacity: 367
Impatto:
Avvisi MDM che indicano errori di lettura corretti dalla copia con mirroring.
I registri eventi MDM si riempiono di eventi relativi agli errori di lettura risolti.
Cause
A seguito di un avvio a freddo su un server SDS, si verifica un problema del codice software che impedisce la ricostruzione completa dei checksum persistenti su dispositivi di dimensioni superiori a 2 TB. La funzione del background scanner (BGS) rileva le discrepanze tra le copie primarie e secondarie dei dati a causa del checksum mancante, contrassegnandole come errori di lettura corretti. È importante notare che non vi è alcun rischio di integrità o perdita dei dati. La funzione BGS corregge automaticamente le differenze identificate rettificando i checksum. Di conseguenza, gli errori di lettura corretti osservati sono un sottoprodotto di questo processo, con la garanzia che l'integrità dei dati rimanga intatta.
Resolution
Questi eventi e avvisi possono essere tranquillamente ignorati. Gli eventi e gli avvisi scompariranno una volta che BGS avrà superato tutti i dispositivi.
Se gli avvisi e gli eventi MDM sono problematici, l SDS che ha subito un avvio a freddo può essere rimosso dal sistema e aggiunto nuovamente.
Se più SDS riscontrano un avvio a freddo e viene rilevata una capacità inaccessibile, il checksum persistente deve essere temporaneamente disabilitato.
Per disabilitare la funzione di checksum persistente, è prima necessario disabilitare BGS:
1) Connettersi al server MDM primario.
2) Disabilitare BGS:
scli --disable_background_device_scanner --protection_domain_name <pd> --storage_pool_name <sp>
3) Disabilitare il checksum persistente:
scli --disable_persistent_checksum --protection_domain_name <pd> --storage_pool_name <sp> |
Le aree inaccessibili dovrebbero smettere di aumentare e iniziare a diminuire. Questa operazione potrebbe richiedere del tempo. In alcuni casi, l'esecuzione del comando SCLI di test_inaccessible_capoacity per ogni dispositivo interessato può contribuire a velocizzare questo processo.
4) Se le aree inaccessibili non diminuiscono a causa delle azioni di cui sopra, posizionare gli SDS contrassegnati con PDE nell'IMM e riavviare il servizio SDS.
Una volta esaurita la capacità inaccessibile, abilitare checksum e BGS persistenti.
1) Abilitare il checksum persistente:
scli --enable_persistent_checksum --protection_domain_name <pd> --storage_pool_name <sp>
Questa operazione potrebbe richiedere molto tempo poiché tutti i checksum per tutti i dati devono essere ricostruiti. L'avanzamento di questa operazione può essere monitorato utilizzando il comando SCLI query_all. Una volta calcolati e protetti i checksum persistenti, solo allora è possibile abilitare BGS.
2) Abilitare BGS:
scli --enable_background_device_scanner --protection_domain_name <pd> --storage_pool_name <sp>
Additional Information
Versioni interessate
PowerFlex 3.xPowerFlex
4.x
Risolto nella versione
PowerFlex 3.6.3
PowerFlex 4.5.2