Nfs протокол что это такое?

Network File System

Network File System (NFS) — протокол сетевого доступа к файловым системам, первоначально разработан Sun Microsystems в 1984 году. Основан на протоколе вызова удалённых процедур (ONC RPC, Open Network Computing Remote Procedure Call, RFC 1057, RFC 1831). Позволяет подключать (монтировать) удалённые файловые системы через сеть, описан в RFC 1094, RFC 1813, RFC 3530 и RFC 5661.

NFS абстрагирована от типов файловых систем как сервера, так и клиента, существует множество реализаций NFS-серверов и клиентов для различных операционных систем и аппаратных архитектур. В настоящее время используется наиболее зрелая версия NFS v.4 (RFC 3010,RFC 3530), поддерживающая различные средства аутентификации (в частности, Kerberos и LIPKEY с использованием протокола RPCSEC GSS) и списков контроля доступа (как POSIX, так и Windows-типов).

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

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

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

Содержание

Цели разработки

Первоначальная разработка NFS имела следующие цели:

  • NFS не должна ограничиваться операционной системой UNIX. Любая операционная система должна быть способной реализовать сервер и клиент NFS.
  • Протокол не должен зависеть от каких-либо определённых аппаратных средств.
  • Должны быть реализованы простые механизмы восстановления в случае отказов сервера или клиента.
  • Приложения должны иметь прозрачный доступ к удаленным файлам без использования специальных путевых имен или библиотек и без перекомпиляции.
  • Для UNIX-клиентов должна поддерживаться семантика UNIX.
  • Производительность NFS должна быть сравнима с производительностью локальных дисков.
  • Реализация не должна быть зависимой от транспортных средств.

Компоненты NFS

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

  • Протокол NFS определяет набор запросов (операций), которые могут быть направлены клиентом к серверу, а также набор аргументов и возвращаемые значения для каждого из этих запросов. Версия 1 этого протокола существовала только в недрах Sun Microsystems и никогда не была выпущена. Все реализации NFS (в том числе NFSv3) поддерживают версию 2 NFS (NFSv2), которая впервые была выпущена в 1985 году в SunOS 2.0. Версия 3 протокола была опубликована в 1993 году и реализована некоторыми фирмами-поставщиками.
  • Протокол удаленного вызова процедур (RPC) определяет формат всех взаимодействий между клиентом и сервером. Каждый запрос NFS посылается как пакет RPC.
  • Внешнее представление данных (XDR — External Data Representation) обеспечивает машинно-независимый метод кодирования данных для пересылки через сеть. Все запросы RPC используют кодирование XDR для передачи данных. Следует отметить, что XDR и RPC используются для реализации многих других сервисов, помимо NFS.
  • Программный код сервера NFS отвечает за обработку всех запросов клиента и обеспечивает доступ к экспортируемым файловым системам.
  • Программный код клиента NFS реализует все обращения клиентской системы к удаленным файлам путем посылки серверу одного или нескольких запросов RPC.
  • Протокол монтирования определяет семантику монтирования и размонтирования файловых систем NFS. NFS использует несколько фоновых процессов-демонов. На сервере набор демонов nfsd ожидают запросы клиентов NFS и отвечают на них.
  • Демон mountd обрабатывает запросы монтирования. На клиенте набор демонов biod обрабатывает асинхронный ввод/вывод блоков файлов NFS.
  • Менеджер блокировок сети (NLM — Network Lock Manager) и монитор состояния сети (NSM — Network Status Monitor) вместе обеспечивают средства для блокировки файлов в сети. Эти средства, хотя формально не связаны с NFS, можно найти в большинстве реализаций NFS. Они обеспечивают сервисы не возможные в базовом протоколе. NLM и NSM реализуют функционирование сервера с помощью демонов lockd и statd соответственно.

Версии

Версия 1

Детали реализации определены в RFC 1094. Версия 1 была только для внутреннего пользования в экспериментальных целях. Когда команда разработчиков добавила существенные изменения в NFS версии 1, была выпущена версия 2, которая уже использовалась за пределами компании.

Версия 2

Версия 2 протокола NFS (RFC 1094, март 1989 года) первоначально полностью работала по протоколу UDP. Разработчики решили не хранить данных о внутреннем состоянии внутри протокола, как пример, блокировка, реализованная вне базового протокола. Люди, вовлечённые в создание NFS версии 2 — Расти Сендберг (Rusty Sandberg,) Боб Лайон (Bob Lyon), Билл Джой (Bill Joy) и Стив Клейман (Steve Kleiman).

Версии 3

