PowerFlex. Чрезмерное переключение ролей данных приводит к задержке ввода-вывода и ошибкам

Сводка: В этой статье объясняется, как переключение ролей в избыточном количестве данных приводит к задержке и ошибкам операций ввода-вывода.

Данная статья применяется к Данная статья не применяется к Эта статья не привязана к какому-либо конкретному продукту. В этой статье указаны не все версии продуктов.

Симптомы

При определенных переходах между состояниями кластера логика балансировки ролей MDM может создавать быстрые, повторяющиеся переключения между основными и вторичными ролями во многих комбинированных компьютерах (внутренних структурах данных, которые отслеживают, какие узлы SDS хранят каждый фрагмент данных тома). Каждый переключатель роли делает недействительными гребенчатые карты на стороне клиента (SDC) и принудительно выполняет повторные операции ввода-вывода. Если одновременно затронуто достаточное количество гребней, кумулятивные издержки на повторные попытки вызывают скачки задержки ввода-вывода и ошибки ввода-вывода на хостах SDC. В зависимости от среды хоста это может привести к истечению времени ожидания операций ввода-вывода приложений, переходу виртуальных машин в состояние «доступно только для чтения» или к недоступности файловой системы.

Такое поведение наблюдалось при нескольких сценариях срабатывания и не ограничивается какой-либо одной операционной процедурой.

Общие индикаторы

  • MDM_DATA_DEGRADED событие, за которым следует устойчивая задержка ввода-вывода продолжительностью 1-15+ минут
  • Хосты SDC сообщают об ошибках ввода-вывода и/или об истечении времени ожидания ввода-вывода во время окна ограниченной функциональности
    • VMware (ESXi) Тайм-аут тактового импульса VMFS, ошибки оборудования SCSI (sense data: 0x4 0x0 0x0), виртуальные машины, переходящие в состояние «доступно только для чтения», потенциальное переключение высокой доступности при отказе
    • Linux: Ошибки ввода-вывода в системных журналах (/var/log/messages, dmesg), приложения могут сталкиваться с истечением времени ожидания ввода-вывода или повторным монтированием файловой системы только для чтения
  • Журналы событий MDM показывают, что система находится в состоянии DEGRADED дольше, чем ожидалось, при одной потере SDS
  • В конечном итоге система самостоятельно восстанавливается до НОРМАЛЬНОГО состояния без ручного вмешательства (как правило)
 
Примечание. На момент написания этой статьи эта проблема наблюдалась только в средах с хостами VMware (ESXi) и Linux SDC. Нет известных сообщений о поведении, влияющем на хосты Windows SDC, хотя основной дефект связан с логикой ядра MDM и не зависит от ОС.


Сценарий 1. Некорректная потеря SDS (без режима обслуживания)

Когда это может произойти:

  • Это редкий сценарий. Чтобы во время потери SDS произошла быстрая, повторяющаяся переключение ролей, должны одновременно присутствовать несколько определенных условий:
    • Крупномасштабная среда — значительное количество узлов и томов SDS
    • Высокая нагрузка производственных операций ввода-вывода — значительная активность операций ввода-вывода в момент сбоя SDS
    • Рабочая нагрузка перестроения превышает вычислительную емкость — количество строк метаданных, требующих перестроения, превышает ограничение балансировщика MDM на один цикл в 1024 строки

Каждый цикл повторной балансировки может обрабатывать до 1024 строк метаданных. Когда необходимо перестроить больше строк, балансировщик не может завершить текущий план до создания следующего.

Что происходит:

  • SDS резко отключается от MDM (событие SDS_DECOUPLED)
  • Все SDC, которые были подключены к этому SDS, теряют свои подключения → событий отключения SDC
  • MDM помечает кластер как DEGRADED (событие MDM_DATA_DEGRADED)
  • Так как количество строк, подлежащих перестроению, превышает 1024, средство балансировки MDM не может завершить текущий план повторной балансировки
  • Балансировщик запускает новый план, пока предыдущий план все еще выполняется, что приводит к быстрым повторяющимся событиям переключения ролей
  • В клиентских SDC постоянно происходят сбои операций ввода-вывода (IO_FAULT_NOT_PRI, SCSI sense 0x4). После того как повторные попытки будут исчерпаны, ОС хоста сообщает об ошибках ввода-вывода, истечении времени ожидания или о файловой системе, доступной только для чтения
  • Доказательство трассировки MDM:

