Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гл.11 ОС буклет.doc
Скачиваний:
10
Добавлен:
11.11.2018
Размер:
357.38 Кб
Скачать

11.3. Распределеные файловые системы

Распределенная файловая система (РФС) дает возможность приложениям обращаться к файлам, которые находятся на диске отдаленного компьютера. В целом к таким системам можно отнести любые средства доступа к отдаленным файлам; например, HTTP фактически можно рассматривать как базовый протокол для реализации РФС.

В этом разделе ограничимся рассмотрением РФС, которые владеют свойством прозрачности доступа. Во время работы с такой системой со всеми файлами (локальные они или отдаленные) работают одинаково, особенности реализации отдаленного доступа обрабатывают на уровне файловой системы. Фактически распределена файловая система с прозрачностью доступа скрывает от пользователя наличие сети.

11.3.1. Организация распределенных файловых систем

Этот раздел посвящен описанию общих особенностей организации РФС.

Управление именами в РФС

Есть два основных подхода к реализации управления именами в распределенных файловых системах с прозрачностью доступа. Основные отличия между ними заключаются в виде файловой системы отдаленного компьютера на компьютере-клиенте.

Первый подход основывается на том, что отображение файловой системы для разных клиентов может выглядеть по-разному. Так происходит в случае отдаленного монтирования файловых систем. В этом случае перед использованием отдаленной файловой системы ее нужно смонтировать в подкаталог файловой системы клиента. Разные клиенты могут монтировать ту же систему в разные каталоги. Такой подход реализовать достаточно просто (нет потребности отслеживать, каким образом разные клиенты получают доступ к файлам), но управление системой становится более сложным (в файловой системе клиента оказываются «перемешанными» локальные и отдалены каталоги, к одному и тому же файлу обращаются с использованием разных путей и тому подобное).

В случае реализации второго подхода файловая система определяет единственное пространство имен, которое будет иметь одинаковый вид для всех ее клиентов. Такое единственное отображение дает возможность упростить использование системы. Этот подход сложнее в реализации, но является наиболее удобным для пользователей.

Важным дополнительным свойством, которое может быть реализовано в РФС, является независимость от места расположения (location independence). Если ее поддерживают, путь к файлу остается неизменным в случае его физического перемещения (например, из одного сервера на другой). Это свойство достаточно сложно в реализации и редко поддерживается в современных РФС.

Реализация отдаленного доступа к файлам

Допустим, что клиент обратился к отдаленному файлу, а средства управления именами дали возможность найти его физическое место расположения. После этого необходимо обратиться через сеть к отдаленному файлу, обработать его и вернуть результат клиенту. Рассмотрим подходы к реализации такого отдаленного доступа к файлу.

Самым простым подходом является передача каждого запроса на сервер в виде отдельного отдаленного вызова процедуры. При этом ни одного кэширования данных не делают, каждый запрос требует передачи данных сетью. Это отдаленое обслуживание (remote service). Основными его преимуществами является простота реализации и отсутствие противоречий (все данные немедленно сохраняются на диске сервера), а главным недостатком — низкая производительность, поскольку каждая файловая операция требует пересылки данных сетью и обращение к диску на сервере.

Для повышения производительности используют кэширование данных. В данном случае локальные кэши расположены на клиентах (обычно в их основной памяти), а основной копией данных является копия данных на сервере. При этом главной проблемой, как и для многопроцессорных систем, является необходимость поддержки когерентности локальных кэшей.

Приведем два способа поддержки согласованности данных в локальных кэшах.

Первый сводится к тому, что в случае любого изменения данных в одном из кэшей их немедленно записывают на диск в соответствии с методом отдаленного обслуживания, при этом очищают все другие кэши. Фактически так реализован кэш со сквозной записью. Операции чтения данных продолжают обслуживать из кэша.

Вторым способом является использование сеансовой семантики (session semantics). При этом все изменения, которые вносят в файл после его открытия клиентским процессом (на протяжении сеанса работы клиента с этим файлом), будут доступны только этому процессу. После закрытия файла его измененную копию пересылают на сервер, и она становится доступной другим клиентским процессам.