NFSv3 (RFC 1813, июнь 1995 года). Добавлено:

  • Описатели файлов в версии 2 — это массив фиксированного размера — 32 байта. В версии 3 — это массив переменного размера с размером до 64 байт. Массив переменной длины в XDR определяется 4-байтным счётчиком, за которым следуют реальные байты. Это уменьшает размер описателя файла в таких реализациях, как, например, UNIX, где требуется всего около 12 байт, однако позволяет не-Unix реализациям обмениваться дополнительной информацией.
  • Версия 2 ограничивает количество байт на процедуры READ или WRITE RPC размером 8192 байта. Это ограничение не действует в версии 3, что, в свою очередь, означает, что с использованием UDP ограничение будет только в размере IP датаграммы (65535 байт). Это позволяет использовать большие пакеты при чтении и записи в быстрых сетях.
  • Размеры файлов и начальное смещение в байтах для процедур READ и WRITE стали использовать 64-битную адресацию вместо 32-битной, что позволяет работать с файлами большего размера.
  • Атрибуты файла возвращаются в каждом вызове, который может повлиять на атрибуты. Это уменьшает количество вызовов GETATTR, требуемых клиентом.
  • Записи (WRITE) могут быть асинхронными, тогда как в версии 2 они должны были быть синхронными. Это может улучшить производительность процедуры WRITE.
  • Одна процедура была удалена (STATFS) и семь были добавлены: ACCESS (проверка прав доступа к файлу), MKNOD (создание специального файла Unix), READDIRPLUS (возвращает имена файлов в директории вместе с их атрибутами), FSINFO (возвращает статистическую информацию о файловой системе), FSSTAT (возвращает динамическую информацию о файловой системе), PATHCONF (возвращает POSIX.1 информацию о файле) и COMMIT (передает ранее сделанные асинхронные записи на постоянное хранение).

На момент введения версии 3, использование разработчиками TCP как транспортного протокола начало расти. Хотя некоторые разработчики уже добавили поддержку протокола TCP для NFS версии 2 в качестве транспортного, Sun Microsystems добавили поддержку TCP в NFS версии 3. Использование TCP сделало использование NFS через глобальную сеть более осуществимым.

Версия 4

NFSv4 (RFC 3010, декабрь 2000 г., RFC 3530, пересмотренная в апреле 2003), под влиянием AFS и CIFS, включила в себя улучшение производительности, высокую безопасность, и предстала полноценным протоколом. Версия 4 стала первой версией, разработанной совместно с Internet Engineering Task Force (IETF), после того, как Sun Microsystems передала развитие протоколов NFS. NFS версии v4.1 была одобрена IESG в январе 2010 года, и получила номер RFC 5661 (новая спецификация, объёмом 612 страниц, стала известна как самый длинный документ, одобренный IETF). Важным нововведением версии 4.1 является спецификация pNFS — Parallel NFS, механизма параллельного доступа NFS-клиента к данным множества распределенных NFS-серверов. Наличие такого механизма в стандарте сетевой файловой системы поможет строить распределённые «облачные» («cloud») хранилища и информационные системы.

Другие модули

WebNFS — это расширение для NFS версий 2 и 3, которое позволяют легче интегрироваться в веб-браузеры и дает возможность работы через брандмауэр. Различные сторонние протоколы стали ассоциироваться с NFS, в том числе:

Менеджер блокировок сети (NLM — Network Lock Manager) и монитор состояния сети (NSM — Network Status Monitor) вместе обеспечивают средства для блокировки файлов в сети. Эти средства, хотя формально не связаны с NFS, можно найти в большинстве реализаций NFS. Они обеспечивают сервисы, не возможные в базовом протоколе. NLM и NSM реализуют функционирование сервера с помощью демонов lockd и statd, соответственно.

Протокол удалённой информации о квотах (RQUOTAD) (NFS позволяет пользователям просматривать дисковую квоту на удаленном NFS сервере).

Платформы

Хотя NFS чаще всего используют в UNIX-подобных системах, данный протокол можно также использовать и на других операционных системах, таких, как Mac OS Classic, OpenVMS, Microsoft Windows, Novell NetWare, и IBM AS/400. В число альтернативных протоколов удаленного доступа к файлам входят Server Message Block (SMB, также известный как CIFS) протокол, Apple Filing Protocol (AFP), NetWare Core Protocol (NCP). Под операционной системой Microsoft Windows SMB и NetWare Core Protocol (NCP) используется чаще, чем NFS; В системах Macintosh AFP встречается чаще, чем NFS.

Обзор NFS

Область применения: Windows Server 2016, Windows Server 2012 R2, Windows Server 2012

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

Описание компонента

С помощью протокола NFS можно передавать файлы между компьютерами под управлением Windows и другими операционными системами, отличными от Windows, например Linux или UNIX.

NFS в Windows Server включает Server для NFS и Client для NFS. Компьютер под управлением Windows Server может использовать сервер для NFS в качестве файлового сервера NFS для других клиентских компьютеров, отличных от Windows. Клиент для NFS позволяет компьютеру под управлением Windows под управлением Windows Server получить доступ к файлам, хранящимся на NFS-сервере, отличном от Windows.

Версии Windows и Windows Server

Windows поддерживает несколько версий клиента NFS и сервера в зависимости от версии операционной системы и семейства.

Читайте также  Термопаста для процессора какая лучше?
Операционные системы Версии NFS Server Версии клиента NFS
Windows 7, Windows 8.1, Windows 10 Недоступно NFSv2, NFSv3
Windows Server 2008, Windows Server 2008 R2 NFSv2, NFSv3 NFSv2, NFSv3
Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019 NFSv2, NFSv3, Нфсв 4.1 NFSv2, NFSv3

Практическое применение

Ниже приведены некоторые способы использования NFS.

  • Используйте файловый сервер Windows NFS для предоставления многопротокольного доступа к одному и тому же файловому ресурсу по протоколам SMB и NFS с многоплатформенных клиентов.
  • Разверните файловый сервер Windows NFS в среде операционной системы, отличной от Windows, чтобы предоставить клиентским компьютерам, не являющимся клиентскими Windows, доступ к файловым ресурсам NFS.
  • Перенос приложений из одной операционной системы в другую путем хранения данных в общих файловых ресурсах, доступных через протоколы SMB и NFS.