Если рабочая нагрузка повторной балансировки превышает ограничение в 1024 строки, трассировка MDM показывает, что пороговое значение было превышено:

2026/03/28 22:43:53.246702 MED:7f1f984aedb0:balanceExec_HandleDegradedRows:00343: BALANCER: Storage Pool: 1193844800000000 - 1024 rows processed out of 1098 degraded rows. 0 allocation failures. 0 cumulative allocation failures.

Это означает, что 1 098 строк требовали перестроения, но только 1 024 могли быть обработаны в текущем цикле. Оставшиеся строки запускают новый план ребалансировки до завершения предыдущего плана, запуская цикл обратной связи.

Цепочка событий:

Log Source     Event / Pattern
MDM events     SDS_DECOUPLED — SDS formally declared dead
MDM events     MDM_DATA_DEGRADED — Cluster enters DEGRADED state
SDS traces     Flood of IO_FAULT_NOT_PRI — SDS received IO for a comb it is no longer primary for
ESXi vmkernel  SCSI sense data: 0x4 0x0 0x0 — Hardware error
MDM events     MULTIPLE_SDC_CONNECTIVITY_CHANGES — Mass SDC connectivity storm
MDM events     SDC_DISCONNECTED_FROM_SDS_IP — SDCs losing contact with the failed SDS
Пример последовательности событий MDM:
SDC_DISCONNECTED_FROM_SDS_IP    SDC disconnected from SDS <name>
SDS_DECOUPLED                   SDS <name> decoupled
MDM_DATA_DEGRADED               The system is now in DEGRADED state

Сценарий 2. Отключение питания программно-определяемого хранилища при входе PMM

Когда это может произойти:
Это редкий сценарий, для которого требуются два события одновременно:

  • SDS переходит в режим защищенного обслуживания (PMM)
  • Программно-определяемое хранилище выходит из строя или выключается до завершения перехода PMM

Что происходит: 

  • MDM получает команду записи PMM и записывает ее как успешно выполненную
  • SDS неожиданно отсоединяется, пока запись PMM все еще выполняется
  • MDM помечает кластер как неработоспособный
  • Балансировщик ролей входит в устойчивую петлю переключения ролей на протяжении всей фазы входа PMM
  • Строки данных, не относящиеся к PMM, многократно переключаются ролями во всем пуле хранения данных
  • Шторм продолжается до тех пор, пока SDS не присоединится к кластеру и не завершит переход в режим обслуживания

Цепочка событий:

Log Source  Event / Pattern
MDM events  CLI_COMMAND_SUCCEEDED — enter_protected_maintenance_mode command succeeded
MDM events  SDS_DECOUPLED — SDS decoupled before maintenance mode started
MDM events  MDM_DATA_DEGRADED — Cluster enters DEGRADED state
SDS traces  Repeated role-switch operations across non-PMM rows

Пример последовательности событий MDM:

CLI_COMMAND_SUCCEEDED            Command enter_protected_maintenance_mode succeeded
SDS_DECOUPLED                    SDS <name> decoupled
MDM_DATA_DEGRADED               The system is now in DEGRADED state

После повторного присоединения SDS и завершения PMM:

SDS_MAINTENANCE_MODE_STARTED     SDS maintenance mode started
MDM_DATA_NORMAL                 The system is now in NORMAL state

Сценарий 3. Программно-определяемое хранилище в режиме мгновенного обслуживания (IMM)

Когда это может произойти:
Система SDS переходит в режим мгновенного обслуживания (IMM) или выходит из него. Этот сценарий возникает, когда один SDS находится в режиме обслуживания и система не может решить, какая SDS должна обрабатывать ввод-вывод для конкретных данных.

Что происходит:

  • Система многократно изменяет SDS, отвечающий за обслуживание одних и тех же данных
  • Эти постоянные изменения означают, что приложения не знают, куда отправлять свои запросы ввода-вывода
  • Операции ввода-вывода отправляются на неверный SDS, что приводит к повторным попыткам и задержкам
  • Приложения испытывают задержку или истекает время ожидания при попытке доступа к затронутым данным

