SDS 伺服器冷開機後,PowerFlex 許多修正的讀取錯誤
Summary: 在意外的 SDS 伺服器重新啟動電源後,MDM 回報許多固定讀取錯誤。 使用中等粒度 (MG) 儲存集區並啟用持續性檢查總和功能的 PowerFlex 系統。 大於 2 TB 的裝置。 單一 SDS 伺服器意外發生電源週期 (冷開機)。 兩個或多個 SDS 伺服器意外發生電源週期 (冷開機)。 我們確認此問題是由於裝置大於 2 TB 的持續性檢查總和 (PC) 功能所導致,尤其是搭配 SDS 伺服器冷開機時。 ...
Symptoms
案例
PowerFlex 系統使用中等粒度儲存集區,並已啟用持續性檢查總和功能。
大於 2 TB 的裝置。
單一 SDS 伺服器意外發生電源週期 (冷開機)。
兩個或多個 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 的裝置上完全重建持續性檢查總和。後台掃描程式 (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) 停用持續性檢查總和:
scli --disable_persistent_checksum --protection_domain_name <pd> --storage_pool_name <sp> |
無法進入的區域應該停止增加並開始減少。This may take some time.有時,針對每個受影響的裝置執行 SCLI 命令以test_inaccessible_capoacity可能有助於加快此程序。
4) 如果無法存取的區域不會因上述動作而減少,請將標示有 PDE 的 SDS 放入 IMM 中,然後重新啟動 SDS 服務。
一旦所有無法存取的容量都用完,請啟用持續性檢查總和和與 BGS。
1) 啟用持續性檢查總和:
scli --enable_persistent_checksum --protection_domain_name <pd> --storage_pool_name <sp>
這可能需要很長時間,因為必須重新建置所有資料的所有檢查總和。您可以使用 SCLI query_all 命令追蹤此作業的進度。計算並保護持久性校驗和后,只有這樣才能啟用 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