Новые и измененные функции

Новые и измененные функциональные возможности в сетевой файловой системе включают поддержку NFS версии 4,1 и Улучшенное развертывание и управляемость. Дополнительные сведения о новых или измененных функциях в Windows Server 2012 см. в следующей таблице:

Компонент или функция Новинка или обновление Описание:
NFS версии 4,1 Оператор new Повышенная безопасность, производительность и совместимость по сравнению с NFS версии 3.
Инфраструктура NFS Обновленные возможности Улучшает развертывание и управляемость и повышает безопасность.
Постоянная доступность NFS версии 3 Обновленные возможности Повышает постоянную доступность на клиентах NFS версии 3.
Улучшения развертывания и управляемости Обновленные возможности Позволяет легко развертывать NFS и управлять ими с помощью новых командлетов Windows PowerShell и нового поставщика WMI.

NFS версии 4,1

NFS версии 4,1 реализует все необходимые аспекты в дополнение к некоторым дополнительным аспектам RFC 5661:

  • Файловая система, которая разделяет физическое и логическое пространство имен и СОВМЕСТИМА с NFS версии 3 и NFS версии 2. Для экспортированной файловой системы, которая является частью псевдо-файловой системы, предоставляется псевдоним.
  • Составные удаленные вызовы процедур объединяют соответствующие операции и сокращают число бесед.
  • Сеансы и многосеансовая коммутация сеансов обеспечивают только одну семантику и обеспечивают постоянную доступность и лучшую производительность при использовании нескольких сетей между клиентами NFS 4,1 и сервером NFS.

Инфраструктура NFS

Улучшения общей инфраструктуры NFS в Windows Server 2012 описаны ниже.

  • Инфраструктура транспорта /External (RPC) , используемая сетевым протоколом Winsock, доступна как для сервера NFS, так и для клиента для NFS. Это заменяет интерфейс TDI, обеспечивает лучшую поддержку и обеспечивает лучшую масштабируемость и масштабирование на стороне приема (RSS).
  • Функция мультиплексора RPC-портов является удобной для брандмауэра (меньше портов для управления) и УПРОЩАЕТ развертывание NFS.
  • Автоматически настроенные кэши и пулы потоков являются возможностями управления ресурсами в новой инфраструктуре RPC/XDR, которая является динамической, автоматически настраивает кэши и пулы потоков на основе рабочей нагрузки. Это полностью удаляет предоставляя, который участвует во время настройки параметров, обеспечивая оптимальную производительность сразу после развертывания NFS.
  • Новые варианты реализации и проверки подлинности Kerberos с добавлением поддержки Kerberos (Krb5p) и существующих параметров проверки подлинности krb5 и krb5i.
  • Сопоставление удостоверений командлеты модуля Windows PowerShell упрощают управление сопоставлением удостоверений, настройку службы Active Directory облегченного доступа к каталогам (AD LDS) и настройку passwd и неструктурированных файлов UNIX и Linux.
  • Точка подключения тома позволяет получить доступ к томам, подключенным к общему ресурсу NFS, с помощью nfs версии 4,1.
  • Функция мультиплексирования портов поддерживает МУЛЬТИПЛЕКСОР порта RPC (порт 2049), который является удобным для брандмауэра и УПРОЩАЕТ развертывание NFS.

Постоянная доступность NFS версии 3

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

  • Инфраструктура кластеризации теперь позволяет по одному ресурсу на сетевое имя, а не по одному ресурсу на общий ресурс, что значительно повышает время отработки отказа ресурсов.
  • Пути отработки отказа на сервере NFS настраиваются для повышения производительности.
  • Регистрация с подстановочными знаками на NFS-сервере больше не требуется, а отработка отказа выполняется более тонко.
  • Уведомления сетевых монитор состояния (NSM) отправляются после отработки отказа, и клиентам больше не нужно ждать, пока истечет время ожидания TCP для повторного подключения к серверу, на который выполнен переход.

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

Улучшения развертывания и управляемости

Развертывание и управление NFS улучшены следующими способами.

  • Более 40 новых командлетов Windows PowerShell упрощают настройку файловых ресурсов NFS и управление ими. Дополнительные сведения см. в разделе командлеты NFS в Windows PowerShell.
  • Сопоставление удостоверений улучшено с помощью локального хранилища сопоставления неструктурированных файлов и новых командлетов Windows PowerShell для настройки сопоставления удостоверений.
  • Диспетчер сервера графический пользовательский интерфейс проще в использовании.
  • Новый поставщик WMI версии 2 доступен для упрощения управления.
  • Мультиплексор портов RPC (порт 2049) является удобным для брандмауэра и упрощает развертывание NFS.

Сведения о диспетчере сервера

