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

Компании NetWise и Sun разработали комплект программных инструментов, который упрощает создание приложений клиент/сервер для RPC и скрывает от разработчика запросы RPC нижнего уровня.

15.13 Введение в NFS

Сетевая файловая система (Network File System — NFS) — это архитектура файлового сервера для различного оборудования, операционных систем, транспортных протоколов или сетевых топологий. Однако первоначально она была разработана для Unix.

Перед использованием NFS хост клиента проводит монтирование (mounting) удаленного поддерева каталогов в свою собственную файловую систему, посылая запрос RPC к программе mount сервера.

Конечный пользователь или приложение могут даже не догадываться о существовании NFS. Когда формируется запрос на выполнение операции с файлами (например, открытие, чтение, запись, копирование, переименование, удаление и т.д.) и нужный файл находится на удаленном сервере, то операционная система переадресует запрос в NFS. Запрос пересылается в сообщении RPC. Входные и выходные параметры кодируются по стандарту XDR.

На рис. 15.8 показаны компоненты для поддержки запроса NFS. Обычно NFS реализуется поверх транспортного протокола UDP, однако современные продукты работают через соединения TCP. UDP прекрасно подходит в том случае, когда клиент и сервер находятся в одной локальной сети. TCP более применим для коммуникаций через региональные сети, в которых требуется вычисление тайм-аута повторной пересылки и согласование нагрузки.

Рис. 15.8. Компоненты поддержки NFS

Обычно NFS реализуется через несколько одновременных процессов на сервере, значит многие клиенты могут работать параллельно.

15.14 Модель файлов NFS

NFS прекрасно согласуется с клиентами и серверами, имеющими файловую структуру, подобную Unix. Операционная система Unix хранит файлы в иерархическом дереве каталогов (хотя существуют успешные реализации NFS с плоской структурой каталогов, например на серверах IBM VM).

Файлы и каталоги Unix идентифицируются путем, состоящим из имен, проходимых при перемещении по дереву каталогов от корня к данному файлу или каталогу. Каждое имя отделяется символом косой черты, например /etc/hosts или /usr/john/abc.

Синтаксис записи путей в других операционных системах может быть не таким, как в Unix. Например, в DOS имя файла записывается как E:WPLETTER.DOC. В NFS предполагается, что каждый файл полностью определяется своим путем.

15.14.1 Источник формирования модели NFS

Отдельные части системы каталогов Unix могут размещаться на различных жестких дисках. Например, файлы и каталоги /etc могут находиться на одном физическом диске, а каталог /var и его подкаталоги — на другом. Команда mount операционной системы Unix служит для соединения отдельных частей каталогов в единое дерево. Типичная команда mount выглядит так:

mount /dev/ху0b /var

В данном случае файлы физического устройства xy0b будут идентифицироваться как файлы каталога /var.

При разработке NFS возможности команды mount были расширены на удаленные поддеревья, которые стали также подключаться к дереву каталогов компьютера. Например, если сетевой администратор хочет использовать место на компьютере bighost для резервного копирования файлов хоста tiger, то он создает на компьютере bighost каталог /users. С системы tiger администратор вводит команду:

mount -t nfs bighost:/users /usr

Каталог сервера /users и все его подкаталоги логически подключаются к дереву каталогов системы tiger в точке /usr. Для конечных пользователей tiger дерево каталогов расширяется (см. рис. 15.9). Однако файлы в /usr/john/abc реально будут находиться в каталоге /users/john/abc сервера bighost.

После монтирования, когда локальный пользователь будет запрашивать файлы из каталога /usr, операционная система будет знать, что эти файлы реально размещаются в каталоге /users компьютера bighost.

Дерево каталогов Unix имеет одну корневую точку. DOS может иметь множество деревьев (не назвать ли их лесом?), начинающихся от устройств A:, B:, С: и т.д. При монтировании удаленного каталога в DOS он становиться новым устройством локальной системы (например, E:).

Рис. 15.9. Монтирование удаленного каталога

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

15.15 Протокол монтирования

Команда mount служит для подключения (монтирования) удаленного каталога к локальной файловой системе. Эта команда реализуется программой RPC с номером 100005, а используемый порт предоставляется программой portmapper. Монтирование работает поверх UDP и TCP.

Перед тем как монтировать каталоги сервера, его нужно сконфигурировать на экспорт этих каталогов (командой export). Обычно это делает администратор, изменяя список экспортируемых файлов системы, включающий имена экспортируемых каталогов, имена систем (для которых разрешен доступ) и права доступа. Например, в Unix конфигурационный файл /etc/exports может содержать:

/Man   -ro

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату