PowerFlex 3.x: Служба SDS постійно панікує з функцією drl_IsClean
Summary: У рідкісних сценаріях служба SDS може постійно панікувати з функцією drl_IsClean. Ця проблема спостерігалася, коли пристрої SDS мають розмір понад 2 ТБ.
Symptoms
Служба SDS постійно панікує з наступним трасуванням стека:
/opt/emc/scaleio/sds/logs/exp.0
2024/07/22 21:54:33.819866 Panic in file /data/build/workspace/ScaleIO-Common-Job/src/tgt/bm/drl.c, line 1238, function drl_IsClean, PID 17253.Panic Expression !(offsetInLbs < pDrl->protectedOffsetInLbs) PANIC_ID_tgt_1497349762194.
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(mosDbg_PanicPrepare+0x13a) [0x93ab8a]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(drl_IsClean+0x5e) [0x9346ae]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(mgPhyDev_IsDrlGroupClean+0x4b) [0x93476b]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(mgPhyComb_ReadIntegrityBits+0x130) [0x906040]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(mgStorageRegion_ReadRegionIntegrity+0xb4) [0x906224]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(storageRegion_ReadDirtyRegion+0xad) [0x740f4d]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(raidComb_ReadDrl+0x7d) [0x74105d]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(ioh_ReadCombDrl+0x758) [0x5eb368]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(ioh_NewRequest+0x2084) [0x5fb4a4]
/opt/emc/scaleio/sds/bin/sds-3.6.400.107(contNet_RecvIORequest+0x2c4) [0x601534]
Вплив
Недоступність даних користувача може виникнути, якщо будь-яка інша SDS відокремлюється в рамках перебування в одному з наступних станів:
- Режим миттєвого обслуговування (IMM)
- Стан помилки
- Під час поточної перебудови
Cause
Паніка сервісу SDS, викликана великими зміщеннями пристрою.
Resolution
Виправити:
- PowerFlex 3.6.5 і вище (кінець підтримки)
- PowerFlex 4.5 і вище
Спосіб вирішення:
Дотримуйтесь одного з варіантів.
Якщо варіант 1 не допоміг вирішити проблему, перейдіть до варіанту 2.
Варіант 1:
-
- Введіть вузол SDS у IMM з командного рядка scli або інтерфейсу сервера презентацій.
- Якщо вузол SDS не може увійти в IMM, зупиніть демон SDS, запустивши скрипт
/opt/emc/scaleio/sds/bin/delete_service.sh.Take necessary precautions to prevent the cluster from entering a Data Unavailability (DU) state. Before stopping the SDS daemon, verify that no Rebuild is in progress. If you're unsure about the DU state, consult L2 or an SME.
- Якщо вузол SDS не може увійти в IMM, зупиніть демон SDS, запустивши скрипт
- Зупиніть службу SDS, як тільки SDS буде розміщено в IMM
/opt/emc/scaleio/sds/bin/delete_service.sh - Видаліть спільну пам'ять на SDS (включно зі спільною пам'яттю CloudLink).
- Перемістіть файли, згенеровані наступною командою, у тимчасовий каталог
ls -l /dev/shm | egrep -i *EMC_sds* ls -l /dev/shm | egrep emc_scaleio_*
- Перемістіть файли, згенеровані наступною командою, у тимчасовий каталог
- Запустіть службу SDS
/opt/emc/scaleio/sds/bin/create_service.sh
- Введіть вузол SDS у IMM з командного рядка scli або інтерфейсу сервера презентацій.
-
- Вийдіть із SDS з IMM за допомогою scli або інтерфейсу сервера презентацій. Очікується, що почнеться перебудова. Якщо SDS не було в IMM, переходимо до наступного кроку
- Перевірте вихід наступної команди, щоб переконатися, що SDS підключено:
scli --query_all_sds
- Вийдіть із SDS з IMM за допомогою scli або інтерфейсу сервера презентацій. Очікується, що почнеться перебудова. Якщо SDS не було в IMM, переходимо до наступного кроку
Варіант 2:
-
Якщо система не перебуває в стані збою передачі даних і є достатня вільна або вільна ємність, видаліть вузол SDS із кластера PowerFlex. Як тільки ребаланс буде завершено, знову додайте вузол SDS з усіма пристроями SDS.
ВАЖЛИВИЙ:
Фоновий сканер (BGS) і часткова помилка пристрою (PDE) потенційно можуть спричинити повторення проблеми. Якщо можливо, вимкніть BGS або використовуйте BGS в режимі
"тільки звіт".Постійні контрольні суми не повинні викликати проблеми. Однак, якщо є невідповідність контрольної суми, ініціюється невелика перебудова, що може призвести до повторного виникнення проблеми. Якщо можливо, вимкніть функцію «Постійна контрольна сума».