Оценивание надежности программного обеспечения вычислительной системы с учетом взаимной виртуализации элементов
Автор: Швецов А.С., Терехов В.Г.
Рубрика: Информатика и вычислительная техника
Статья в выпуске: 4, 2024 года.
Бесплатный доступ
В статье рассмотрен подход оценивания надежности программного обеспечения вычислительной системы с учетом использования технологии виртуализации. Проведена аналогия между структурным резервированием и логикой работы программного обеспечения. Показано, что использование виртуализации существенно повышает надежность программного обеспечения и функционирования вычислительной системы.
Вычислительная система, виртуализация, надежность программного обеспечения, резервирование
Короткий адрес: https://sciup.org/148330267
IDR: 148330267 | DOI: 10.18137/RNU.V9187.24.04.P.146
Текст научной статьи Оценивание надежности программного обеспечения вычислительной системы с учетом взаимной виртуализации элементов
Современная вычислительная система (далее – ВС), функционирующая продолжительное время и способная к масштабированию, чаще всего характеризуется неоднородностью аппаратного и программного обеспечения. Это связано с тем, что в процессе эксплуатации со временем приходится заменять вышедшее из строя аппаратное и, как следствие, программное обеспечение. Это приводит к невозможности простого переноса вычислительных задач между аппаратным обеспечением, так как вычислительные задачи могут быть ориентированы на разные операционные системы (как тип, так и версия, например, Astra Linux, Debian Linux, Solaris, Windows 11), а операционная система поддерживает определенное аппаратное обеспечение. В связи с этим является целесообразным использование систем виртуализации, которые для решения вычислительных задач позволяют создавать виртуальные машины, не зависящие от аппаратно-программного обеспечения хостовых ЭВМ.
Виртуализация – это изоляция вычислительных процессов и ресурсов средств вычислительной техники друг от друга.
С разработкой программных продуктов для виртуализации появилась возможность на имеющимся оборудовании запускать и использовать различные операционные системы и другие программные приложения, а также увеличивать с помощью инструментов виртуализации рабочую нагрузку на единицу оборудования. Вместо двух или даже деся-
Оценивание надежности программного обеспечения вычислительной системы...
Швецов Александр Сергеевич кандидат технических наук, доцент, доцент кафедры информационно-вычислительных систем и сетей, Военно-космическая академия имени А.Ф. Можайского, Санкт-Петербург. Сфера научных интересов: сетевые технологии, защита информации в информационно-вычислительных сетях. Автор более 30 опубликованных научных работ. SPIN-код: 8282-5162, AuthorID: 884093.
ти серверов с установленными операционными системами различных семейств и пользовательским программным обеспечением, загруженных на 5…20 %, можно использовать один на 50…70 % [1].
Однако обеспечение высокой надежности, отказоустойчивости и непрерывности вычислительного процесса напрямую зависит от надежного функционирования аппаратных средств вычислительной техники и используемого программного обеспечения (далее – ПО).
Сущность подхода
Проблема надежности программ давно приобрела большое значение в связи с постоянным увеличением объемов и сложности разрабатываемого ПО. Несмотря на общепризнанность важности учета надежности ПО и значительное количество теоретических работ в этой области [2], на практике ей уделяется недостаточное внимания.
Оцениванию надежности вычислительных систем с миграцией виртуальных машин посвящено большое количество работ [3]. При этом основное внимание уделено аппаратной составляющей, в то время как сбои в работе системы чаще происходят по вине ПО.
Рассмотрим вариант оценки надежности программного обеспечения ВС, состоящей из двух вычислительных машин (далее – ВМ) (см. Рисунок 1).
На ВМ 1 установлена операционная система А (например, из семейства Windows), прикладные Windows-приложения и программа виртуализации, в которой создана и работает виртуальная копия хостового компьютера №2 (VВМ 2).
На ВМ 2 установлена операционная система В (например, из семейства UNIX (Linux)), прикладные приложения UNIX(Linux) и программа виртуализации, в которой создана и работает виртуальная копия хостового компьютера № 1 (VВМ 1).
Такое сочетание предполагает запуск копии физической ВМ виртуально в фоновом режиме, что позволяет после сбоя в работе физической ВМ без прерываний продолжить вычислительный процесс на виртуальной машине другого физического компьютера. Порядок миграции данных и создание срезов вычислительных процессов рассмотрен в работе [1].
Пусть необходимо оценить надежность ПО, включающего операционные системы А, В и соответствующие им приложения (пользовательское ПО А, В), с учетом взаимной виртуализации вычислительных машин.

Рисунок 1. Структура отказоустойчивой ВС с применением технологии виртуализации Источник: здесь и далее рисунки выполнены авторами
При сбое ПО (операционной системы или пользовательского ПО) в работе ВМ 1 (ВМ 2) вычислительный процесс будет продолжаться в своей виртуальной копии VBM-1 (VBM-2) на ВМ 2 (ВМ 1).
Очевидно, что описанная логика работы системы полностью повторяет идею структурного резервирования в классической теории надежности. Иными словами, можно говорить о виртуальном резервировании программного обеспечения. Тогда для получения оценки надежности функционирования ПО возможно применить известные методы анализа надежности технических систем [4].
Представим описанный выше процесс функционирования ПО как резервированную систему без восстановления и составим для него структурную схему (см. Рисунок 2).

