PowerFlex 3.x: Під час НДУ СДС панікує і зупиняє модернізацію
Summary: Під час НДУ СДС може зіткнутися з панікою.
Symptoms
Оновлення з VxFlex OS 3.0.x.x до PowerFlex 3.5.x.x або 3.6.0.x
Паніка ядра SDS, що наростає, не дозволяє системі продовжити оновлення.
Процес SDS продовжує панікувати і перезапускатися з наступним трасуванням стека:
27/07 08:07:25.381223 Panic in file /data/build/workspace/ScaleIO-Common-Job/src/tgt/spef/l2p_sm/l2p_resolver/l2p_resolver_sync_services.c, line 1828, function Resolver_Inter_SyncUnmatchedVto, PID 133106.Panic Expression ALWAYS_ASSERT PANIC_ID_tgt_1588256010820.
/opt/emc/scaleio/sds/bin/sds-3.5.1100.107(mosDbg_PanicPrepare+0x13a) [0x93b62a]
/opt/emc/scaleio/sds/bin/sds-3.5.1100.107(Resolver_Inter_SyncUnmatchedVto+0x69c) [0x643ddc]
/opt/emc/scaleio/sds/bin/sds-3.5.1100.107(Resolver_Inter_SyncOffsetData+0xd2) [0x644082]
/opt/emc/scaleio/sds/bin/sds-3.5.1100.107(Resolver_SyncOffset+0x3e6) [0x6446f6]
/opt/emc/scaleio/sds/bin/sds-3.5.1100.107(Resolver_Sync+0x1e4) [0x645c54]
/opt/emc/scaleio/sds/bin/sds-3.5.1100.107(L2PGateway_Inter_Sync+0x59) [0x6542d9]
/opt/emc/scaleio/sds/bin/sds-3.5.1100.107(L2PGateway_Inter_UpdateRamCopyEx+0x163) [0x901ba3]
/opt/emc/scaleio/sds/bin/sds-3.5.1100.107(L2PGateway_Inter_Update+0x4f7) [0x9060f7]
/opt/emc/scaleio/sds/bin/sds-3.5.1100.107(L2PGateway_Sync+0x64) [0x9073d4]
/opt/emc/scaleio/sds/bin/sds-3.5.1100.107(feIo_L2PGatewayUpdate+0x3d8) [0x90cf98]
Cause
Під час зворотної перебудови системи під час виходу з режиму миттєвого обслуговування (IMM) надсилається та отримується повідомлення про неправильну синхронізацію даних на первинному (PRI) та вторинному (SEC) SDS. Таким чином, SEC SDS різко перезапускає службу, щоб уникнути можливої неузгодженості даних.
Це рідкісний сценарій під час IMM, коли невдала команда запису IO може помилково призвести до внутрішньої перевірки здорового глузду (внутрішня перевірка цілісності даних, яка спричиняє збій служби SDS) під час перебудови після завершення виходу з IMM. Помилка команди запису IO відбувається перед введенням IMM, а під час IMM була відправлена ще одна команда вводу-виводу на сусідній зсув у тому ж наборі даних.
Resolution
Автоматичне оновлення за допомогою шлюзу
- Зупиніть оновлення за допомогою інтерфейсу шлюзу.
- Видаліть несправний SDS з кластера, а потім додайте його назад.
- Перезапустіть оновлення з інтерфейсу шлюзу обміну миттєвими повідомленнями та встановіть прапорець "Дозволити оновлення, навіть якщо воно вже перебуває в стані оновлення" - оновлення має початися спочатку та продовжити роботу з ще не оновленими компонентами:
Оновлення вручну
Варіант #1
- Якщо один і той же пристрій виходить з ладу при кожному з випадків, то в автономному режимі цей окремий пристрій. Якщо немає, то видаліть всі SDS-пристрої з SDS.
- Дочекайтеся завершення перебудови.
- Після видалення оновіть SDS і додайте його назад до кластера.
- Видаліть з кластера наступну SDS, яку необхідно оновити, що спричинить перебалансування.
- Після видалення оновіть SDS і додайте його назад до кластера.
- Нехай ребаланс триває, доки система не матиме достатньої потужності для видалення наступних SDS, які потрібно оновити - повторюйте, доки всі SDS не будуть оновлені.
Варіант #2
Використовуйте режим захищеного обслуговування (PMM) замість IMM для створення повної третьої копії. Проблема не повинна виникати з PMM, наприклад, цикл аварійного завершення служби трапляється через те, що SDS виходить з ладу під час перебудови, повертається назад і повторюється. Виходом із ситуації є знищення SDS, що виходить з ладу, на досить тривалий період, щоб MDM давав вказівку на перебудову вперед, а не назад. Як тільки проблемний набір даних буде перебудовано, SDS може бути успішно відновлений назад.
Версії, на які це вплинуло:
VxFlex OS 3.0.x.x
, PowerFlex 3.5.x.x
, PowerFlex 3.6.0.x-3.6.1.x
Виправлено у версії:
Технологія PowerFlex 3.6.2