Содержание к диссертации
Введение
1. Анализ рисков в корпоративных вычислительных сетях 8
1.1. Структура сетей связи и особенности их функционирования 8
1.2. Оценка влияния факторов, определяющих процесс передачи и распределения информации, на надежность функционирования сетей связи Выводы по первой главе 21
2. Вопросы надежности аппаратного обеспечения 22
2.1. Методы контроля работы вычислительной системы 22
2.1.1. Использование аппаратного контроля 22
2.1.2. Использование программного контроля
2.2. Создание математических моделей кластеров 30
2.3. Выбор метода определения надежности сложных систем 32
2.4. Разработка математических моделей функционирования кластеров при расположении серверов и накопителей без чередования 2.4.1. Математическая модель при восстановлении повреждений одной бригадой 37
2.4.2. Математическая модель при восстановлении повреждений двумя бригадами 43
2.4.3. Математическая модель при восстановлении повреждений тремя бригадами 47
2.4.2. Математическая модель при восстановлении повреждений четырьмя бригадами 51
2.5. Разработка математических моделей функционирования кластеров при расположении серверов и накопителей с чередованием 54
Выводы по второй главе 58
3. Обзор существующих методов оценки надежности программного обеспечения 60
3.1. Основы анализа надежности программного обеспечения 60
3.2. Классическая модель надежности ПО 62
3.3. Отказоустойчивость программного обеспечения 63
3.4. Анализ существующих методов оценки надежности ПО как «черного ящика» 65
3.5. Обзор моделей роста надежности» 67
3.6. Использование ускоренного тестирования для малоактивных систем 71
3.7. Применение моделей роста надежности для ускоренное тестирование 72
Выводы по третьей главе 73
4. Разработка математической модели оценки надежности программного обеспечения на этапе тестирования 75
4.1. Исходные данные 75
4.2. Время тестирования 77
4.3. Надежность программного обеспечения 83
Выводы по четвертой главе 84
5. Комплексная оценка надежности исследуемой кластерной системы 86
5.1. Восстановление системы 86
5.2. Надёжность системы в целом 87
5.3. Результаты моделирования 89
Выводы по пятой главе 90
Заключение 92
Литература 94
- Структура сетей связи и особенности их функционирования
- Использование аппаратного контроля
- Основы анализа надежности программного обеспечения
- Надежность программного обеспечения
Введение к работе
Происходящие в мире процессы развертывания глобальных сетей связи стали объективным фактором движения мирового сообщества к созданию глобального информационного общества. Фактически речь идет о развертывании очередной промышленной революции, получившей название «информационной». Международная интеграция информационных ресурсов и развитой инфраструктуры компьютерных сетей позволяет осуществлять взаимодействие любых пользователей для получения любого вида информации в реальном масштабе времени вне зависимости от расстояния и используемых средств вычислительной техники [38].
Информационные технологии становятся одним из основных ресурсов развития ведущих стран мира в наступившем столетии. Впервые появляется возможность преодоления информационного неравенства как между отдельными странами, так и внутри стран. Особенно важно это для Российской Федерации, на обширной территории которой наряду с информационно развитыми городами и регионами имеются территории со слабой телекоммуникационной инфраструктурой (в первую очередь это касается сельских районов). Развитие цифровых информационных технологий и широкополосных беспроводных сетей передачи информации — один из перспективных путей решения этой проблемы.
В начале 60-х годов академик А. А. Харкевич высказал гипотезу о том, что количество информации, которую надо собирать, обрабатывать и доставлять в нужное место, «растет по меньшей мере пропорционально квадрату промышленного потенциала». Анализ подтверждает, что в передовых в техническом отношении странах такой рост действительно имеет место примерно со степенью 1,7-2,0. Это приводит к существенному росту значимости деятельности, связанной с производством, передачей и переработкой информации.
По данным ЮНЕСКО, в настоящее время более половины трудоспособного населения развитых стран прямо или косвенно принимает участие в процессе производства и распределения информации. Три ведущие отрасли информационного сектора общественного производства (вычислительная техника, промышленная электроника и связь) играют сейчас для этих стран ту же роль, которую на этапе их индустриализации играла тяжелая промышленность.
Появление глобальной «сети сетей» Internet и растущее громадными темпами количество ее пользователей становится планетарным явлением, которое может привести даже к социальным изменениям.
Другими словами, мировое сообщество приближается к такой степени зависимости своего существования от функционирования информационных сетей, которая сравнима с зависимостью от систем обеспечения электроэнергией. Это кроме очевидных достоинств имеет и обратную сторону. Отказ сети связи может иметь последствия, превосходящие последствия аварий энергосистемы. В связи с этим проблема оценки и обеспечения надежности сетей является актуальной.
Надежность - это свойство объекта (системы), заключающееся в его способности выполнять заданные функции при определенных условиях эксплуатации. Количественно надежность характеризуется рядом показателей, состав и способ определения которых зависят от типа анализируемой системы.
Целью настоящей диссертационной работы является построение методики комплексной оценки надежности корпоративных вычислительных сетей.
Основные задачи диссертации: 1. Анализ основных угроз надежности вычислительных систем и существующих методов оценки надежности аппаратного и программного обеспечения.
На основе анализа методов контроля вычислительных систем и особенностей использования кластерной технологии построить комплексную математическую модель надежности кластерной вычислительной системы.
На основе анализа поведения программного обеспечения на различных этапах жизненного цикла построить комплексную математическую модель оценки надежности программного обеспечения на этапе тестирования и эксплуатации, показать границы ее применимости.
На основе разработанных моделей построить комплексную математическую модель надежности кластерной вычислительной системы на протяжении жизненного цикла.
Программная реализация построенных моделей.
Основная часть диссертации состоит из 5 глав.
В первой главе дан анализ существующих методик построения вычислительных сетей и описаны особенности их функционирования.
Во второй главе построена математическая модель оценки надежности вычислительной системы, созданной по кластерной технологии.
В третьей главе дан анализ существующих методик оценки надежности программного обеспечения.
В четвертой главе построена математическая модель изменения надежности программного обеспечения во время тестирования, доказана адекватность данной модели на примере тестирования реально работающего программного комплекса.
В пятой главе разработана комплексная модель оценки надежности вычислительной системы, созданной на основе кластерной технологии, показаны способы применения данной модели для анализа реально существующих систем.
Структура сетей связи и особенности их функционирования
Под сетью связи понимается техническая система, которая предназначена для обеспечения обмена информацией ее пользователей. Часто вместо термина «сеть связи» употребляют термин «информационная сеть предприятия». Еще в 60-70-х годах сети связи были представлены в основном телефонными и телеграфными сетями, обеспечивающими пользователям возможность обмениваться разговорами и письменными сообщениями. Разработка систем факсимильной и видеосвязи добавляет к этим возможностям передачу документов и видеоизображений. Развитие вычислительной техники вызвало к жизни появление сетей передачи данных, обеспечивающих обмен информацией между человеком и ЭВМ, а также между ЭВМ [52].
В настоящее время интенсивно развиваются цифровые сети интегрального обслуживания (ISDN — Integrated Services Digital Network). Под ISDN понимается сеть связи, в которой одни и те же устройства цифровой коммутации и цифровые тракты передачи используются для осуществления более чем одного вида связи, например, телефонии, передачи данных и др. ISDN содержит следующие элементы:
1. Пользователи (абоненты) — источники и потребители информации, создающие и принимающие потоки сообщений.
2. Узлы связи (станции), которые подразделяются на оконечные пункты (в том числе и абонентские), содержащие аппаратуру ввода и вывода информации, и коммутационные узлы, осуществляющие распределение сообщений.
3. Каналы связи, через которые производится передача информации в пространстве между пунктами. 4. Система управления, содержащая средства управления и технического обслуживания, реализующие алгоритмы управления на различных уровнях [53].
Тяготеющей парой называется пара «передающая станция-приемная станция», связанная некоторой подсетью связи.
Последовательность «станция-канал-станция», начинающаяся передающей станцией тяготеющей пары и заканчивающаяся приемной станцией тяготеющей пары, называется маршрутом. Маршрут идентичен пути в графе, задающем подсеть, которая связывает тяготеющая пара. Часто для каждой тяготеющая пара задают подмножество разрешенных маршрутов, то есть маршрутов, принятых для использования в режиме нормальной эксплуатации.
В зависимости от способа передачи сообщений сети связи подразделяются на сети с коммутацией каналов, сети с коммутацией сообщений и сети с коммутацией пакетов.
В сети с коммутацией каналов абонентам, входящим в тяготеющую пару, на время сеанса в полное распоряжение предоставляется маршрут из множества разрешенных. Это приводит к невозможности использования в это же время маршрутов, имеющих элементы, общие с занятым.
Классическая коммутация каналов предусматривает установление гальванической связи между входящими и исходящими каналами на все время соединения. Это является причиной такого недостатка, как потери времени на установление соединения. Недостатком также является то, что при обмене короткими сообщениями полезное время передачи информации по каналу связи оказывается существенно меньше затрат времени на установление соединения. Для многих сеансов передачи данных доля полезного времени не превышает 1% [52].
Коммутация каналов применяется в сетях, где требуется передача информации в реальном масштабе времени (при телефонных и телеграфных диалогах, в некоторых сетях передачи данных). Обычно скорость поступления сообщений находится в пределах от 102 сообщений в секунду до одного сообщения в течение нескольких минут. Промежутки между поступлениями сообщений есть случайные величины, распределенные по пуассоновскому или равномерному законам, или представляют собой детерминированный поток. Средняя длина сообщений находится в пределах от нескольких бит до 108 бит. В общем случае длина сообщения является случайной величиной, распределенной по равномерному или экспоненциальному закону. Допустимая средняя задержка лежит в диапазоне от Юме при использовании передаваемой информации для управления в реальном масштабе времени до 1с в режимах, требующих взаимодействия с терминалом ЭВМ, или до нескольких минут и более при передаче файлов.
Передача речи налагает особые требования. Здесь определяющим является не средняя, а максимально допустимая задержка, обычно не превышающая 250 мс. Требования к верности передачи существенно зависят от типа передаваемой информации и способности получателя исправлять ошибки. Наиболее высокие требования предъявляются к верности передачи файлов, содержащих важную информацию (например, банковские документы), или исполняемые файлы. Требования к верности передачи электронной почты могут быть ниже, так как ошибки в принятых сообщениях могут быть легко обнаружены пользователем визуально и исправлены, основываясь на знании языка. При передаче речи искажения приводят к увеличению зашумленности речи. Однако требования к верности резко возрастают, если при передаче речи используются методы сжатия информации.
Использование аппаратного контроля
Для предотвращения отказа системы используется контроль состояния системы. Контроль системы может быть периодическим и непрерывным. При непрерывном контроле компоненты системы контролируются непрерывно, при периодическом - через определенные промежутки времени. Возможно совмещение 2 типов контроля: одна часть системы может контролироваться непрерывно, другая — периодически [39].
По признаку применяемых средств контроль подразделяется на:
Аппаратный - осуществляется аппаратными средствами и отличается большим быстродействием, но требует дополнительных аппаратных затрат;
Программный - осуществляется программно, не требует дополнительных аппаратных затрат. Но для осуществления программного контроля необходимо использование дополнительного процессорного времени и памяти;
Ярким примером использования аппаратного контроля является применение кластерных технологий.
В настоящее время общепринятым считается определение, впервые приведенное компанией DEC: «Кластер - группа вычислительных машин, которые связаны между собой и функционируют как один узел обработки информации» [67].
Кластер представляет собой объединение нескольких компьютеров, которые на определенном уровне абстракции управляются и используются как единое целое. На каждом узле кластера (по сути, узел в данном случае компьютер, входящий в состав кластера) находится своя собственная копия ОС. Узлом кластера может быть как однопроцессорный, так и многопроцессорный компьютер, причем в пределах одного кластера компьютеры могут иметь различную конфигурацию (разное количество процессоров, разные объемы ОЗУ и дисков). Узлы кластера соединяются между собой либо с помощью обычных сетевых соединений (Ethernet, FDDI, Fiber Channel), либо посредством нестандартных специальных технологий. Такие внутрикластерные, или межузловые соединения позволяют узлам взаимодействовать между собой независимо от внешней сетевой среды. По внутрикластерным каналам узлы не только обмениваются информацией, но и контролируют работоспособность друг друга.
Кластеризация может быть выполнена на разных уровнях системы (в соответствии с ее многоуровневой моделью, рис. 2-1). Чем больше уровней охватывает технология кластеризации, тем более надежным, масштабируемым и управляемым будет кластер. Общая схема пятиуровневой модели кластера представлена на рис. 2-1.
Кластерные приложения осуществляют восстановление после сбоев, распределение вычислительной нагрузки и поддержку параллельных вычислений.
Средства системного управления позволяют максимизировать коэффициент готовности (минимизировать относительное время простоя) путем контроля исполнения приложений, ОС и аппаратуры, а также выполнения соответствующих управляющих функций. Управление всеми серверами кластера осуществляется из одной точки.
Кластерное промежуточное ПО обеспечивает улучшенную защиту данных, восстановление данных и работоспособности незаметным для пользователей способом.
Кластерный вариант ОС обычно обеспечивает улучшенное управление функционированием кластера и более высокий коэффициент готовности.
Аппаратные средства серверов, межузловых соединений и запоминающих устройств в кластерной конфигурации позволяют производить зеркал ирование данных, предоставляют компонентное резервирование, самоконтроль компонентов, подачу сигналов тревоги и совместное использование имеющихся ресурсов. Это исключает возможность выхода кластера из строя при отказе какого-либо одного устройства.
Кластеры могут поддерживать следующие функции [68]: передача управления ресурсами при сбое (failover); возвращение управления ресурсами на исходный узел после его восстановления (fallback); перераспределение нагрузки (ресурсов) между узлами (load balancing). Наиболее совершенные типовые кластерные решения позволяют объединять до 32 узлов. Кластерное решение, объединяющее несколько серверов, включает следующие компоненты [69]: 1. Операционная система (ОС), которая поддерживает кластеризацию (например, Windows 2000 Advanced Server, Windows 2003 Server Enterprise Edition).
Основы анализа надежности программного обеспечения
В системах реального времени программы запускается с заданной периодичностью, т.е. программа выполняется в ответ на поступление новых данных. Не являются редкостью программы с периодом выполнения 10-100 раз в секунду. Если вероятность ошибки Р в результате каждого запуска постоянна (мы подразумеваем, что запуски происходят с разными исходными данными), то количество ошибок « после п запусков подчиняется закону биномиального распределения и может быть вычислено P{Sn=k) = [f\Pk{\-pY k по формуле v«/ . Мы хотим найти вероятность отказа системы после п запусков. Ошибка в системе происходит при всех » .
Поэтому у " п л У Р) # Это выражение может быть преобразовано в функцию времени с использованием преобразования п = Kt где К - число запусков в единицу времени. Тогда вероятность ошибки за время t ,(0 = і-(і-/ )"(зл)
В данном случае мы считаем, что вероятность отказа при каждом запуске не зависит от времени (в противном случае задача сильно усложняется). При достаточно больших п и Р данную формулу можно аппроксимировать, используя экспоненциальное распределение: Р (t) = \ — e Kpt S}sK . Таким образом, дискретный биномиальный процесс может быть промоделирован с использованием длительного экспоненциального процесса [49]. Представленная модель обладает одним серьезным недостатком: она не отличает серьезных отказов, в результате которых система полностью теряет работоспособность от несерьезных, приводящих к примеру, к мелкому неудобству работы оператора, но не влияющих на основные функции системы. Несмотря на это, данная модель будет использоваться как базовая для анализа существующих методов оценки надежности программного обеспечения.
Т.к. стратегия отказоустойчивости эффективно используется для защиты от аппаратных сбоев, кажется естественным ее применение и для защиты от программных сбоев. Достаточно легко построить модель системы, маскирующей физические отказы использованием дублирующих устройств. Фундаментом этой модели является предположение, что дублирующиеся устройства выходят из строя независимо друг от друга. Если эти устройства находятся в разных корпусах, имеют разные источники питания, электрически изолированы друг от друга и от окружающей среды, то это предположение является вполне оправданным. Процесс получения отказоустойчивого программного обеспечения заключается в разработке нескольких программ, основанных на одной спецификации, а затем выбора из них. Осуществлять выбор можно сравнением программ (т.н. программирование N версий) или по результатам тестов. Каждая версия пишется отдельной командой разработчиков. Т.к. разработчики независимы, то можно надеяться, что отказы программ будут независимы друг от друга [50], [51]. Исходя из надежности версий и предположения о независимости отказов, можно подсчитать надежность всей системы. Но, тем не менее, в отличие от отказов аппаратуры, вызываемых чисто физическими причинами, отказ программы вызван «человеческим фактором». Таким образом, мы пришли к вопросу, допустимо ли принятие положения о независимости как аксиомы, несмотря на то, что это еще не было подтверждено ни практически, ни теоретически. В дальнейшем мы рассмотрим причины, делающие невозможным экспериментальное подтверждение независимости версий программного обеспечения.
Большинство моделей надежности отказоустойчивого программного обеспечения основаны на предположении о независимости версий. Покажем, как предположение о независимости позволяет оценивать надежность, и почему без принятия этого предположения трудно оценить надежность ПО.
Предположим, что существует три версии программы, управляющей неким критически-важным процессом. Тогда в случае к отказа версии происходит событие , a Fi-k - вероятность этого события. Как уже говорилось выше, мы считаем, что эта вероятность неизменна. Система не отказывает, если в разных версиях нет одинаковых ошибок, т.е. если две или более версии не выдают неправильных ответов на одни и те же исходные данные.
Надежность программного обеспечения
Для наиболее эффективного использования системы в экономическом плане прежде всего необходимо оценить, как зависит коэффициент готовности системы от числа ремонтных бригад.
Данный график построен для системы без чередования. Как видно из графика, коэффициент готовности получается наибольшим при максимальном числе бригад восстановления. Применяя полученные результаты для системы с чередованием элементов, можно утверждать, что в этом случае целесообразно использование 8 бригад восстановления.
Зависимость коэффициента готовности от отношения интенсивности отказов к интенсивности восстановления показана на рис. 5-2.
На данном графике показано, как меняется коэффициент готовности системы в зависимости от числа бригад восстановления и отношения интенсивности отказов к интенсивности восстановления. Как видно из графика, для достижения максимальной надежности интенсивность Рисунок 5-2. Зависимость коэффициента готовности системы от р На основе полученных данных попытаемся теперь отследить, как влияют на надежность системы на протяжении жизненного цикла свойства и программного, и аппаратного обеспечения.
Для примера выберем следующую аппаратную конфигурацию: кластер без чередования, программное обеспечение было установлено в январе 2007 г., когда его надежность составляла 0,82.
С течением времени надежность аппаратуры падает. По мнению аналитиков компании Intel, оптимальный срок эксплуатации серверного и сетевого оборудования составляет 3 года.
В данной работе мы уже приводили статистику, что процент отказов, возникающих при передаче данных, составляет 21%, процент отказов в программах составляет 22 %, процент отказов дисков составляет 27%, процент отказов сервера или его ядра составляет 24% и процент ошибок персонала составляет 6%.
Мы не будем учитывать отказы сервера, так как считаем, что мы их избежим за счет дублирования и ошибки персонала как выходящие за рамки данной работы. После перенормировки мы получаем следующие коэффициенты: 39% для дисковой подсистемы, 31% для программного обеспечения и 30% для сетевого оборудования.
Зависимость коэффициента готовности сетевого оборудования от времени вычисляется из уравнений Колмогорова, составленных во 2-й главе. Аналогичным образом вычисляется и надежность дисковой подсистемы.
Для учета совместного воздействия этих составляющих на работу системы на каждую составляющую модели в соответствии со статистикой введем весовые коэффициенты 0,386 для дисковой подсистемы, 0,3 для сетевого оборудования и 0,314 для программного обеспечения: =0,386 +0,314 +0,3 (5.1)
Здесь Ks}s - коэффициент готовности системы, Kd — коэффициент готовности дисковой подсистемы, Ks - коэффициент готовности программного обеспечения и Кп - коэффициент готовности сетевого оборудования.
Прежде всего проследим, как будет меняться на протяжении 3-х лет надежность программного обеспечения (график 5-5). Как видно, к концу жизненного цикла она составит 98,4%. Промоделируем теперь надежность системы в целом.