В диспетчер сервера или более новом центре администрирования Windows — используйте мастер добавления ролей и компонентов, чтобы добавить службу роли сервера для NFS (в файле и роли служб iSCSI). Общую информацию об установке компонентов см. в разделе Установка и удаление ролей, служб ролей или компонентов. Средства сервера для NFS включают оснастку «службы для сетевой файловой системы» MMC для управления сервером для NFS и клиентом для компонентов NFS. С помощью оснастки можно управлять компонентами сервера для NFS, установленными на компьютере. Сервер для NFS также содержит несколько средств администрирования командной строки Windows:

  • Подключение подключает удаленный общий ресурс NFS (также известный как экспорт) локально и сопоставляет его с буквой локального диска на клиентском компьютере Windows.
  • Nfsadmin управляет параметрами конфигурации сервера для NFS и клиента для компонентов NFS.
  • Нфсшаре настраивает параметры общего ресурса NFS для общих папок с помощью сервера для NFS.
  • Нфсстат отображает или сбрасывает статистику вызовов, полученных сервером для NFS.
  • Шовмаунт Отображает подключенные файловые системы, экспортированные сервером для NFS.
  • Umount удаляет диски, подключенные к NFS.

В NFS в Windows Server 2012 появился модуль NFS для Windows PowerShell с несколькими новыми командлетами специально для NFS. Эти командлеты предоставляют простой способ автоматизации задач управления NFS. Дополнительные сведения см. в разделе командлеты NFS в Windows PowerShell.

Дополнительные сведения

В следующей таблице приведены дополнительные ресурсы для оценки NFS.

Сетевая файловая система — Network File System

Сетевая файловая система (NFS ) — это протокол распределенной файловой системы , первоначально разработанный Sun Microsystems (Sun) в 1984 году, позволяющий пользователю на клиентском компьютере для доступа к файлам через компьютерную сеть аналогично доступу к локальному хранилищу. NFS, как и многие другие протоколы, основан на системе удаленного вызова процедур открытых сетевых вычислений (ONC RPC). NFS — это открытый стандарт, определенный в запросе комментариев (RFC), позволяющий любому реализовать протокол.

Содержание

  • 1 Версии и варианты
    • 1.1 NFSv2
    • 1.2 NFSv3
    • 1.3 NFSv4
    • 1.4 Другие расширения
  • 2 Платформы
    • 2.1 Типовая реализация
  • 3 Разработка протокола
    • 3.1 1990-е годы
    • 3.2 2000-е годы
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки

Версии и вариации

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

NFSv2

Версия 2 протокола (определенная в RFC 1094 , март 1989 г.) первоначально работала только по протоколу дейтаграмм пользователя (UDP). Его разработчики хотели сохранить серверную часть без состояния , при этом блокировка (например) реализована вне основного протокола. Люди, участвовавшие в создании NFS версии 2, включают, Билл Джой и другие.

Интерфейс Virtual File System допускает модульную реализацию, отраженную в простом протоколе . К февралю 1986 года были продемонстрированы реализации для таких операционных систем, как System V выпуска 2, DOS и VAX / VMS с использованием Eunice . NFSv2 позволяет читать только первые 2 ГБ файла из-за ограничений 32-бит .

NFSv3

Версия 3 (RFC 1813 , июнь 1995) добавлено:

  • поддержка 64-битных размеров файлов и смещений для обработки файлов размером более 2 гигабайт. (ГБ);
  • поддержка асинхронной записи на сервере для повышения производительности записи;
  • дополнительные атрибуты файлов во многих ответах, чтобы избежать их повторной выборки;
  • операция READDIRPLUS, чтобы получить дескрипторы и атрибуты файлов вместе с именами файлов при сканировании каталога;
  • внесены другие улучшения.

Первое предложение NFS версии 3 в Sun Microsystems было создано вскоре после выпуска NFS версии 2. Основным мотивом была попытка смягчить проблему производительности синхронной операции записи в NFS версии 2. К июлю 1992 года практика реализации устранила многие недостатки NFS версии 2, оставив только отсутствие поддержки больших файлов (64 -битные размеры файлов и смещения) актуальная проблема. Это стало острой проблемой для Digital Equipment Corporation с появлением 64-битной версии Ultrix для поддержки недавно выпущенного 64-битного процессора RISC , Alpha 21064 . Во время выпуска версии 3, поддержка поставщиками TCP как протокола транспортного уровня начала увеличиваться. Хотя несколько поставщиков уже добавили поддержку NFS версии 2 с TCP в качестве транспорта, Sun Microsystems добавила поддержку TCP в качестве транспорта для NFS, в то же время добавила поддержку версии 3. Использование TCP в качестве транспорта, созданного с использованием NFS через WAN более осуществим и позволял использовать более крупные объемы передачи для чтения и записи, превышающие ограничение в 8 КБ, установленное Протоколом дейтаграмм пользователя .

NFSv4

Версия 4 (RFC 3010 , декабрь 2000 г .; пересмотрено в RFC 3530 , апрель 2003 г. и снова в RFC 7530 , март 2015 г.) под влиянием файловой системы Andrew (AFS ) и Блок сообщений сервера (SMB, также называемый CIFS), включает улучшения производительности, требует строгой безопасности и вводит протокол с отслеживанием состояния . Версия 4 стала первой версией, разработанной Internet Engineering Task Force (IETF) после того, как Sun Microsystems передала разработку протоколов NFS.

