Электронный коспект лекций (1162752), страница 7
Текст из файла (страница 7)
При этом экспортируютсядиректории со всеми своими поддиректориями, т.е. фактическиподдеревья. Список экспортируемых директорий хранится вспециальном файле, что позволяетавтоматически их экспортировать.призагрузкесервераКлиент получает доступ к экспортированным директориям путемих монтирования. Если клиент не имеет дисков, то можетмонтировать директории в свою корневую директорию.Если несколько клиентов одновременно смонтировали одну и туже директорию, то они могут разделять файлы в общейдиректории без каких либо дополнительных усилий. Простота достоинство NFS.Протоколы NFS.Поскольку одна из целей NFS - поддержка гетерогенных систем,клиенты и серверы могут работать на разных ЭВМ с различнойархитектурой и различными ОС.
Поэтому необходимо иметьстрогие протоколы их взаимодействия. NFS имеет два такихпротокола.Первый протокол поддерживает монтирование. Клиент можетпослать серверу составное имя директории (имя пути) и попроситьразрешения на ее монтирование. Куда будет монтироватьдиректорию клиент для сервера значения не имеет и поэтому несообщается ему. Если путь задан корректно и директорияопределена как экспортируемая, то сервер возвращает клиентудескриптор директории. Дескриптор содержит поля, уникальноидентифицирующие тип ЭВМ, диск, номер i-вершины (понятиеОС UNIX) для данной директории, а также информацию о правахдоступа к ней. Этот дескриптор используется клиентом впоследующих операциях с директорией.Многие клиенты монтируют требуемые удаленные директорииавтоматически при запуске (используя командную процедуруshell-интерпретатора ОС UNIX).Версия ОС UNIX, разработанная Sun (Solaris), имеет свойспециальный режим автоматического монтирования.
С каждойлокальной директорией можно связать множество удаленныхдиректорий. Когда открывается файл, отсутствующий в локальнойдиректории, ОС посылает запросы всем серверам (владеющимуказанными директориями). Кто ответит первым, директория тогоибудетсмонтирована.Такойподход обеспечивает инадежность, и эффективность (кто свободнее, тот раньше иответит). При этом подразумевается, что все альтернативныедиректории идентичны. Поскольку NFS не поддерживаетразмножение файлов или директорий, то такой режимавтоматического монтирования в основном используется длядиректорий с кодами программ или других редко изменяемыхфайлов.Второй протокол - для доступа к директориям и файлам.
Клиентыпосылают сообщения, чтобы манипулировать директориями,читать и писать файлы. Можно получить атрибуты файла.Поддерживается большинство системных вызовов ОС UNIX,исключая OPEN и CLOSE. Для получения дескриптора файла поего символическому имени используется операция LOOKUP,отличающаяся от открытия файла тем, что никаких внутреннихтаблиц не создается. Таким образом, серверы в NFS не имеютсостояния (stateless).
Поэтому для захвата файла используетсяспециальный механизм.NFS использует механизм защиты UNIX. В первых версиях всезапросы содержали идентификатор пользователя и его группы (дляпроверки прав доступа). Несколько лет эксплуатации системыпоказали слабость такого подхода. Теперь используетсякриптографический механизм с открытыми ключами для проверкизаконности каждого запроса и ответа. Данные не шифруются.Все ключи, используемые для контроля доступа, поддерживаютсяспециальным сервисом (и серверами) - сетевым информационнымсервисом (NIS). Храняпары(ключ, значение), сервисобеспечиваетвыдачузначениякодаприправильномподтверждении ключей. Кроме того, он обеспечивает отображениеимен машин на их сетевые адреса, и другие отображения.
NISсерверы используют схему главный -подчиненные для реализацииразмножения («ленивое» размножение).Реализация NFS.(XDR - External Data Represantation)Задача уровня виртуальной файловой системы - поддерживать длякаждого открытого файла строку в таблице (v-вершину),аналогичную i-вершине UNIX. Эта строка позволяет различатьлокальные файлы от удаленных. Для удаленных файлов всянеобходимая информация хранится в специальной r-вершине вNFS-клиенте, на которую ссылается v-вершина.
У сервера нетникаких таблиц.Передачи информации между клиентом и серверомпроизводятся блоками размером 8К (для эффективности).NFSДва кэша - кэш данных и кэш атрибутов файлов (обращения к нимочень часты, разработчики NFS исходили из оценки 90%).Реализована семантика отложенной записи - предмет критики NFS.Имеется также кэш подсказок для ускорения получения v-вершиныпо символическому имени. При использовании устаревшейподсказки NFS-клиент будет обращаться к NFS-серверу икорректировать свой кэш (пользователь об этом ничего не должензнать).Лекция 6Распределенная общая память (DSM - Distributed SharedMemory).Традиционно распределенные вычисления базируются на моделипередачи сообщений, в которой данные передаются от процессорак процессору в виде сообщений. Удаленный вызов процедурфактически является той же самой моделью (или очень близкой).DSM - виртуальное адресное пространство, разделяемое всемиузлами (процессорами) распределенной системы. Программыполучают доступ к данным в DSM примерно так же, как этопроисходит при реализации виртуальной памяти традиционныхЭВМ.
В системах с DSM данные могут перемещаться междулокальными памятями разных компьютеров аналогично тому, какони перемещаются между оперативной и внешней памятью одногокомпьютера.6.1Достоинства DSM.(1) В модели передачи сообщений программист обеспечиваетдоступ к разделяемым данным посредством явных операцийпосылки и приема сообщений. При этом приходится квантоватьалгоритм, обеспечивать своевременную смену информации вбуферах, преобразовывать индексы массивов. Все это сильноусложняет программирование и отладку. DSM скрывает отпрограммиста пересылку данных и обеспечивает ему абстракциюразделяемой памяти, к использованию которой он уже привык намультипроцессорах.Программированиеиотладкасиспользованием DSM гораздо проще.(2) В модели передачи сообщений данные перемещаются междудвумя различными адресными пространствами. Это делает оченьтрудным передачу сложных структур данных между процессами.Например, передача данных по ссылке и передача структурданных, содержащих указатели, вызывает серьезные проблемы.
Всистемах с DSM этих проблем нет, что несомненно упрощаетразработку распределенных приложений.(3) Объем суммарной физической памяти всех узлов может бытьогромным. Эта огромная память становится доступна приложениюбез издержек, связанных в традиционных системах с дисковымиобменами. Это достоинство становится все весомее в связи с тем,что скорости процессоров и коммуникаций растут быстреескоростей памяти и дисков.(4) DSM-системы могут наращиваться практически беспредельно вотличие от систем с разделяемой памятью, т.е. являютсямасштабируемыми.(5) Программы, написанные для мультипроцессоров с общейпамятью, могут в принципе без каких-либо измененийвыполняться на DSM-системах (по крайней мере, они могут бытьлегко перенесены на DSM-системы).По существу, DSM-системы преодолевают архитектурныеограничениямультипроцессоровисокращаютусилия,необходимые для написания программ для распределенныхсистем.
Обычно они реализуются программно-аппаратнымисредствами, но в 90-х годах появилось несколько коммерческихMPP с DSM, реализованной аппаратно (Convex SPP, KSR1, Origin2000). В конце 2004 года второй в списке TOP-500 являласьсистема, состоящая из 20 DSM-кластеров SGI ALTIX 3000,каждый по 512 процессоров.6.2Алгоритмы реализации DSM.При реализации DSM центральными являются следующиевопросы.1) как поддерживать информацию о расположении удаленныхданных.2) как снизить при доступе к удаленным даннымкоммуникационные задержки и большие накладные расходы,связанные с выполнением коммуникационных протоколов.3) как сделать разделяемые данные доступными одновременнона нескольких узлах для того, чтобы повыситьпроизводительность системы.Рассмотрим четыре возможных алгоритма реализации DSM.6.2.1Алгоритм с центральным сервером.Все разделяемые данные поддерживает центральный сервер.
Онвозвращает данные клиентам по их запросам на чтение, позапросам на запись он корректирует данные и посылает клиентам вответ квитанции. Клиенты могут использовать тайм-аут дляпосылки повторных запросов при отсутствии ответа сервера.Дубликаты запросов на запись могут распознаваться путемнумерации запросов. Если несколько повторных обращений ксерверу остались без ответа, приложение получит отрицательныйкод ответа (это обеспечит клиент).Алгоритм прост в реализации, но сервер будет узким местом.Можно разделяемые данные распределить между несколькимисерверами. В этом случае клиент должен уметь определять, ккакому серверу надо обращаться при каждом доступе кразделяемой переменной. Можно, например, распределить междусерверами данные в зависимости от их адресов и использоватьфункцию отображения для определения нужного сервера.Независимо от числа серверов, работа с памятью будет требоватькоммуникаций и катастрофически замедлится.6.2.2 Миграционный алгоритм.В отличие от предыдущего алгоритма, когда запрос к даннымнаправлялся в место их расположения, в этом алгоритме меняетсярасположение данных - они перемещаются в то место, гдепотребовались.
Это позволяет последовательные обращения кданным осуществлять локально. Миграционный алгоритмпозволяет обращаться к одному элементу данных в любой моментвремени только одному узлу.Обычно мигрирует целиком страницы или блоки данных, а незапрашиваемые единицы данных. Это позволяет воспользоватьсяприсущей приложениям локальностью доступа к данным дляснижения стоимости миграции. Однако, такой подход приводит ктрэшингу, когда страницы очень часто мигрируют между узламипри малом количестве обслуживаемых запросов. Причиной этогоможет быть так называемое “ложное разделение”, когда разнымпроцессорам нужны разные данные, но эти данные расположены водном блоке или странице. Некоторые системы позволяют задатьвремя, в течение которого страница насильно удерживается в узледля того, чтобы успеть выполнить несколько обращений к ней доее миграции в другой узел.Миграционный алгоритм позволяет интегрировать DSM свиртуальной памятью, обеспечивающейся операционной системойв отдельных узлах.