Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Сетевая файловая система NFS

Система NFS (Network File System) -одна из наиболее распространенных сетевых файловых систем, разработанная фирмой Sun Microsystems и используемая в системе Solaris.

NFS – это спецификация и реализация программной системы для доступа к удаленным файлам через локальную (или глобальную) сеть.

Данная реализация является частью операционных систем Solaris и SunOS, использующих быстрый, но менее надежный асинхронный сетевой протокол, основанный на датаграммах (UDP/IP), и сеть Ethernet (сетевые протоколы подробно рассматриваются далее в соответствующих лекциях курса).

В реализации NFS используются процессы-демоны nfsd (обработка NFS-запросов клиентов) и mountd (обработка запросов монтирования), а также biod (асинхронный ввод-вывод блоков удаленных файлов на клиенте).

Взаимодействующие рабочие станции рассматриваются в NFS как набор независимых машин с независимыми файловыми системами, что позволяет совместно использовать файловые системы прозрачным образом.

Удаленная директория монтируется на локальную директорию. Смонтированная директория трактуется как полное поддерево локальной файловой системы, заменяя поддерево локальной файловой системы.

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

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

NFS спроектирована для работы в неоднородном окружении различных машин, ОС и сетевых архитектур; спецификация NFS от них не зависит.

Эта независимость достигнута благодаря использованию примитивов RPC (Remote Procedure Call – удаленный вызов процедуры), реализованных поверх External Data Representation (XDR) – протокола – машинно-независимого представления данных для их передачи через сеть.

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

Протокол монтирования в NFS устанавливает первоначальную логическую связь между сервером и клиентом.

Операция монтирования включает имя удаленной директории, подлежащей монтированию, и имя машины-сервера, на которой она хранится.

Запрос на монтирование отображается на соответствующий RPC и передается на mount-сервер, исполняемый на серверной машине.

Список экспорта (export list) указывает список файловых систем, которые сервер экспортирует для монтирования, а также имена машин, на которых разрешено их монтировать.

Исполняя запрос на монтирование, соответствующий этому списку, сервер возвращает обработчик файла (file handle)— ключ к дальнейшему доступу. File handle содержит идентификатор файловой системы и номер inode (индексного узла), идентифицирующий монтируемую директорию внутри экспортируемой файловой системы.

Операция монтирования изменяет только точку зрения клиента и не влияет на серверную часть.

Монтирование в NFS иллюстрируется рис. 20.11 и рис. 20.12: на рис. 20.11 изображены три независимых файловых системы, а на рис. 20.12 – результат монтирования в NFS одной из них (директория dir1 смонтировалась как поддиректория удаленной файловой системы /usr/local.


Рис. 20.11. Три независимых файловых системы.


Рис. 20.12. Монтирование в NFS.

Протокол NFS предоставляет набор RPC для удаленных операций над файлами. Процедуры поддерживают следующие операции:

  • Поиск файла в директории
  • Чтение набора элементов директории
  • Управление ссылками и директориями
  • Доступ к атрибутам файлов
  • Чтение и запись файлов

NFS – серверы не имеют состояния (stateless); каждый запрос должен иметь полный набор аргументов.

Модифицированные данные должны быть направлены на диск сервера до того, как результаты вернутся к клиенту (теряется возможность кэширования).

NFS – протокол не поддерживает механизмы управления параллельным доступом.

Система NFS имеет три основных уровня архитектуры:

  • UNIX – интерфейс файловой системы (основан на вызовах open, read, write и close calls и на дескрипторах файлов).
  • Уровень Virtual File System (VFS) – различает локальные и удаленные файлы, и в дальнейшем локальные файлы обрабатываются в соответствии с типами их файловых систем. VFS активизирует операции, специфичные для конкретной файловой системы, для обработки локальных запросов в соответствии с типами файловых систем. Уровень VFS вызывает процедуры NFS – протокола для удаленных запросов.
  • NFS – сервисный уровень – нижний уровень архитектуры; реализует NFS – протокол.

Схема архитектуры NFS приведена на рис. 20.13.


Рис. 20.13. Схема архитектуры NFS.

Трансляция имен путей в NFS выполняется путем разбивки имени пути на последовательность имен компонент и выполнения отдельного NFS - поиска для каждой пары (компонента, vnode директории).

Для ускорения поиска на клиентской машине организуется кэш имен удаленных директорий.

Удаленные операции NFS обеспечивают почти взаимно-однозначное соответствие между обычными системными вызовами UNIX и удаленными вызовами процедур протокола NFS (за исключением открытия и закрытия файлов).

NFS основана на парадигме удаленных сервисов, но поддерживает буферизацию и кэширование для повышения эффективности.

NFS организует кэш блоков файлов: когда файл открывается, ядро проверяет у удаленного сервера, необходимо ли обновить кэшируемые атрибуты. Кэшируемые блоки используются, только если соответствующие кэшированные атрибуты самые свежие. Кэш атрибутов файлов обновляется по мере передачи обновленных атрибутов с сервера.

Клиенты не освобождают задерживаемые блоки до тех пор, пока сервер не подтвердит, что они записаны на диск.

Выражаясь менее формально, впечатления от многолетней работы автора в локальной сети с использованием NFS достаточно благоприятные. Система обеспечивает монтирование удаленных файловых систем и работу с ними, как если бы они были расположены на локальной машине (только, разумеется, с некоторым замедлением). Она достаточно удобна и надежна. При каких-либо сбоях характерной чертой NFS является то, что она оставляет в локальных директориях временные файлы – копии удаленных файлов – с именами вида.N0035 и т.д. В таком случае рекомендуется удалить эти файлы обычным образом и продолжить работу.

<== предыдущая лекция | следующая лекция ==>
Проблемы восстановления файлов | Ключевые термины
Поделиться с друзьями:


Дата добавления: 2013-12-13; Просмотров: 281; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.