NFS версии 4.1 (RFC 5661 , январь 2010 г .; пересмотренный в RFC 8881 , август 2020 г.) нацелен на обеспечение поддержки протокола для использования преимуществ развертывания кластерных серверов, включая возможность обеспечения масштабируемого параллельного доступа к файлам, распределенным между несколькими серверами (расширение pNFS). Версия 4.1 включает механизм транкинга сеансов (также известный как NFS Multipathing) и доступный в некоторых корпоративных решениях как VMware ESXi .

NFS версии 4.2 (RFC 7862 ) был опубликован в ноябре 2016 года с новыми функциями, включая : клонирование и копирование на стороне сервера, рекомендации по вводу-выводу приложения, разреженные файлы, резервирование места, блок данных приложения (ADB), NFS с меткой sec_label, которая соответствует любой системе безопасности MAC, и две новые операции для pNFS (LAYOUTERROR и LAYOUTSTATS).

Одним из больших преимуществ NFSv4 перед его предшественниками является то, что для запуска службы используется только один порт UDP или TCP, 2049, что упрощает использование протокола через брандмауэры.

Другие расширения

WebNFS , расширение для версий 2 и 3, позволяет NFS более легко интегрироваться в веб-браузеры и обеспечивать работу через брандмауэры. В 2007 году Sun Microsystems открыла исходный код своей реализации WebNFS на стороне клиента.

Различные протоколы побочного канала стали ассоциироваться с NFS. Примечание:

  • протокол рекомендаций по диапазону байтов (NLM) (добавлен для поддержки UNIX System Vблокировки файлов API-интерфейсов)
  • удаленных отчетов о квотах (RQUOTAD ) протокол, который позволяет пользователям NFS просматривать свои квоты хранения данных на серверах NFS
  • , адаптация NFS, которая использует удаленный прямой доступ к памяти (RDMA) в качестве транспорта
  • NFS-Ganesha, сервер NFS, работающий в пользовательском пространстве и поддерживающий различные файловые системы, такие как GPFS / Spectrum Scale, CephFS через соответствующие модули FSAL (уровень абстракции файловой системы). CephFS FSAL, поддерживаемая с использованием libcephfs
  • Trusted NFS (TNFS)

Platforms

NFS часто используется с операционными системами Unix (такими как Solaris , AIX , HP-UX ), операционные системы Apple macOS и Unix-подобные (например, Linux и FreeBSD ). Он также доступен для таких операционных систем, как Acorn RISC OS , AmigaOS , классическая Mac OS , OpenVMS , MS. -DOS , Microsoft Windows , OS / 2 , ArcaOS , Novell NetWare и IBM AS / 400 . Альтернативные протоколы удаленного доступа к файлам включают Server Message Block (SMB, также называемый CIFS), Apple Filing Protocol (AFP), NetWare Core Protocol (NCP), и файловая система файлового сервера OS / 400 (QFileSvr.400).

SMB и NetWare Core Protocol (NCP) встречаются чаще, чем NFS в системах под управлением Microsoft Windows; AFP встречается чаще, чем NFS в системах Apple Macintosh ; а QFileSvr.400 чаще встречается в системах AS / 400 . Haiku в 2012 году добавила поддержку NFSv4 в рамках проекта Google Summer of Code.

Типичная реализация

Предполагая сценарий в стиле Unix, в котором одной машине (клиент ) требуется доступ к данным, хранящимся на другая машина (сервер NFS ):

  1. Сервер реализует процессы NFS daemon , работающие по умолчанию как nfsd , чтобы сделать свои данные общедоступными для клиентов .
  2. Администратор сервера определяет, что сделать доступным, экспортируя имена и параметры каталогов , обычно используя файл конфигурации / etc / exports и Команда exportfs .
  3. Администрация сервера security гарантирует, что он может распознавать и утверждать проверенных клиентов.
  4. Конфигурация сети сервера гарантирует, что соответствующие клиенты могут вести переговоры с это через любую firewallсистему .
  5. Клиентский компьютер запрашивает доступ к экспортированным данным, обычно с помощью команды mount . (Клиент спрашивает сервер (rpcbind), какой порт использует сервер NFS, клиент подключается к серверу NFS (nfsd), nfsd передает запрос на mountd)
  6. Если все идет хорошо, пользователи на клиенте машина может затем просматривать и взаимодействовать с смонтированными файловыми системами на сервере в рамках разрешенных параметров.

Обратите внимание, что автоматизация процесса монтирования NFS может иметь место — возможно, с использованием / etc / fstab и / или автомонтаж объектов.

Разработка протокола

Во время разработки протокола ONC (называвшегося SunRPC в то время) только Apollo Network Computing System (NCS) предлагала сопоставимая функциональность. Две конкурирующие группы возникли из-за фундаментальных различий в двух системах удаленного вызова процедур. Аргументы были сосредоточены на методе кодирования данных — ONC Внешнее представление данных (XDR) всегда отображало целые числа в порядке big-endian , даже если оба одноранговых узла соединения имели мало -endian машинные архитектуры, тогда как метод NCS пытался избежать байтовой перестановки, когда два одноранговых узла разделяли общую endianness в своих машинных архитектурах. Отраслевая группа, названная созданной (март 1987 г.), предприняла (в конечном счете неудачную) попытку примирить две среды сетевых вычислений.

1990-е годы