Рисунок 2. Схема функционирования программного обеспечения
Оценивание надежности программного обеспечения вычислительной системы...
Полагая известными вероятности безотказной работы блоков ( Р i ), запишем результирующее выражение для вероятности безотказной работы всей системы:
P c = PP 3 + P 5 P 7 + P 1 P 2 P 4 + P 5 P 6 P 8 - P 1 P 2 P 3 P 4 - P 5 P 6 P 7 P 8 -
— P 1 P 3 P 5 P 7 — P 1 P 3 P 5 P 6 P 8 — P 1 P 2 P 4 P 5 P 7 +
+ P 1 P 3 P 5 P 6 P 7 P 8 + P 1 P 2 P 3 P 4 P 5 P 7 — P P 2 P 4 P 5 P 6 P 7 +
+ P 1 P 2 P 4 P 5 Р б P 7 P 8 + P 1 P 2 P 3 P 4 P 5 Р б P 8 — P 1 P 2 P 3 P 4 P 5 Р б P 7 P 8 .
В теории надежности программного обеспечения существует большое количество моделей, позволяющих описать вероятность безотказной работы как функцию времени через возведение в степень основания натурального логарифма (например, модель Мусы [5], модели класса NНPP [6; 7] и др.). В нашем случае для экспоненциальной модели P i ( t ) = e ^ (см. Таблицу) сравним вероятности безотказной работы ПО без резервирования (задействованы только блоки 1 и 3) с работой виртуальной машины на той же ВМ (блоки 1, 2, 3 и 4) и для описанного выше способа резервирования с использованием второй ВМ (все блоки). Значения интенсивностей отказов взяты для примера и сопоставимы с данными, приведенными в [8]. Результаты получены в среде Mathcad и представлены на Рисунке 3. Надежность системы с резервированием, естественно, выше, чем без него.
Таблица
Заданные интенсивности отказов
№ блока |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
λi∙10–6 1/ч |
2 |
1,5 |
4 |
3 |
2 |
1,5 |
3 |
4 |
Используя подобный подход, можно также оценить надежность программного обеспечения системы с восстановлением (перезапуском). Аналогичная задача для аппаратного обеспечения (двух физических серверов с виртуальными машинами) приведена в [3].

Рисунок 3. Вероятности безотказной работы программного обеспечения
Полагая законы распределения времени безотказной работы и времени восстановления экспоненциальными, а приоритет обслуживания – прямым (отказавшее ПО сразу восстанавливается путем перезапуска), строим граф состояний системы и формируем систему дифференциальных уравнений Колмогорова. Решив ее любым способом при нулевых начальных условиях, можно рассчитать характеристики надежности системы.
Заключение
Таким образом, получить приблизительную оценку надежности программного обеспечения ВС с учетом взаимной виртуализации элементов можно при проведении аналогии между структурным резервированием аппаратуры и логикой работы программного обеспечения.
Использование виртуализации существенно повышает надежность программного обеспечения и функционирования вычислительной системы.
Список литературы Оценивание надежности программного обеспечения вычислительной системы с учетом взаимной виртуализации элементов
- Лоу С. VMware vSphere 4: полное руководство / Пер. с англ. А.В. Журавлева, А.Г. Гузикевича, В.С. Иващенко М.: Диалектика, 2010. 784 с. ISBN: 978-5-8459-1651-8
- Смагин В.А., Дорохов А.Н. Основы теории надежности программного обеспечения: учебник для студентов. СПб.: БГТУ, 2009. 303 с. ISBN: 978-5-85546-479-9 EDN: QMULYB
- Алексанков С.М., Богатырев В. А., Деркач А.Н. Модель надежности отказоустойчивого кластера с миграцией виртуальных машин // Программные продукты и системы. 2019. Т. 32. № 1. С. 103108. DOI: 10.15827/0236-235X.125.103-108 EDN: WFDGTK
- Половко А.М., Гуров С.В. Основы теории надёжности. СПб.: БХВ-Петербург, 2008. 702 с. ISBN: 978-5-94157-541-1
- Musa J.D. The measurement and management of software reliability // Proceedings of the IEEE. 1980. Vol. 68. No. 9. Pp. 1131-1143. DOI: 10.1109/PROC.1980.11812
- Goel A.L., Okumoto K. Time-dependent error-detection rate model for software reliability and other performance measures // IEEE Transactions on Reliability. 1979. Vol. R-28. No. 3. P. 206-2011. DOI: 10.1109/TR.1979.5220566
- Мороз Г.Б. Пуассоновские модели роста надежности программного обеспечения и их приложение. Аналитический обзор // Управляющие системы и машины. 1996. № 1-2. С. 69-84.
- Чернов В.Ю., Никитин В.Г., Иванов Ю.П. Надёжность авиационных приборов и измерительновычислительных комплексов: Учебное пособие. СПб.: ГУАП, 2004. 96 с. ISBN: 5-8088-0100-1