Проблема исследования процессов функционирования систем, мгновенно изменяющих свое состояние под воздействием внешних и внутренних событий, является достаточно актуальной. К таким системам, в частности, относятся кластерные вычислительные системы и все суперкомпьютеры, экономические системы, системы передачи информации по сетям связи и многие другие.
Актуальность темы возрастает в наши дни благодаря стечению двух обстоятельств. Во-первых, технологические пределы использующейся сейчас кремниевой технологии производства процессоров уже не за горами, предупреждают специалисты. Ни одна фирма не обещает в ближайшие 10 лет выпуска процессоров с тактовой частотой в сотни или тысячи гигагерц. Предлагаемые научные идеи далеки пока что от коммерческих перспектив разработки. Во-вторых, возрастают объемы обрабатываемой информации и по мере развития компьютерной техники и интеграции ее в бизнес-процесс предприятий проблема увеличения времени, в течение которого доступны вычислительные ресурсы, становится все более актуальной. Причиной повышения спроса на решения высокой надежности, является постоянное увеличение стоимости поломок и простоя оборудования. Эта стоимость складывается из ряда факторов: стоимость потерянной информации, потеря прибыли, неудовлетворенность клиентов, стоимость технической поддержки и восстановления, и т. д. Одним из наиболее распространенных подходов к разрешению этого противоречия является использование кластеров.
Кластер - это программно-аппаратный комплекс, состоящий из нескольких связанных между собой компьютеров, который используется и управляется как единая система.
Пользователи при обращении "видят" кластер как один большой сервер, на котором работает множество приложений, и предоставляются сетевые службы, хотя в действительности все это функционирует на различных компьютерах кластера называемых узлами. При отказе программного или аппаратного компонента узла его сервисы и приложения, по указанным правилам, автоматически перераспределяются между другими узлами, и кластер продолжает предоставлять эти ресурсы пользователям. При восстановлении работоспособности отказавшего узла его приложения и сервисы могут быть перенесены обратно.
Важной задачей является оценка надежности кластеров. Процесс исследования таких систем начинается с создания математической модели. Если целью исследования являются временные характеристики работы системы, то в качестве математической модели часто выбирается модель в виде системы или сети массового обслуживания. В терминах сетей массового обслуживания описываются многие реальные системы: вычислительные системы, узлы сетей связи, системы посадки самолетов, магазины, производственные участки – любые системы, где возможны очереди и отказы в обслуживании.
Универсальным методом исследования сетей массового обслуживания является имитационное моделирование, т. е. написание компьютерной программы, имитирующей процесс функционирования системы, и проведение экспериментов на этой программе с целью получения статистических оценок характеристик моделируемой системы. Основным преимуществом имитационного моделирования по сравнению с аналитическим является возможность решения более сложных задач. Имитационные модели позволяют учитывать такие факторы, как нелинейные характеристики элементов системы, многочисленные случайные воздействия и другие, которые часто создают трудности при аналитических исследованиях. Используя результаты имитационного моделирования, можно описать поведение системы, оценить влияние различных параметров системы на ее характеристики, выявить преимущества и недостатки предлагаемых изменений, прогнозировать поведение системы.
Построение имитационных моделей больших систем и проведение машинных экспериментов с этими моделями представляют собой достаточно трудоемкий процесс. Использование существующих языков моделирования позволяет преодолеть лишь часть трудностей, требует от пользователей специальных знаний и навыков. Эффективный способ снижения трудоемкости при увеличении сложности моделируемых систем – автоматизация процедур, охватывающих построение и реализацию моделей.
Отличительной особенностью кластера является параллельное участие в вычислительном процессе большого количества вычислительных средств. Исключение из вычислительного процесса одного или нескольких вычислительных средств не препятствует продолжению использования кластера по назначению, а лишь снижает его потенциальную производительность. Эффективность использования объекта (в т.ч. и кластера) по назначению – важное эксплуатационное свойство объекта. Очевидно, чем реже объект вынужден исключаться из производительной работы и чем меньше ущерб от вынужденного простоя, тем выше эффективность его использования.
Отказоустойчивость – это свойство объекта сохранять возможность использования его по назначению при возникновении в нем в процессе работы отказов составных частей (СЧ).
Предлагается различать следующие последствия отказов составных частей кластера:
− вычислительный процесс при отказе составной части кластера не прервался – такое положение считается как отказоустойчивость первого вида;
− вычислительный процесс при отказе составной части кластера прервался для реконфигурации системы и затем, без процедуры восстановления отказавшей составной части кластера, продолжился с места его прерывания с незначительным повтором части вычислений – такое положение считается как отказоустойчивость второго вида;
− вычислительный процесс при отказе составной части кластера прервался для реконфигурации системы и затем, без процедуры восстановления отказавшей составной части кластера, стало возможным выполнение задания лишь сначала – такое положение считается как отказоустойчивость третьего вида.
Наиболее естественной качественной характеристикой свойства отказоустойчивости кластера является перечень составных частей кластера, к отказам которых он должен быть устойчив. Задание качественных характеристик отказоустойчивости не позволяет сравнивать различные модели кластера по этим свойствам и не учитывает реальные возможности обеспечения отказоустойчивости.
Для восстанавливаемых объектов, в том числе и кластера, накопление более одного отказа в составных частях имеет очень малую вероятность.
Поэтому предлагается оценивать устойчивость кластера только к одному отказу в любой его составной части. Для вывода показателей устойчивости кластера к одному отказу в любой его составной части рассматривалась следующая модель кластера:
− кластер состоит из n функционально необходимых составных частей;
отказы составных частей – события независимые; каждая составная часть характеризуется простейшим потоком отказов с известным параметром;
− отказ любой составной части кластера, в случае отсутствия избыточности для неё, приводит к отказу кластера в целом;
− при отказе составной части кластера вводится избыточность, которая с определенной вероятностью успешно компенсирует отказ составной части (обеспечивает безотказное функционирование кластера).
Структурная схема надежности кластера
Сложный объект (к числу которых следует отнести и кластер) состоит из большого числа СЧ, которые могут находиться во множестве состояний, и тем самым увеличивать число состояний объекта в целом, до размеров, которые плохо поддаются математическому описанию. С целью упрощения математического описания объекта производится его декомпозиция на составные части (элементы). Декомпозиция объекта на элементы производится таким образом, чтобы можно было по показателям надежности элементов вычислить показатели надежности объекта в целом. В качестве элементов декомпозиции объекта выбираются составные объекта, отказы которых независимы друг от друга.
Из элементов декомпозиции объекта строится структурная схема надежности объекта, которая является логико-вероятностной схемой расчета безотказности объекта. Последовательное соединение элементов означает логическое И, а параллельное соединение элементов означает логическое ИЛИ. Структурная схема надежности наглядно представляет взаимосвязь показателей надежности объекта с показателями надежности элементов.
Установлено, что декомпозицию кластера следует начинать с оценки влияния отказов составных частей кластера на основной показатель надежности (ПН). С этой целью все составные части кластера целесообразно разделить на три группы. К группе 1 следует отнести составные части, отказы которых приводят к снижению производительности кластера до нуля или до уровня ниже допустимого. К группе 2 следует отнести составные части, отказы которых приводят к снижению производительности кластера в пределах допустимого уровня. К группе 3 следует отнести составные части, отказы которых не влияют на производительность кластера.
В качестве составных частей кластера, отказ которых влияет на производительность кластера, рекомендуется использовать технические средства (ТС), а иногда и функциональные части ТС. Например, коммутаторы следует разделять на две части: общую часть всех портов и отдельные порты коммутатора. Такое деление определяется тем, что при отказе общей части коммутатора недоступными программному обеспечению (ПО) кластера станут все изделия, подключенные к его портам, а при отказе порта коммутатора недоступным программному обеспечению кластера окажется лишь изделие, подключенное к этому порту. Порт коммутатора и кабель, связывающий его с изделием, следует включить в это изделие при оценке его надежности. Например, при оценке надежности вычислительных узлов кроме надежности вычислительного устройства следует учесть надежность портов коммутаторов вспомогательной и системной сетей, соответствующих им адаптеров и кабелей, соединяющих порты с адаптерами.
Назовем совокупность составных частей группы 1 ядром кластерной системы, а совокупность составных частей группы 2 совокупностью вычислительных средств (СВС). При принятых обозначениях, наиболее обобщенная структурная схема надежности кластера примет вид, приведенный на рис. 1.
Рис. 1 Обобщенная структурная схема надежности кластера
В СВС включают совокупность вычислительных узлов и возможно общие части коммутаторов вспомогательной и системной сетей. Коммутаторы включают в СВС только в том случае, если допустимое число недоступных ПО кластера ВУ больше числа ВУ, подключенных к данному коммутатору. Исключением является корневой коммутатор вспомогательной сети, ибо при его отказе недоступными станут все ВУ. Остальные составные части кластера, отказы которых влияют на его производительность, относят к ядру кластера. Следует заметить, что не всегда однозначно назначение ТС кластера в состав ядра КВС. Так, например, для привилегированного пользователя кластера отказ файл-сервера не приведет к отказу КВС и его следует отнести к вспомогательному оборудованию. В то время как для непривилегированного пользователя отказ файл-сервера лишит их доступа к КВС и в этом случае файл-сервер следует отнести к ядру КВС.
После рекурсивного проведения декомпозиции узлов кластерной системы, получаем схему, пригодную для построения имитационной модели и проведения анализа параметров надежности кластерной системы.
Литература
1. Воеводин Вл.В., Жуматий С.А. Вычислительное дело и кластерные системы. – М.: Изд-во МГУ, 2007. - 150 с.
2. Лаврищева Е.М., Коротун Т.М Построение процесса тестирования программных систем // Проблемы программирования. – 2002. – № 1–2. – С. 272–281
3. Модели оценки надежности кластерной системы специального назначения [Электронный ресурс]. – В.П. Климанов, М.В. Сутягин, А.Э. Родионов и др. // Вычислительные системы. Теория и практика. – 2003. – №1. – Режим доступа: http://network-journal.mpei.ac.ru/cgi-bin/main.pl?l=ru&n=3&pa=11&ar=1