Sun Microsystems и Internet Society (ISOC), которые достигли соглашения о передаче «контроля за изменениями» «ONC RPC, чтобы организация ISOC по техническим стандартам, Internet Engineering Task Force (IETF), могла публиковать документы стандартов (RFC), относящиеся к протоколам ONC RPC, и могла расширять ONC RPC. OSF попыталась сделать DCE RPC стандартом IETF, но в конечном итоге оказалась не желающей отказываться от контроля изменений. Позже IETF решила расширить ONC RPC, добавив новый вариант аутентификации на основе Generic Security Services Application Program Interface (GSSAPI), чтобы удовлетворить требованиям IETF, что стандарты протокола имеют адекватную безопасность.

Позже Sun и ISOC достигли аналогичного соглашения о предоставлении ISOC контроля над изменением NFS, хотя при написании контракта тщательно исключали NFS версии 2 и версии 3. Вместо этого ISOC получила право добавлять новые версии в NFS. протокол, в результате чего IETF определил NFS версии 4 в 2003 году.

2000-е годы

К 21 веку ни DFS, ни AFS не достигли какого-либо крупного коммерческого успеха по сравнению с SMB-CIFS или NFS. IBM, которая ранее приобрела основного коммерческого поставщика DFS и AFS, Transarc , пожертвовала большую часть исходного кода AFS сообществу свободного программного обеспечения в 2000 году. OpenAFS проект живет. В начале 2005 года IBM объявила о прекращении продаж AFS и DFS.

В январе 2010 года Panasas предложила NFSv4.1 на основе своей технологии Parallel NFS (pNFS) с целью улучшения возможностей параллелизма доступа к данным. Протокол NFSv4.1 определяет метод отделения метаданных файловой системы от местоположения данных файла; он выходит за рамки простого разделения имен и данных, распределяя данные между набором серверов данных. Это отличается от традиционного сервера NFS, который хранит имена файлов и их данные под единым зонтиком сервера. Некоторые продукты представляют собой многоузловые NFS-серверы, но участие клиента в разделении метаданных и данных ограничено.

Сервер NFSv4.1 pNFS — это набор серверных ресурсов или компонентов; предполагается, что они контролируются сервером метаданных.

Клиент pNFS по-прежнему обращается к одному серверу метаданных для обхода или взаимодействия с пространством имен; когда клиент перемещает данные на сервер и с сервера, он может напрямую взаимодействовать с набором серверов данных, принадлежащих коллекции серверов pNFS. Клиент NFSv4.1 может быть включен для непосредственного участия в точном расположении файловых данных и во избежание одиночного взаимодействия с одним сервером NFS при перемещении данных.

В дополнение к pNFS, NFSv4.1 предоставляет:

  • Сеансы
  • Делегирование каталогов и уведомления
  • Многосерверное пространство имен
  • списки управления доступом и дискреционное управление доступом
  • Атрибуты хранения
  • SECINFO_NO_NAME

Что такое NFS? Network File System. Протокол сетевого доступа к файловым системам

Это протокол распределенной файловой системы, первоначально разработанный компанией Sun Microsystems в 1984 году, позволяющий пользователю на клиентском компьютере получать доступ к файлам через сеть, подобно доступу к локальному хранилищу. NFS, как и многие другие протоколы, основывается на системе Open Network Computing Remote Procedure Call (ONC RPC).

Другими словами, что такое NFS? Это открытый стандарт, определенный в Request for Comments (RFC), позволяющий любому реализовать протокол.

Версии и вариации

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

NFS v2

Версия 2 первоначально работала только по протоколу User Datagram Protocol (UDP). Ее разработчики хотели сохранить серверную сторону без блокировки, реализованной за пределами основного протокола.

Интерфейс виртуальной файловой системы позволяет выполнять модульную реализацию, отраженную в простом протоколе. К февралю 1986 года были продемонстрированы решения для таких операционных систем, как System V release 2, DOS и VAX/VMS с использованием Eunice. NFS v2 позволял считывать только первые 2 ГБ файла из-за 32-разрядных ограничений.

NFS v3

Первое предложение по разработке NFS версии 3 в Sun Microsystems было озвучено вскоре после выпуска второго дистрибутива. Главной мотивацией была попытка смягчить проблему производительности синхронной записи. К июлю 1992 года практические доработки позволили решить многие недостатки NFS версии 2, оставив при этом лишь недостаточную поддержку файлов (64-разрядные размеры и смещения файлов).

Версия 3 добавила в себя следующее:

[tchecklist]

  • поддержку 64-битных размеров и смещений файлов для обработки данных размером более 2 гигабайт (ГБ);
  • поддержку асинхронной записи на сервере для повышения производительности;
  • дополнительные атрибуты файлов во многих ответах, позволяющие избежать необходимости их повторного извлечения;
  • операцию READDIRPLUS для получения данных и атрибутов вместе с именами файлов при сканировании каталога;
  • многие другие улучшения.

[/tchecklist]

Во время введения версии 3 поддержка TCP как протокола транспортного уровня начала увеличиваться. Использование TCP в качестве средства передачи данных, выполненного с использованием NFS через WAN, стало позволять передавать большие размеры файлов для просмотра и записи. Благодаря этому разработчики смогли преодолеть пределы ограничений в 8 КБ, налагаемые протоколом пользовательских дейтаграмм (UDP).

Что такое NFS v4?

Версия 4, разработанная под влиянием Эндрской файловой системы (AFS) и блока сообщений сервера (SMB, также называемая CIFS), включает в себя повышение производительности, обеспечивает лучшую безопасность и вводит протокол с соблюдением установленных условий.

