Оценивание надежности программного обеспечения вычислительной системы с учетом взаимной виртуализации элементов
Автор: Швецов А.С., Терехов В.Г.
Рубрика: Информатика и вычислительная техника
Статья в выпуске: 4, 2024 года.
Бесплатный доступ
В статье рассмотрен подход оценивания надежности программного обеспечения вычислительной системы с учетом использования технологии виртуализации. Проведена аналогия между структурным резервированием и логикой работы программного обеспечения. Показано, что использование виртуализации существенно повышает надежность программного обеспечения и функционирования вычислительной системы.
Вычислительная система, виртуализация, надежность программного обеспечения, резервирование
Короткий адрес: https://sciup.org/148330267
IDR: 148330267 | УДК: 004.41 | DOI: 10.18137/RNU.V9187.24.04.P.146
Assessment of fault-tolerant computing system software reliability with consideration of mutual virtualization of elements
The article considers an approach to assessing the reliability of computer system software taking into account the use of virtualization technology. An analogy is drawn between structural redundancy and the logic of software operation. It has been shown that the use of virtualization significantly increases the reliability of software and the functioning of the computing system.
Текст научной статьи Оценивание надежности программного обеспечения вычислительной системы с учетом взаимной виртуализации элементов
Современная вычислительная система (далее – ВС), функционирующая продолжительное время и способная к масштабированию, чаще всего характеризуется неоднородностью аппаратного и программного обеспечения. Это связано с тем, что в процессе эксплуатации со временем приходится заменять вышедшее из строя аппаратное и, как следствие, программное обеспечение. Это приводит к невозможности простого переноса вычислительных задач между аппаратным обеспечением, так как вычислительные задачи могут быть ориентированы на разные операционные системы (как тип, так и версия, например, 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