Воздействие:

  • Влияние на заказчиков: Приложения сообщают о задержке и тайм-аутах, когда SDS находится в IMM
  • Продолжительность: Продолжается, пока SDS находится в состоянии IMM
  • Восстановления: Автоматически — разрешение при выходе SDS из IMM

Цепочка событий:

Log Source  Event / Pattern
SDS traces  Repeated role-switch operations on the same data
SDS traces  Primary and secondary role switches on identical data

Сценарий 4. Выход SDS из режима защищенного обслуживания (PMM)

Когда это может произойти:
Система SDS выходит из защищенного режима обслуживания (PMM). Этот сценарий происходит при каждом выходе PMM — это не редкое событие, но серьезность зависит от того, как долго длилась работа режима обслуживания.

Что происходит:

  • При выходе SDS из PMM балансировщик ролей должен переназначить сегменты данных, чтобы включить в них возвращающийся SDS
  • Процесс повторной балансировки влияет на весь пул хранения данных, а не только на данные возвращаемого SDS
  • Во время повторной интеграции во многих сегментах данных происходит переключение ролей
  • Приложения могут испытывать кратковременные ошибки ввода-вывода или задержку по мере стабилизации назначений ролей

Воздействие:

  • Влияние на заказчиков: При коротких перерывах на техническое обслуживание (менее 5 секунд) последствия будут едва заметны. При длительном обслуживании с активным вводом-выводом могут происходить тысячи переключений ролей, что приводит к длительным простоям операций ввода-вывода
  • Продолжительность: Продолжается на этапе реинтеграции до завершения повторной балансировки.
  • Восстановления: Автоматически

Цепочка событий:

Log Source  Event / Pattern
MDM events  Role-switch operations across the storage pool during exit
SDS traces  Repeated role-switch operations during reintegration

Пример последовательности событий MDM:

SDS_MAINTENANCE_MODE_EXIT_STARTED    SDS maintenance mode exit started
SDS_MAINTENANCE_MODE_EXIT_COMPLETED   SDS maintenance mode exit completed

Выходные данные журнала:
 

Примечание. Приведенные ниже примеры журналов представляют собой общие представления шаблонов, наблюдаемых при нескольких случаях возникновения этой проблемы. Они не привязаны к какому-то конкретному сценарию, перечисленному выше - одни и те же паттерны появляются независимо от триггера.


Журналы событий MDM: В журнале событий MDM отображается последовательность на уровне кластера. Ключевыми индикаторами являются операции переключения ролей при выходе из режима обслуживания.

Журналы трассировки SDS: На узлах SDS журналы трассировки показывают повторяющиеся операции переключения ролей во время повторной интеграции:

raidComb_SetPriTgtGenNum: combId <id> combGenNum: cur <gen> new <gen>
contCmd_SetCombState: CombId <id> devId <id> PRI->SEC Switch roles
contCmd_SetCombState: CombId <id> devId <id> SEC->PRI Switch roles

Большим количеством записей ролей переключения за короткий промежуток времени (тысячи и более в течение нескольких секунд) является окончательным индикатором этой проблемы со стороны SDS.

Журналы SDC/хостов: Повторные попытки ввода-вывода SDC VMware (ESXi), отображающие гребенку, целевую SDS и код ошибки:

vmkernel log
PowerFlex mapVolIO_Do_CK:1496 :Mit: <addr>. Retrying IO Type WRITE. Failed comb: <id>. SDS_ID <id>. Comb Gen <gen>. Head Gen <gen>.
PowerFlex mapVolIO_Do_CK:1510 :Mit: <addr>. Vol ID <id>. Last fault Status IO_FAULT_NOT_PRI(12). Retry count (1)

Если количество повторных попыток заканчивается, возвращаются ошибки SCSI: 

sense data: 0x4 0x0 0x0   -- SCSI Hardware Error

Совет по диагностике: Если вы видите ошибки ввода-вывода на нескольких узлах SDS (а не только на узле, на котором возникла проблема), это может указывать на шторм переключения ролей, а не на нормальное поведение в состоянии ограниченной функциональности. Если ошибки ввода-вывода локализованы в одном SDS, это ожидаемое поведение в состоянии ограниченной функциональности.