Версия 4 стала первым дистрибутивом, разработанным в Целевой группе Internet Engineering Task Force (IETF) после того, как Sun Microsystems передала разработку протоколов сторонним специалистам.

NFS версия 4.1 направлена ​​на предоставление поддержки протокола для использования кластерных развертываний серверов, включая возможность предоставления масштабируемого параллельного доступа к файлам, распределенным между несколькими серверами (расширение pNFS).

Новейший протокол файловой системы — NFS 4.2 (RFC 7862) – был официально выпущен в ноябре 2016 года.

Другие расширения

С развитием стандарта появились и соответствующие инструменты для работы с ним. Так, WebNFS, расширение для версий 2 и 3, позволяет протоколу сетевого доступа к файловым системам легче интегрироваться в веб-браузеры и активировать работу через брандмауэры.

Различные протоколы сторонних групп стали также ассоциироваться с NFS. Из них наиболее известными выступают:

[tchecklist]

  • Network Lock Manager (NLM) с поддержкой протокола байтов (добавлен для поддержки API-блокировки файлов UNIX System V);
  • удаленной квоты (RQUOTAD), который позволяет пользователям NFS просматривать квоты на хранение данных на серверах NFS;
  • NFS через RDMA — адаптация NFS, которая использует дистанционный прямой доступ к памяти (RDMA) в качестве средства передачи;
  • NFS-Ganesha — сервер NFS, работающий в пользовательском пространстве и поддерживающий CephFS FSAL (уровень абстракции файловой системы) с использованием libcephfs.

[/tchecklist]

Платформы

Network File System часто используется с операционными системами Unix (такими как Solaris, AIX, HP-UX), MacOS от Apple и Unix-подобными ОС (такими как Linux и FreeBSD).

Он также доступен для таких платформ, как Acorn RISC OS, OpenVMS, MS-DOS, Microsoft Windows, Novell NetWare и IBM AS/400.

Другие похожие стандарты

Альтернативные протоколы удаленного доступа к файлам включают в себя блок сообщений сервера (SMB, также называемый CIFS), протокол передачи Apple (AFP), базовый протокол NetWare (NCP) и файловую систему сервера OS/400 (QFileSvr.400).

Это связано с требованиями NFS, которые ориентированы по большей части на Unix-подобные «оболочки».

При этом протоколы SMB и NetWare (NCP) применяются чаще, чем NFS, в системах под управлением Microsoft Windows. AFP наиболее широко распространен в платформах Apple Macintosh, а QFileSvr.400 наиболее часто встречается в OS/400.

Типичная реализация

Предполагая типичный сценарий в стиле Unix, в котором одному компьютеру (клиенту) нужен доступ к данным, хранящимся на другом (сервер NFS):

[tchecklist]

  • Сервер реализует процессы Network File System, запущенные по умолчанию как nfsd, чтобы сделать свои данные общедоступными для клиентов. Администратор сервера определяет, как экспортировать имена и параметры каталогов, обычно используя файл конфигурации/etc/exports и команду exportfs.
  • Администрирование безопасности сервера гарантирует, что он сможет распознавать и утверждать проверенного клиента. Конфигурация его сети гарантирует, что соответствующие клиенты могут вести переговоры с ним через любую систему брандмауэра.
  • Клиентская машина запрашивает доступ к экспортированным данным, как правило, путем выдачи соответствующей команды. Она запрашивает сервер (rpcbind), который использует порт NFS, и впоследствии подключается к нему.
  • Если все происходит без ошибок, пользователи на клиентской машине смогут просматривать и взаимодействовать с установленными файловыми системами на сервере в пределах разрешенных параметров.

[/tchecklist]

Следует обратить внимание и на то, что автоматизация процесса Network File System также может иметь место — возможно, с использованием etc/fstab и/или иных подобных средств.

Развитие на сегодняшний день

К 21-му столетию протоколы-конкуренты DFS и AFS не достигли какого-либо крупного коммерческого успеха по сравнению с Network File System. Компания IBM, которая ранее приобрела все коммерческие права на вышеуказанные технологии, безвозмездно передала большую часть исходного кода AFS сообществу свободных разработчиков программного обеспечения в 2000 году. Проект Open AFS существует и в наши дни. В начале 2005 года IBM объявила о завершении продаж AFS и DFS.

В свою очередь, в январе 2010 года компания Panasas предложила NFS v 4.1 на основе технологии, позволяющей улучшить возможности параллельного доступа к данным. Протокол Network File System v 4.1 определяет метод разделения метаданных файловой системы из местоположения определенных файлов. Таким образом, он выходит за рамки простого разделения имен/данных.

Что такое NFS этой версии на практике? Вышеуказанная особенность отличает его от традиционного протокола, который содержит имена файлов и их данных под одной привязкой к серверу. При реализации Network File System v 4.1 некоторые файлы могут распределяться между многоузловыми серверами, однако участие клиента в разделении метаданных и данных ограничено.

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

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

Что такое NFS? Network File System. Протокол сетевого доступа к файловым системам на News4Auto.ru.

