Muitos erros de leitura corrigidos do PowerFlex após uma inicialização a frio do servidor SDS
Summary: Após um ciclo de alimentação inesperado do servidor SDS, o MDM está relatando muitos erros de leitura corrigidos. Sistema PowerFlex que usa um pool de armazenamento de granularidade média (MG) e tem o recurso de soma de verificação persistente ativado. Dispositivos maiores que 2 TB. Um único servidor SDS enfrenta inesperadamente um ciclo de energia (inicialização a frio). Dois ou mais servidores SDS apresentarão inesperadamente um ciclo de energia (inicialização a frio). Confirmamos que esse problema surge do recurso de soma de verificação persistente (PC) com dispositivos maiores que 2 TB, especialmente quando acoplado a uma inicialização a frio de um servidor SDS. ...
Symptoms
Situação
Sistema PowerFlex que usa um pool de armazenamento de granularidade média e tem o recurso de soma de verificação persistente ativado.
Dispositivos maiores que 2 TB.
Um único servidor SDS enfrenta inesperadamente um ciclo de energia (inicialização a frio).
Dois ou mais servidores SDS apresentarão inesperadamente um ciclo de energia (inicialização a frio).
Sintomas
Os registros de eventos do MDM relatam muitos erros de leitura corrigidos:
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) ...
Os logs de rastreamento do SDS mostram disparidades de soma de verificação:
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 vários SDSs tiverem uma inicialização a frio, a capacidade inacessível poderá ser observada. Isso pode ser visto no query_all:
Number of devices with inaccessible capacity: 367
Impacto:
Alertas MDM indicando erros de leitura corrigidos pela cópia espelhada.
Os logs de eventos do MDM são preenchidos com eventos sobre os erros de leitura corrigidos.
Cause
Após uma inicialização a frio em um servidor SDS, ocorre um problema de código de software que impede a recriação completa das somas de verificação persistentes em dispositivos com mais de 2 TB. O recurso de scanner em segundo plano (BGS) detecta discrepâncias entre as cópias primária e secundária dos dados devido à soma de verificação ausente, marcando-as como erros de leitura corrigidos. É importante observar que não há risco de perda ou integridade dos dados. A função BGS corrige automaticamente as diferenças identificadas corrigindo as somas de verificação. Como resultado, os erros de leitura corrigidos observados são um subproduto desse processo, com a garantia de que a integridade dos dados permanece intacta.
Resolution
Esses eventos e alertas podem ser ignorados com segurança. Os eventos e alertas acabarão desaparecendo assim que o BGS passar por todos os dispositivos.
Se os alertas e eventos do MDM forem problemáticos, o SDS que apresentou uma inicialização a frio poderá ser removido do sistema e adicionado novamente.
Se vários SDSes passarem por uma inicialização a frio e uma capacidade inacessível for vista, a soma de verificação persistente precisará ser temporariamente desativada.
Para desativar o recurso de soma de verificação persistente, o BGS precisa ser desativado primeiro:
1) Conecte-se ao servidor MDM primário.
2) Desative o BGS:
scli --disable_background_device_scanner --protection_domain_name <pd> --storage_pool_name <sp>
3) Desative a soma de verificação persistente:
scli --disable_persistent_checksum --protection_domain_name <pd> --storage_pool_name <sp> |
As áreas inacessíveis devem parar de aumentar e começar a diminuir. Isso pode levar algum tempo. Às vezes, executar o comando SCLI de test_inaccessible_capoacity para cada dispositivo afetado pode ajudar a acelerar esse processo.
4) Se as áreas inacessíveis não estiverem diminuindo em relação às ações acima, coloque os SDSes sinalizados com PDE no IMM e reinicie o serviço SDS.
Depois que toda a capacidade inacessível acabar, habilite a soma de verificação persistente e o BGS.
1) Ative a soma de verificação persistente:
scli --enable_persistent_checksum --protection_domain_name <pd> --storage_pool_name <sp>
Isso pode levar muito tempo, pois todas as somas de verificação de todos os dados devem ser recriadas. O andamento dessa etapa pode ser acompanhado usando o comando SCLI query_all. Depois que as somas de verificação persistentes forem calculadas e protegidas, somente então o BGS poderá ser ativado.
2) Ative o BGS:
scli --enable_background_device_scanner --protection_domain_name <pd> --storage_pool_name <sp>
Additional Information
Versões afetadas
PowerFlex 3.x
PowerFlex 4.x
Correção feita na versão
PowerFlex 3.6.3
PowerFlex 4.5.2