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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Сетевая файловая система 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 иллюстрируется рис.11 и рис.12: на рис.11 изображены три независимых файловых системы, а на рис.12 – результат монтирования в NFS одной из них (директория dir1 смонтировалась как поддиректория удаленной файловой системы /usr/local.

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

 

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

 

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

· Поиск файла в директории

· Чтение набора элементов директории

· Управление ссылками и директориями

· Доступ к атрибутам файлов

· Чтение и запись файлов

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

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

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

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

· UNIX – интерфейс файловой системы (основан на вызовах open, read, write и close calls и на дескрипторах файлов).

· Уровень Virtual File System (VFS) – различает локальные и удаленные файлы, и в дальнейшем локальные файлы обрабатываются в соответствии с типами их файловых систем. VFS активизирует операции, специфичные для конкретной файловой системы, для обработки локальных запросов в соответствии с типами файловых систем. Уровень VFS вызывает процедуры NFS – протокола для удаленных запросов.

· NFS – сервисный уровень – нижний уровень архитектуры; реализует NFS – протокол.

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

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

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

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

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

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

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

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

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

Ключевые термины

File-allocation table (FAT)файловая система со ссылочным размещением файлов, используемая в MS DOS и в Windows.

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

Veritas File System (Vx-FS) – основная файловая система в ОС HP-UX (Hewlett-Packard).

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

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

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

Индексный блок (i-node, superblock) – специальный блок при индексируемом размещении файлов, в котором хранятся указатели на блоки данных файла.

Кэширование диска – использование специальной области основной памяти для копирования часто используемых блоков диска.

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

Освобождение прочитанного (free-behind) - метод оптимизации последовательного доступа к диску, при котором основная память, где хранились копии прочитанных блоков, автоматически освобождается при считывании следующих блоков.

Расширение (extent) -смежный блок на диске для хранения части файла; файл состоит из одного или нескольких расширений.

Cмежное размещение файлов – метод размещения, при котором каждый файл занимает набор смежных блоков на диске.

Ссылочное размещение файлов – метод размещения, при котором каждый файл представляется в виде связанного списка дисковых блоков.

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

Файловая система с журналом транзакций (log structured filesystem) - файловая система, фиксирующая любое изменение как транзакцию; все транзакции записываются в журнал.

Краткие итоги

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

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

Основные методы размещения файлов в файловых системах – смежное, ссылочное и индексируемое размещение.

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

В файловых системах, основанных на расширениях (extents), файл представляется как смежная область памяти и список расширений – смежных областей памяти.

При ссылочном размещении файл представляется в виде списка дисковых блоков. Например, такой метод применен в системе FAT (File Allocation Table), используемой в MS DOS и в Windows. При таком методе отсутствуют потери дискового пространства, но нет возможности произвольного доступа к файлу.

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

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

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

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

Для сохранения и восстановления файлов рекомендуется использовать резервное копирование.

Файловые системы с журналом транзакций обеспечивают повышенную надежность обработки файлов.

Сетевая файловая система NFS реализована на основе механизмов и протоколов RPC (удаленный вызов процедуры) и XDR (внешнее представление данных для передачи через сеть). Система обеспечивает работу пользователя с удаленными файловыми системами с помощью тех же операций, которые используются и для локальных файловых систем. Удаленные файловые системы монтируются на локальные. При этом указывается имя машины с удаленной директорией. В реализации NFS используются процессы- демоны. NFS -сервисы не имеют состояния (stateless). Архитектура NFS трехуровневая – интерфейс системных вызовов для UNIX; уровень виртуальной файловой системы; нижний уровень реализации NFS -сервисов.

Вопросы для самопроверки:

1. Что такое виртуальная файловая система?

2. Какими способами реализуются директории в файловых системах?

3. Какие основные методы используются для размещения файлов?

4. Каковы особенности, достоинства и недостатки смежного размещения файлов?

5. Каковы особенности, достоинства и недостатки ссылочного размещения файлов?

6. Каковы особенности, достоинства и недостатки индексируемого размещения файлов?

7. Что такое расширения (extents) и как они используются для размещения файлов?

8. Как организованы файловые системы по методу File Allocation Table (FAT)?

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

10. Что такое кэширование диска?

11. Что такое унифицированная буферная кэш-память и для чего она используется?

12. Что такое опережающее считывание?

13. Что такое освобождение прочитанного?

14. Какие методы используются для восстановления файлов?

15. Что такое файловая система с журналом транзакций?

16. Что такое NFS?

17. На каких сетевых протоколах и механизмах основана реализация NFS?

18. Каковы возможности системы NFS для пользователя?

19. Каковы особенности монтирования удаленных файловых систем в NFS?

20. Каковы уровни архитектуры NFS?

Упражнения

1. Реализуйте директорию и операции над ней с использованием хеш-функции.

2. Реализуйте смежное размещение файлов и основные операции над файлами при данном размещении.

3. Реализуйте ссылочное размещение файлов и основные операции над файлами при данном размещении.

4. Реализуйте индексируемое размещение файлов и основные операции над файлами при данном размещении.

5. Реализуйте размещение файлов на основе расширений (extents) и основные операции над файлами при данном размещении.

6. Реализуйте представление информации о свободной дисковой памяти в виде битового вектора и основные операции над ним.



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 788; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.61.223 (0.032 с.)