В. Столлингс - Операционные системы (1114679), страница 132
Текст из файла (страница 132)
Распределенные вычисления, архитектура.. цее с ним приложение продолжало корректно выполняться. Для того чтобы это ;ыло возможно, требуется постоянное копирование данных между серверами с ~елью обеспечения каждой системе доступа к текущим данным других систем. Зысокая доступность достигается за счет увеличения накладных расходов, вы,ванных таким обменом данными, и некоторого снижения производительности. Уменьшить эти накладные расходы позволяет подключение к общим дис<ам серверов, составляющих кластеры (рис. 13.13,б), При выборе одного из вариантов такого подхода — без совместного использования (аЬагед по$Ыпя)— общие диски разбиты на тома, и каждый том принадлежит одному из компьюгеров. Ксли этот компьютер выходит из строя, кластер должен быть переконфигурирован так, чтобы какой-то из оставшихся компьютеров стал владельцем ~иска вышедшего нз строя компьютера, Возможно и такое решение, когда несколько компьютеров совместно используют одни и те же диски (подход с совместным использованием дисков), гак что каждый из компьютеров имеет доступ ко всем томам всех дисков.
Этот подход требует наличия средств блокировки для обеспечения взаимоисключительного доступа компьютеров к данным. Вопросы разработки операционных систем Для полного использования аппаратного обеспечения кластеров к операционной системе для отдельной системы должны быть добавлены определенные расширения. Обработка отказов Способ обработки кластером отказов техники зависит от используемого метода кластеризации (см.
табл. 13.2). Обычно используется один из двух подходов: высокодоступные или отказоустойчивые кластеры. Высокодоступный кластер предусматривает высокую вероятность того, что все ресурсы будут доступны. При отказе, таком, как сбой системы или потеря тома диска, текущий запрос оказывается потерянным. При повторе запроса он будет отправлен другой машине кластера. Однако операционная система кластера не дает никаких гарантий относительно состояния частично выполненных транзакций, которые должны обрабатываться на уровне приложений. Отказоустойчивые кластеры гарантируют постоянную доступность всех ресурсов.
Это достигается за счет использования избыточных совместно используемых дисков и механизмов для восстановления как невыполненных, так и завершенных транзакций. Функция переключения приложений и передачи ресурсов данных от сбойной системы другой системе кластера известна как преодоление сбоя (Ха11очег). С ней связана функция восстановления приложений и ресурсов данных возвращенной в строй после отказа вычислительной системы, известная как восстановление после сбоя (ГаЫЬасх). Эта функция может быть автоматизирована, но желательно, чтобы она выполнялась только после полного устранения причин сбоя. когда повторный сбой маловерояген, Иначе кластер может попасть в состояние, когда после восстановления вновь происходит сбой и все-ресурсы вновь перемещаются на другой компьютер, чтобы после возврата в строй только что отказавшей системы все повторилось вновь.
Балансировка загрузки Кластер нуждается в эффективных средствах для балансировки загрузки работающих компьютеров (сюда же входит и требование инкрементального мас штабирования). Когда к кластеру добавляется новый компьютер, средства балан сировки загрузки должны подключить эту машину к программе-планиро ировщику. Для распознавания появления доступных сервисов у разных членов кл -ластера и возможности их перемещения с одной системы на другую требуется использова ние механизма промежуточного программного обеспечения. Параллельные вычисления В ряде случаев эффективное использование кластеров требует параллельного выполнения единого приложения. В 1КАРРОО) перечислены три основных подхода к проблеме. е Параллелизующие компиляторы.
Такие компиляторы в процессе компиляции определяют, какие части приложения могут выполняться параллельно, и затем эти части разделяются для выполнения на разных компьютерах кластера. Достигаемая при этом производительность зависит от природы решаемой задачи и от того, насколько хорошо разработан компилятор. е Параллелизованные приложения. Это создаваемые программистом приложения, изначально ориентированные на выполнение кластером. Передача сообщений используется для перемещения в случае необходимости данных между узлами кластера. Такой подход предполагает выполнение основной части работы программистом, но для ряда приложений оказывается наилучшим способом эффективного использования возможностей кластера.
° Параметрические вычисления. Этот подход может использоваться тогда, когда приложение представляет собой алгоритм или программу, которая должна выполняться большое количество раз, причем каждый раз — с новым набором начальных условий нли параметров. Хорошим примером может служить имитационная модель, в которой просчитывается большое количество различных сценариев и используется статистическая обработка полученных результатов. Для того чтобы такой подход был эффективен, следует надлежащим образом организовать управление заданиями и их выполнение. Архитектура кластера На рис.
13.14 показана типичная архитектура кластера. Отдельные компьютеры соединены высокоскоростной сетью; при этом каждый компьютер в состоянии работать независимо от других. На каждом компьютере установлено промежуточное программное обеспечение для работы компьютера в составе кластера. Оно обеспечивает пользователю унифицированный образ системы (или образ единой системы), а также высокую доступность кластера путем балансировки загрузки и реакции на отказы отдельных компонентов.
В ГН ~Н%'АХРР1 в качестве желательных сервисов и функций промежуточного программного обеспечения перечислены следующие. Часть 6. Распределенные системМ . Глава 13. Распределенные вычисления, архитектура... Единая точка входа. Пользователь входит в кластер в целом, а не в один из его камш ютеров. Единая иерархия файлов. Пользователь видит единую иерархию каталогов файлов в одном корневом каталоге. Единая точка управления. Имеется рабочая станция, по умолчанию используемая для слежения за кластером и управления им. Единая виртуальная сеть.
Узел кластера может обратиться к любому другому узлу, даже если реально кластер состоит из ряда взаимосвязанных сетей. е Единое пространство памяти. Распределенная совместно используемая память позволяет программам разделять переменные. е Единая система управления заданиями. Пользователь может передать задание планировщику кластера, не определяя узел, на котором это задание должно выполняться. е Единый пользовательский интерфейс.
Все пользователи независимо от используемых рабочих станций получают доступ к кластеру посредством одинакового графического интерфейса пользователя. е Единое пространство ввода-вывода. Любой узел может получить удаленный доступ к любому периферийному или дисковому устройству, даже не зная его физического расположения. е Единое пространство процессов.
Используется единая схема идентификации процессов. Процесс на одном узле может создавать процесс на удаленном узле или взаимодействовать с любым другим процессом на нем. е Контрольные точки. Эта Функция периодически сохраняет состояние процессов и промежуточные результаты вычислений, с тем чтобы обеспечить восстановление системы при сбое. Миграция процессов. Эта Функция обеспечивает балансировку загрузки. Сервисы и функции, указанные в последних четырех пунктах данного списка, увеличивают доступность кластера; указанное в остальных пунктах связано с предоставлением пользователю единого образа системы.
Возвращаясь к рис. 13.14, заметим, что кластер включает в себя также пРогРаммное обеспечение, отвечающее за эффективную работу программ, способных к параллельному выполнению. Часть 6. Распределенные системы:: Инструменты управлеиил кластером 00 ресурсов приложений Мониторы ресурсов Интерфейс менеджера ресурсов 00. физических ресурсов 00. ресурсов приложений Кластерные приложении Часть 6. Распределенные системы ,,уннненне иластерон и БМР Как кластеры, так и симметричная многопроцессорная обработка обеспечи!от конфигурацию с несколькими процессорами для поддержки приложений с .сонями требованиями. Оба решения коммерчески доступны, хотя ЯМР приме- ется несколько дольше. Основное достоинство ЯМР состоит в том, что симметричной многопроцесрностью проще управлять и что ее легче настроить, чем кластер.
ЯМР ближе, и кластер, к обычной однопроцессорной модели, для которой и разработаны актически все приложения. При переходе от однопроцессорной системы к ЯМР ебуется единственное принципиальное изменение — изменение Функции пларования. Другим достоинством ЯМР является то, что такая система занимает ныне места и потребляет меньше электроэнергии, чем сравнимый по мощно- и кластер.
И к тому же этот подход хорошо зарекомендовал себя, тщательно учен и стабилен в работе. О достоинствах кластеров свидетельствует то, что именно эта технология !е длительное время доминирует на рынке высокопроизводительных серверов. !астеры существенно превосходят ЯМР с точки зрения инкрементальной и абттютной масштабируемости, а также доступности, поскольку легко обеспечива.я избыточность всех элементов системы. %"1тк)откв 2000 1Ж2К) С1ттз1ег Яегчег (ранее именовавшийся Ътто1Храс)с) предввляет собой кластер без совместного использования, в котором у каждого скового тома и других ресурсов в каждый момент времени имеется свой единаенный владелец.
Ж2К С1ов1ег Яегчег разработан с использованием следующих концепций. Кластерный сервис. На каждом узле имеется программное обеспечение для решения задач, специфичных для работы в составе кластера. Ресурс. Элемент, управляемый кластерным сервисом. Все ресурсы являются объектами, которые представляют действительные ресурсы системы, включая как физические устройства, такие, как диски и сетевые карты, так и логиче- ские элементы (дисковые тома, адреса ТСР/'1Р, приложения и базы данных). Подключенность.