Оценивание надежности программного обеспечения вычислительной системы с учетом взаимной виртуализации элементов

Бесплатный доступ

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

Вычислительная система, виртуализация, надежность программного обеспечения, резервирование

Короткий адрес: 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
Еще
Статья научная