У PowerFlex багато виправлено помилки читання після холодного завантаження сервера SDS
Summary: Після несподіваного циклу живлення сервера SDS MDM повідомляє про багато виправлених помилок зчитування. Система PowerFlex, яка використовує пул сховищ із середньою гранулярністю (MG) і має ввімкнену функцію постійного обліку контрольної суми. Пристрої, розмір яких перевищує 2 ТБ. На одному SDS-сервері несподівано виникає цикл живлення (холодне завантаження). Два або більше SDS-серверів несподівано стикаються з циклом живлення (холодне завантаження). Ми підтвердили, що ця проблема виникає через функцію постійної контрольної суми (ПК) на пристроях ємністю понад 2 ТБ, особливо в поєднанні з холодним завантаженням SDS-сервера. ...
Symptoms
Сценарій
Система PowerFlex, яка використовує пул зберігання із середньою гранулярністю та має ввімкнену функцію постійної контрольної суми.
Пристрої, розмір яких перевищує 2 ТБ.
На одному 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 ТБ. Функція фонового сканера (BGS) виявляє розбіжності між основною та вторинною копіями даних через відсутню контрольну суму, позначаючи їх як виправлені помилки зчитування. Важливо зазначити, що немає ризику цілісності або втрати даних. Функція BGS автоматично виправляє виявлені відмінності шляхом виправлення контрольних сум. Як наслідок, спостережувані виправлені помилки зчитування є побічним продуктом цього процесу з гарантією збереження цілісності даних.
Resolution
Ці події та сповіщення можна безпечно ігнорувати. Події та сповіщення зрештою зникнуть, як тільки BGS пройде через усі пристрої.
Якщо сповіщення та події MDM є проблематичними, SDS, які зазнали холодного завантаження, можна видалити з системи та додати знову.
Якщо кілька SDS стикаються з холодним завантаженням і видно недоступну ємність, постійну контрольну суму потрібно тимчасово відключити.
Щоб відключити функцію постійного обчислення контрольної суми, спочатку потрібно відключити BGS:
1) Підключіться до основного сервера MDM.
2) Відключити БГС:
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> |
Важкодоступні ділянки повинні перестати збільшуватися і почати зменшуватися. Це може зайняти деякий час. Іноді виконання команди SCLI test_inaccessible_capoacity для кожного пристрою, якого це стосується, може допомогти прискорити цей процес.
4) Якщо недоступні області не зменшуються від вищевказаних дій, помістіть SDS, позначені PDE, в 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