Сценарий 5. Фазовые переходы в режиме обслуживания 

Когда это может произойти:
Во время перехода, когда SDS входит в режим обслуживания или выходит из режима обслуживания (IMM или PMM) - в момент изменения состояния с нормального на MM или с MM обратно на нормальное.

Что происходит:

  • Балансировщик ролей перераспределяет обязанности по данным в соответствии с изменениями
  • По мере того, как система привыкает к новому устройству, происходят короткие всплески переключений ролей
  • Во время перехода приложения могут испытывать кратковременные скачки задержки

Воздействие:

  • Влияние на заказчиков: Кратковременные скачки задержки длятся от нескольких секунд до нескольких минут. Обычно ниже пороговых значений времени ожидания приложения
  • Продолжительность: Длится от нескольких секунд до нескольких минут, затем затихает
  • Восстановления: Автоматически

Цепочка событий:

Log Source  Event / Pattern
SDS traces  Brief role-switch operations during phase transitions

Причина

Программный дефект в логике балансировки ролей MDM вызывает петлю обратной связи при переходе кластера в состояние из-за потери SDS или работы в режиме обслуживания.

При определенных условиях MDM многократно переназначает узлы SDS, которые отвечают за обслуживание операций ввода-вывода затронутым гребням. Каждое переназначение делает недействительным кэшированное представление SDC о том, где находятся данные, что приводит к принудительной повторной попытке ввода-вывода. При одновременном воздействии на работу нескольких гребней объем переназначений опережает возможности SDC по обновлению, что приводит к устойчивым ошибкам ввода-вывода на нескольких хостах.

Шторм, как правило, самоограничивается. Она устраняется, когда кластер стабилизируется, но продолжительность зависит от размера защищенного домена и нагрузки ввода-вывода на момент события.

Разрешение

Эта проблема устранена в PowerFlex Core версии 4.5.6. Выполните обновление до этой версии, как только она станет доступна. Обратитесь в службу поддержки Dell для получения информации о сроках выпуска.

Для планового технического обслуживания:

  • Не выключайте и не перезагружайте SDS до тех пор, пока MDM не войдет в журнал SDS_MAINTENANCE_MODE_STARTED. Прежде чем приступать к физическому обслуживанию, убедитесь, что SDS полностью перешла в режим обслуживания.
  • Отслеживание пиков задержки при входе в режим обслуживания или выходе из него.

На случай незапланированных отключений SDS:

  • Шторм является самоограничивающимся и обычно разрешается в течение нескольких минут по мере стабилизации кластера. Если проблема обнаружена, соберите getinfo как можно скорее после события получите журналы со всех узлов SDS в домене защиты от всех MDM диспетчера и обратитесь в службу поддержки Dell.

В редких случаях, когда проблема не устраняется самостоятельно, временное отключение и повторное включение перестроения может позволить MDM стабилизироваться:

scli --set_rebuild_mode --protection_domain_name <pd_name> --storage_pool_name <sp_name> --disable_rebuild

# Подождите 5-10 секунд, затем включите rebuild: 

scli --set_rebuild_mode --protection_domain_name <pd_name> --storage_pool_name <sp_name> --enable_rebuild

 

Важно! Резервирование в кластере снижено, так как перестройка отключена. Отключите восстановление только на время, достаточное для стабилизации системы, а затем немедленно снова включите. Рекомендуется выполнить это действие под руководством службы поддержки Dell. 

 

Примечание. Управление перестроением осуществляется на уровне пула хранения данных. Если затронутые SDS включают устройства в несколько пулов хранения данных, примените это действие к каждому затронутому пулу хранения данных. Пулы хранения данных, в которых нет устройств из затронутых SDS, не затрагиваются. Защищенный домен, пул хранения данных и сопоставление SDS с устройством можно определить по scli --query_all Выходные данные команды. 

Затронутые продукты

PowerFlex rack, PowerFlex Appliance, PowerFlex rack connectivity, PowerFlex Software
Свойства статьи
Номер статьи: 000450312
Тип статьи: Solution
Последнее изменение: 12 May 2026
Версия:  5
Получите ответы на свои вопросы от других пользователей Dell
Услуги технической поддержки
Проверьте, распространяются ли на ваше устройство услуги технической поддержки.