Ю. Вахалия - UNIX изнутри (2003) (1114670), страница 101
Текст из файла (страница 101)
Последние серверы работают быстрее, поскольку используют преимущества знаний о состоянии клиента, что экономит значительный объем сетевого трафика. Однако такие серверы обычно используют более сложные механизмы поддержки целостности и восстановления после сбоев. Серверы, не сохранящие информацию о состоянии, более просты в реализации, но не обладают высокой производительностью. + Семантика разделения. В распределенных файловых системах должна быть определена семантика, регламентирующая действия при одновременном доступе к файлу нескольких клиентов.
Семантика УХ1Х требует того, чтобы изменения, сделанные одним клиентом, были видимы 430 Глава 1О. Распределенные файловые системы для остальных при последующем вызове геас! или ип(е. Некоторые файловые системы поддерживают семантику сеансов, где изменения показываются остальным клиентам только после вызовов орел или с!озе, Другие системы предоставляют иные виды гарантий, например некий определенный интервал времени, после которого клиент должен увидеть изменения в файле. + Методы удаленного доступа.
В идеальной клиент-серверной модели для доступа к файлам применяется метод удаленных служб, где каждое действие инициализируется клиентом, а сервер является простым агентом, обслуживающим клиентские запросы. Во многих распределенных файловых системах (в частности, поддерживающих запоминание состояния) сервер играет более заметную роль. Он не только обслуживает клиентские запросы, но и участвует в механизме согласования каша, уведомляя клиентов, если их кэшированные данные стали неверными. Рассмотрим несколько распределенных файловых систем, используемых в ())ч)1Х, и то, как они поддерживают перечисленные средства. 10.3.
Йеймог1с РИе Зудел (ЙГЗ) Корпорация 5цп М(сгозуз(ешз представила 1ч(РБ в 1985 году как средство прозрачного доступа к удаленным файловым системам.' Кроме публикации протоколов компания лицензировала рекомендации, которые были использованы некоторыми производителями для переноса )ч)Р8 на свои операционные системы. После этого файловая система (ь(РЯ стала индустриальным стандартом де-факто.
Она поддерживается всеми вариантами ())ч!1Х, а также некоторыми другими операционными системами, такими как ьгМ8 или МЯ-ОО5.' Архитектура )ч!Р8 основана на модели «клиент-сервер». Файл-сервер представляет собой машину, экспортируюшую набор файлов.' Клиентами являются машины, запрашивающие доступ к этим файлам. Один компьютер может быль ' Имеется в виду ХР5ч2 лля 5цв05 2.0. Сама ХР5 была разработана в 1980 г. В 1985 5ип разрешила 1ЕТР публикацию протокола в качестве открытого стандарта [КРС 109«1. — Прим. ред, з На основе спецификаций и исходного кода 5нп ныне ХР5 выпускается более чем 200 произволителями, Клиентская версия РС-ХР5 5,1 (5оп М!сгозузгешз) работает с ЧМ5, М5-005, 'г)г!пдошз З.х/95/ХТ через ТСР/1Р, поддерживает автоматическое конфигурирование клиентов (РНСР), длинные имена файлов, поступ к Интернету (0Х5, Х15), консоль Те!пег для ЪЪ'!пдошз, включая печать на сетевых принтерах.
Есть версии РС-ХР5 для 0!8!га! А!р!га, М1Р5 и РогиегРС, работающих под управлением %'!пдошз ХТ. — Прим. ред. з Экспортированием называется объявленяе сервером доступности своей файловой системы или ее части для клиентов, фактически это синоним понятия выделения в совместное пользование (зьаг!пх), Клиенты по.чучают доступ к удаленной файловой системе через ее монтирование (шоиптш8), после чего удаленные файлы и каталоги выглядят как часть локальной файловой системы.
— Прим. ред. 1о.э. йеь огк рйе оуэ~егп (йр~) 431 одновременно сервером и клиентом для нескольких файловых систем. При этом код гчЕБ разделен на две отдельные части — клиентскую и серверную, что позволяет использовать только клиентские или только серверные составляющие, Клиенты и серверы взаимодействуют между собой через вызовы удаленных процедур, функционирующих как синхронные запросы. Когда приложение на клиентской машине пытается получить доступ к удаленному файлу, ядро посылает запрос на сервер, а клиент блокируется до получения ответа. Сервер ожидает входящие клиентские запросы и отправляет ответы на пих.
10.3.1. МГЗ с точки зрения пользователя Сервер ЫЕЯ экспортирует одну или несколько файловых систем. Каждая экспортируемая система может являться как целым разделом диска, так и его частью'. Серверу можно указать (обычно через вхождения файла /е1с/ехрогсэ), какие из клиентов обладают доступом к каждой экспортируемой файловой системе, а также какими из привилегий они обладают (етолько чтение» или ечтеиие-запись э). Клиентские машины умеют монтировать такие файловые системы (или отдельные поддеревья каталогов) в любой каталог в существующей файловой иерархии, точно так же, как производится монтирование локальных файловых систем. Клиент может подключать каталог в режиме «только для чтения» даже в том случае, если сервер экспортирует его в режиме чтения-записи. Система НЕЯ поддерживает два типа монтирования: жесткий (Ьаггг) и мягкий (эогс).
Тип влияет на поведение клиента в случае отсутствия ответа на запрос от сервера. Если система смонтирована жестко, клиент будет посьглать повторные запросы до тех пор, пока сервер не ответит. Для систем, смонтированных мягко, клиент через некоторый промежуток времени получает ошибку. После удачного выполнения гпоцпт клиент может получать доступ к удаленным файлам, используя те же операции, что и для локальных файлов.
Некоторые системы поддерживают смешанное (зропяу) монтироваиие, при котором используется жесткий подход при монтировании системы и мягкий для последующих операций ввода-вывода. Монтирование гчГБ не требует такого уровня привилегий, как для локальных файловых систем. Протокол не обязывает, чтобы пользователь, монтирующий систему, являлся привилегированным, однако большинство клиентов навязывают это требование'.
Клиент волен монтировать одну и ту же файло- ' Различные реализации ~ЛЧ! Х обладают собственными правилами степени детализации при экспорте. Некоторые из них поддерживают экспорт только всей файловой системы целиком, в то время как другие позволяют иметь доступ всего к одному поддереву каждой файловой системы. г К примеру, система 1Л.ТК!Х корпорации 0!раса! разрешает любому пользователю монтировать файловую систему ЫБг до тех пор, пока тот будет облапать правами на запись экспортируемой файловой системы целиком, в то время как другие могут монтировать только одно поддерево в каждой файловой системе.
432 Глава 1О. Распределенные файловые системы вую систему в нескольких местах дерева каталогов, даже в подкаталогах еа же самой. Сервер может экспортировать только собственные локальные системы и не имеет права пересекать свои точки монтирования при просмотре каталогов. Следовательно, для того чтобы клиент видел все файлы на сервере, необходимо монтировать все файловые системы, находящиеся на нем, точка монтированин Гмонтироавнив ма г - поддврвво пта Рис. 10.1. Ьаонтироввнив файловых систем ВЕЗ Пример монтирования МГБ показан на рис. 10.1.
Серверная система п155/ч имеет два диска. Первый диск д51с1 монтирован в каталоге /Оаг/1осаь диска дакО и экспортирует два каталога — /Оаг и /Овг/1оса1, Клиент может выполнить следующие варианты операций монтирования: Все приведенные варианты команд являются верными. На клиентской машине поддерево /Оаг отражает поддерево /Овг системы п515гч полностью, так как клиент смонтировал и каталог /Оаг/!оса1. Поддерево /О1 клиента указывает на поддерево /Оаг1/О1 сервера. Пример показывает возможность монтирования подкаталога экспортируемой файловой системы', Поддерево /Оаега клиента указывает только на часть поддерева /Оаг системы лайв, рас- ' Такую функциональность Поддерживают не все реализации.
есцлт -1 Пта Пт55ГУ:/Оаг всцпт -1 пт5 пт55гч;/О5Г/О1 Ясцпт -1 пт5 пт55ГУ:/О5Г всцпт -1 пг5 п155гч:/Оаг/1сса1 /О5Г /О1 /О5ЕГ5 /О5Г/1ссд1 10.3. Йе!утосК Еве Яуэ!епт (МЕЭ) 433 положенной на диске 8йО. Файловая система на диске дй1 невидима в ката- логе /озера/!оса! клиента. 10.3.2. Цели, стоявшие перед разработчиками При создании оригинального варианта ХР8 перед разработчиками стояли следующие задачи; + система 1т!Р5 не должна ограничиться У!к!!Х. Реализация сервера или клиента 1т!РЯ обязана быть доступна любой операционной системе; + обеспечение независимости протокола от конкретно используемого оборудования; + реализация простых механизмов восстановления после отказов сервера или клиента; + приложения должны иметь возможность прозрачного доступа к файлам, не применяя для этого специализированные полные имена, а также не использовать дополнительные библиотеки и повторную компиляцию кодов; + для У!ч1Х-клиентов поддержка семантики, принятой в файловых системах УН1Х; + производительность !ЧГЯ должна быть сравнима со скоростью работы систем, размещенных на локальных дисках; + реализация должна быть независима от средств передачи данных.
10.3.3. Компоненты ЙРЗ Система р!РЯ состоит из нескольких компонентов. Часть из них расположена либо на клиенте, либо только на сервере, в то время как другие имеются и там н там. Некоторые из компонентов не требуются для поддержки стандартных средств и формируют собой часть расширенного интерфейса ХГЯ: + протокол 1уГ5 определяет набор запросов, направляемых клиентами серверу, а также аргументы и возвращаемые величины для каждого из них.