Главная
АИ #43 (329)
Статьи журнала АИ #43 (329)
Сравнительное моделирование устойчивости схем обновления программного обеспечени...

Сравнительное моделирование устойчивости схем обновления программного обеспечения BMC к прерываниям

Цитирование

Михайличенко А. С. Сравнительное моделирование устойчивости схем обновления программного обеспечения BMC к прерываниям // Актуальные исследования. 2026. №43 (329). URL: https://apni.ru/article/16224-sravnitelnoe-modelirovanie-ustojchivosti-shem-obnovleniya-programmnogo-obespecheniya-bmc-k-preryvaniyam

Аннотация статьи

Сопоставлены три схемы обновления ПО BMC при случайных прерываниях: запись поверх действующего образа, A/B с полным повтором и A/B с возобновлением с контрольной точки. Имитационная модель оценивает сохранность загружаемого образа и вероятность завершить обновление за 60 минут. При заданных параметрах резервный раздел сохраняет прежний образ, а контрольные точки сокращают повторную работу после прерывания.

Текст статьи

Введение

Программное обеспечение контроллера управления платформой (Baseboard Management Controller, BMC) обновляется путём передачи, записи, проверки и активации нового загружаемого образа [1]. Прерывание на разных этапах имеет разные последствия: передачу можно повторить, а неполная запись единственного образа может оставить контроллер без рабочего ПО. Документация OpenBMC описывает компоновку памяти и порядок активации образов [2, 3]. Способ восстановления зависит от размещения образов и поведения загрузчика.

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

1. Схемы обновления

При записи поверх действующего образа используется один раздел. Если питание пропадает во время его перепрограммирования, в модели образ считается незагружаемым до внешнего восстановления. В схеме A/B запись идёт в неактивный раздел, а прежний остаётся рабочим до проверки нового. Такое размещение показано в документации RAUC как пример организации избыточных слотов [4]; оно не приписывается каждой сборке OpenBMC.

Для A/B рассмотрены два способа продолжения после сбоя: повтор всей процедуры и возобновление с последнего проверенного блока. Оба предполагают атомарное переключение слотов и сохранность прежнего образа. Выбор слота и откат требуют поддержки загрузчика [5]. Дополнительные контрольные точки уменьшают повторную работу ценой метаданных и операций записи.

Таблица 1

Сравниваемые схемы и реакция на прерывание

Схема

Куда пишется образ

После прерывания

Запись поверх

Действующий раздел

Во время записи – потеря загружаемого образа; иначе полный повтор

A/B: повтор

Неактивный раздел

Старый образ доступен; запись начинается заново

A/B: точки

Неактивный раздел

Старый образ доступен; запись с последней проверенной точки

2. Модель и процедура расчёта

Номинальное время процедуры одинаково для трёх схем: передача – 12 мин, запись – 18 мин, проверка – 3 мин, переключение и запуск – 2 мин. Итого 35 модельных минут. Прерывания возникают независимо с интенсивностью λ в минуту только в активное время процедуры; после каждого восстанавливаемого прерывания добавляется 3 мин простоя. Горизонт наблюдения – 60 мин. Объект модели – загружаемый образ ПО BMC; обновление загрузчика и отдельные аппаратные отказы в процедуру не включены.

Каждый прогон начинается с рабочего старого образа. После прерывания запись поверх него обнуляет ход процедуры, а событие в интервале программирования 12–30 мин означает потерю загружаемого образа. A/B с повтором также начинает заново, сохраняя прежний слот. A/B с контрольными точками возвращается к ближайшей ранее проверенной границе кратной 5 мин; проверка блоков и сохранение метаданных считаются включёнными в длительность этапов. Сбой переключения не повреждает прежний слот: предполагается атомарный выбор.

Для N прогонов определены P₆₀ = Nзав/N и Pпот = Nнезагр/N, где Nзав – число прогонов с активацией нового образа не позднее 60 мин, Nнезагр – число прогонов, в которых к этому сроку утрачен загружаемый образ. Если старый образ сохраняется, но новый не активирован к сроку, оба признака равны нулю. Вероятность первого прерывания в критическом интервале однократной попытки имеет вид:

image.png, (1)

При повторных попытках и конечном сроке итоговый Pпот определяется симуляцией. Для каждой пары «схема – λ» использованы 50 000 независимых прогонов с seed = 20261021. Максимальная приблизительная 95%-ная погрешность выборочной доли составляет ±0,44 процентного пункта при P ≈ 0,5.

Порядок одного прогона моделирования приведён в алгоритме 1. Здесь t – время от начала обновления с учётом простоев после прерываний; x – выполненная часть 35-минутной процедуры; r=35-x – оставшееся время работы без новых прерываний; Δ – случайное время до следующего прерывания. Все временные величины измеряются в минутах. Интенсивность прерываний λ задаётся в мин⁻¹.

