SDSサーバーのコールド ブート後にPowerFlexで多数の読み取りエラーが修正される
Summary: 予期しないSDSサーバーの電源サイクルの後、MDMは多数の修正済み読み取りエラーを報告しています。 Medium Granularity (MG)ストレージ プールを使用し、永続的なチェックサム機能が有効になっているPowerFlexシステム。 2 TBを超えるデバイス。 単一のSDSサーバーで予期せず電源の入れ直し(コールド ブート)が発生します。 2台以上のSDSサーバーで予期せず電源の入れ直し(コールド ブート)が発生します。 この問題は、特にSDSサーバーのコールド ブートと組み合わせた場合に、2 TBを超えるデバイスの永続的なチェックサム(PC)機能によって発生することを確認しました。 ...
Symptoms
シナリオ
Medium Granularityストレージ プールを使用し、永続的なチェックサム機能が有効になっているPowerFlexシステム。
2 TBを超えるデバイス。
単一のSDSサーバーで予期せず電源の入れ直し(コールド ブート)が発生します。
2台以上のSDSサーバーで予期せず電源の入れ直し(コールド ブート)が発生します。
現象
MDMイベント ログには、修正された読み取りエラーが多数報告されます。
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) ...
SDSトレース ログにチェックサムの不一致が表示されます。
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
複数のSDSでコールド ブートが発生した場合、アクセス不能な容量が発生することがあります。これは、次のquery_allから確認できます。
Number of devices with inaccessible capacity: 367
影響:
ミラーリングされたコピーによって修正された修正された読み取りエラーを示すMDMアラート。
MDMイベント ログは、修正された読み取りエラーに関するイベントでいっぱいになります。
Cause
SDSサーバーへのコールド ブートの後、2 TBを超えるデバイスで永続的なChecksumの完全な再構築を妨げるソフトウェア コードの問題が発生します。バックグラウンド スキャナー(BGS)機能は、チェックサムが欠落していることによるデータのプライマリー コピーとセカンダリー コピー間の不一致を検出し、修正された読み取りエラーとしてマークします。データの整合性や損失のリスクがないことに注意することが重要です。BGS機能は、チェックサムを修正することにより、識別された差異を自動的に修正します。その結果、観察された修正された読み取りエラーはこのプロセスの副産物であり、データの整合性が損なわれないことが保証されます。
Resolution
これらのイベントとアラートは無視しても問題ありません。BGSがすべてのデバイスを通過すると、イベントとアラートは最終的に消えます。
MDMのアラートとイベントに問題がある場合は、コールド ブートが発生したSDSをシステムから削除し、再度追加することができます。
複数のSDSでコールド ブートが発生し、アクセスできない容量が表示された場合は、永続的なチェックサムを一時的に無効にする必要があります。
永続的なチェックサム機能を無効にするには、まずBGSを無効にする必要があります。
1)プライマリーMDMサーバーに接続します。
2)BGSを無効にします。
scli --disable_background_device_scanner --protection_domain_name <pd> --storage_pool_name <sp>
3)永続的なChecksumを無効にします。
scli --disable_persistent_checksum --protection_domain_name <pd> --storage_pool_name <sp> |
アクセスできない領域は増加が止まり、減少し始めるはずです。This may take some time.場合によっては、影響を受けるすべてのデバイスに対してtest_inaccessible_capoacityのSCLIコマンドを実行すると、このプロセスが高速化されることがあります。
4)上記のアクションを実行してもアクセスできない領域が減らない場合は、PDEのフラグが設定されたSDSをIMMに配置し、SDSサービスを再起動します。
アクセスできない容量がすべてなくなったら、永続的なチェックサムとBGSを有効にします。
1)永続的なChecksumを有効にします。
scli --enable_persistent_checksum --protection_domain_name <pd> --storage_pool_name <sp>
これには、すべてのデータのすべてのチェックサムを再構築する必要があるため、時間がかかる場合があります。この進行状況は、SCLI query_allコマンドを使用して追跡できます。永続的なChecksumが計算され、保護されて初めて、BGSを有効にすることができます。
2)BGSを有効にします。
scli --enable_background_device_scanner --protection_domain_name <pd> --storage_pool_name <sp>
Additional Information
問題が発生するバージョン
PowerFlex 3.x
PowerFlex 4.x
修正バージョン
PowerFlex 3.6.3
PowerFlex 4.5.2