Наша жизнь состоит из будничных мелочей, которые так или иначе влияют на наше самочувствие, настроение и продуктивность. Не выспался — болит голова; выпил кофе, чтобы поправить ситуацию и взбодриться — стал раздражительным. Предусмотреть всё очень хочется, но никак не получается. Да ещё и вокруг все, как заведённые, дают советы: глютен в хлебе — не подходи, убьёт; шоколадка в кармане — прямой путь к выпадению зубов. Мы собираем самые популярные вопросов о здоровье, питании, заболеваниях и даем на них ответы, которые позволят чуть лучше понимать, что полезно для здоровья.

OpenSource в заметках

Что такое NFS и зачем это нужно

Каждый знает, что в UNIX-системах файловая система логически представляет собой набор физических файловых систем, подключенных к одной точке. Одна из самых основных прелестей такой организации, на мой взгляд, состоит в возможности динамически модифицировать структуру существующей файловой системы. Также, благодаря усилиям разработчиков, мы на сегодняшний день имеем возможность подключить ФС практически любого типа и любым удобным способом. Говоря «способом», я прежде всего хочу подчеркнуть возможность работы ядра ОС с файловыми системами посредством сетевых соединений.

Множество сетевых протоколов предоставляют нам возможность работы с удаленными файлами, будь то FTP, SMB, Telnet или SSH. Благодаря способности ядра, в конечном итоге, не зависеть от типа подключаемой ФС, мы имеем возможность при помощи программы mount подключать что угодно и как угодно.

Сегодня мне хочется рассказать об NFS — Network File System. Эта технология позволяет подключать отдельные точки ФС на удаленном компьютере к файловой системе локального компьютера. Сам протокол NFS позволяет выполнять операции с файлами достаточно быстро, безопасно и надежно. А что нам еще нужно? 🙂

Что необходимо для того, чтобы это работало

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

Установка

Для запуска сервера NFS в моей Ubuntu 7.10 — the Gutsy Gibbon понадобилось установить пакеты nfs-common и nfs-kernel-server. Если же нужен только клиент NFS, то nfs-kernel-server устанавливать не нужно.

Настройка сервера

После того, как все пакеты успешно установлены, необходимо проверить, запущен ли демон NFS:

Если демон не запущен, его нужно запустить командой

После того, как все успешно запустилось, можно приступать к экспорту файловой системы. Сам процесс очень прост и занимает минимум времени.

Основной файл конфигурации NFS-сервера располагается в /etc/exports и имеет следующий формат:

directory — абсолютный путь к каталогу ФС сервера, к которому нужно дать доступ

machineX — DNS-имя или IP-адрес клиентского компьютера, с которого разрешается доступ

optionXX — параметры экспорта ФС, наиболее часто используемые из них:

  • ro — доступ к файлам разрешается только для чтения
  • rw — доступ предоставляется на чтение/запись
  • no_root_squash — по умолчанию, если вы подключаетесь к ресурсу NFS от имени root, сервер, безопасности ради, на своей стороне будет обращаться к файлам от имени пользователя nobody. Однако, если включить эту опцию, то обращение к файлам на стороне сервера будет будет производиться от имени root. Аккуратней с этой опцией.
  • no_subtree_check — по умолчанию, если вы на сервере экспортируете не весь раздел, а только часть ФС, демон будет проверять, является ли запрошенный файл физически размещенным на том же разделе или нет. В случае, если вы экспортируете весь раздел или точка подключения экспортируемой ФС не затрагивает файлы с других физических томов, то можно включить эту опцию. Это даст вам увеличение скорости работы сервера.
  • sync — включайте эту опцию, если есть вероятность внезапного обрыва связи или отключения питания сервера. Если эта опция не включена, то очень повышается риск потери данных при внезапной остановке сервера NFS.

Итак, допустим, нам нужно дать доступ компьютеру ashep-desktop к каталогу /var/backups компьютера ashep-laptop. Доступ к каталогу необходим для копирования резервных копий файлов с ashep-desktop. У меня файл получился следующим:

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

Вот и все. Можно приступать к подключению экспортированной ФС на клиентском компьютере.

Настройка клиента

На клиентской стороне удаленная файловая система монтируется так же, как и все остальные — командой mount. Также, никто не запрещает вам использовать /etc/fstab в случае, если подключать ФС нужно автоматически при загрузке ОС. Итак, вариант с mount будет выглядеть так:

Если все прошло успешно и вам необходимо выполнять подключение к удаленной ФС автоматически при загрузке — просто добавляем строку в /etc/fstab:

Что еще

Вот и получился практический, малюсенький обзор возможностей NFS. Конечно, это всего лишь малая часть того, что умеет NFS. Этого достаточно для использования дома или в небольшом офисе. Если же вам этого недостаточно, рекомендую в первую очередь прочесть NFS HowTo.

NFS для домашних пользователей : 2 комментария

Прикольно написано. А вообще, поздравляю автора блога и всех его читателей с сегодняшним праздником — Днем России. Ура, товарищи! 🙂

Статья, начиная с описания настройки клиента — гавно.

Каким макаром тут оказался параметр ashep-laptop: и что он означает — автору не удосужился сказать.

Можно только догадываться, что это клиентский компьютер.

Но тогда выбор имен — desktop и laptop весьма неудачен, поскольку оба являются клиентскими, и надо было выбрать «server».

> если вы на сервере экспортируете не весь раздел,

— раздел чего — жесткого диска или хз, тоже не сказано