Алгоритм 1. Один прогон моделирования:

  1. Установить t = 0 и x = 0. В начале прогона старый образ доступен, новый ещё не активирован.
  2. Если t<60, сгенерировать время до следующего прерывания Δ по экспоненциальному распределению с интенсивностью λ. При λ = 0 прерываний нет. Оставшаяся длительность процедуры равна r=35-x.
  3. Если прерывание произойдёт после выполнения оставшейся части процедуры Δ ≥ r, проверить срок: при t+r ≤ 60 считать обновление завершённым. Закончить прогон.
  4. Если прерывание произойдёт позднее 60-й минуты (t+Δ >60), закончить прогон без завершения обновления. Иначе увеличить t и x на Δ.
  5. Для записи поверх действующего образа проверить момент прерывания. Если оно произошло во время записи (12 ≤ x <30), считать образ незагружаемым и закончить прогон.
  6. Добавить к t три минуты восстановления после прерывания. В схеме A/B с контрольными точками вернуться к последней завершённой пятиминутной отметке процедуры; в остальных схемах начать процедуру заново (x=0). Если t<60, повторить расчёт с шага 2; иначе закончить прогон без завершения обновления.

3. Результаты и обсуждение

Таблица 2 содержит доли исходов при трёх интенсивностях. λ = 0,01; 0,03; 0,06 мин⁻¹ соответствует в среднем 0,6; 1,8; 3,6 прерывания в час активной работы. При λ = 0 все схемы завершают процедуру за 35 мин и дают P₆₀ = 100%.

Таблица 2

Результаты моделирования, 50000 прогонов на вариант

Прерывания, 1/ч

P₆₀ поверх, %

P₆₀ A/B повтор, %

P₆₀ A/B точки, %

Pпот поверх, %

0,6

79,59

85,38

99,99

16,43

1,8

49,06

56,40

98,63

43,10

3,6

22,90

26,21

87,86

65,23

Контрольная формула при λ = 0,03 мин⁻¹ даёт 29,1% для первого прерывания в интервале записи. Итоговые 43,1% включают последующие попытки: после сбоя вне критического интервала запись запускается заново и вновь подвержена риску. Это объясняет, почему оценка за 60 мин выше однократной вероятности.

На рисунке приведены все исследованные интенсивности. При 1,8 прерывания/ч A/B с полным повтором завершает обновление в 56,4% прогонов, а A/B с контрольными точками – в 98,6%. При той же нагрузке запись поверх действующего образа приводит к потере загружаемой версии в 43,1% прогонов. Разница между вариантами A/B относится к достижению срока, а сохранность прежнего образа у них одинакова в пределах принятых допущений.

Чувствительность к шагу контрольной точки проверена отдельно при λ = 0,03 мин⁻¹: для 2, 5 и 10 мин значение P₆₀ составило соответственно 99,9; 98,6 и 92,4%. Здесь стоимость сохранения точки уже включена в общую длительность этапов и не меняется с её частотой, поэтому эти значения показывают только выигрыш от меньшей повторной работы.

image.png

Рис. Вероятность завершить обновление за 60 мин в зависимости от интенсивности прерываний

Границы применимости связаны с заданными временами этапов, отсутствием накладных расходов на контрольные точки и предположением о сохранности старого слота при атомарном переключении. Некорректный образ, износ памяти, повреждение загрузчика, неполный откат и общий отказ двух слотов не моделировались. Загрузчик остаётся возможной общей точкой отказа; требования к защите и восстановлению прошивки изложены в NIST SP 800-193 [6]. Поэтому нулевое Pпот для A/B является свойством принятой схемы событий, а не оценкой реального устройства.

Заключение

При одинаковом номинальном времени модель выявила два эффекта: резервный слот сохраняет ранее загружаемый образ при прерывании записи, а контрольные точки повышают вероятность завершения процедуры в ограниченный срок. При λ = 0,03 мин⁻¹ и сроке 60 мин P₆₀ составила 98,6% с контрольными точками против 56,4% при полном повторе A/B; при записи поверх образа Pпот достигла 43,1%. Для переноса этих зависимостей на конкретное устройство необходимы замеры длительностей и проверка механизма переключения слотов.

Список литературы

  1. DMTF. Redfish Firmware Update White Paper. DSP2062. Version 1.1.0. 2025. URL: https://www.dmtf.org/sites/default/files/standards/documents/DSP2062_1.1.0.pdf (дата обращения: 21.10.2026).
  2. OpenBMC Project. OpenBMC Code Update. URL: https://github.com/openbmc/docs/blob/master/architecture/code-update/code-update.md (дата обращения: 21.10.2026).
  3. OpenBMC Project. OpenBMC Flash Layout and Filesystem Documentation. URL: https://github.com/openbmc/docs/blob/master/architecture/code-update/flash-layout.md (дата обращения: 21.10.2026).
  4. RAUC Project. Examples: Symmetric A/B and A/Recovery setups. URL: https://rauc.readthedocs.io/en/latest/examples.html (дата обращения: 21.10.2026).
  5. RAUC Project. RAUC Basics: Target and Boot Slot Selection. URL: https://rauc.readthedocs.io/en/latest/basic.html (дата обращения: 21.10.2026).
  6. Regenscheid A. Platform Firmware Resiliency Guidelines. NIST SP 800-193. Gaithersburg: NIST, 2018. DOI: 10.6028/NIST.SP.800-193.

Поделиться

6
Обнаружили грубую ошибку (плагиат, фальсифицированные данные или иные нарушения научно-издательской этики)? Напишите письмо в редакцию журнала: info@apni.ru

Похожие статьи

Другие статьи из раздела «Информационные технологии»

Все статьи выпуска
Актуальные исследования

#43 (329)

Прием материалов

17 октября - 23 октября

Остался последний день

Размещение PDF-версии журнала

28 октября

Размещение электронной версии статьи

сразу после оплаты

Рассылка печатных экземпляров

11 ноября