Операционные системы распределенных вычислительных систем


Реализация распределенных файловых систем. - часть 6


Поэтому необходимо иметь строгие протоколы их взаимодействия. NFS имеет два таких протокола.

Первый протокол поддерживает монтирование. Клиент может послать серверу составное имя директории (имя пути) и попросить разрешения на ее монтирование. Куда будет монтировать директорию клиент для сервера значения не имеет и поэтому не сообщается ему. Если путь задан корректно  и директория определена как экпортируемая, то сервер возвращает клиенту дескриптор директории. Дескриптор содержит поля, уникально идентифицирующие тип ЭВМ, диск, номер i-вершины (понятие ОС UNIX) для данной директории, а также информацию о правах доступа к ней. Этот дескриптор используется клиентом в последующих операциях с директорией.

   Многие клиенты  монтируют  требуемые  удаленные  директории автоматически при  запуске  (используя   командную   процедуру shell-интерпретатора ОС UNIX).

Версия ОС UNIX, разработанная  Sun  (Solaris),  имеет  свой специальный режим автоматического монтирования. С каждой локальной директорией можно связать множество удаленных  директорий.  Когда открывается файл, отсутствующий в локальной директории, ОС посылает запросы всем серверам (владеющим указанными директориями). Кто ответит первым, директория  того  и  будет  смонтирована.  Такой  подход обеспечивает и надежность, и эффективность (кто свободнее, тот раньше и ответит). При этом подразумевается, что все альтернативные директории идентичны. Поскольку NFS не поддерживает размножение файлов или директорий, то такой режим автоматического монтирования в основном используется для директорий с кодами программ или других редко изменяемых файлов.

Второй протокол - для доступа к директориям и файлам. Клиенты посылают сообщения, чтобы манипулировать директориями, читать и писать файлы. Можно получить атрибуты файла. Поддерживается большинство системных вызовов ОС UNIX, исключая OPEN и CLOSE. Для получения дескриптора файла по его символическому имени используется операция LOOKUP, отличающаяся от открытия файла тем, что никаких внутренних таблиц не создается.


Начало  Назад  Вперед