Что такое сетевая файловая система

Обновлено: 03.07.2024

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

Протокол NFS развивался с тех пор, как Sun Microsystems впервые представила его в 1984 году. Он продолжает меняться и сегодня, поскольку представляет собой решение с открытым стандартом, где любой может внедрить протокол во всех операционных системах и настроить его по мере необходимости.

Общая концепция

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

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

Как работает NFS? Взгляд на три версии

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

NFS версии 2 (NFSv2)

NFSv2 — это самый старый формат и наиболее широко поддерживаемый формат, который вы можете использовать. Он работает с протоколом пользовательских дейтаграмм или UDP через IP-сеть. IP-сеть обеспечивает стабильное сетевое соединение.

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

NFS версии 3 (NFSv3)

NFSv3 поддерживает асинхронную запись, что позволяет серверу определять правильную политику синхронизации данных. Данные будут синхронизированы до того, как будет установлена ​​команда для фиксации управления данными. Дизайн обеспечивает лучшую буферизацию по сравнению с NFSv2.

NFSv3 также может более эффективно обрабатывать ошибки и управлять файлами большего размера. Он может работать с 64-разрядными размерами файлов, то есть пользователь может получить доступ к содержимому файлов в среднем около 2 ГБ.

NFS версии 4 (NFSv4)

NFSv4 — это самая последняя версия протокола NFS, которую вы можете использовать. Он может работать в Интернете и через брандмауэры. Он не требует службы rpcbind, что упрощает запуск в большем количестве мест.
Протокол управления передачей или TCP работает в этом формате NFS. Связи TCP между приложением и IP. Он отслеживает сегменты данных и получает потерянные кадры в наборе TCP только тогда, когда что-то нужно отправить во второй раз.

Сервер также будет принимать команды TCP-порта 2049. Этот порт является одним из наиболее часто используемых портов, которые вы найдете на рынке. Ему не нужно взаимодействовать с демонами, такими как параметры rpcbind и lockd.

Какие услуги необходимы?

Для работы файловой системы NFS вам потребуется несколько служб:

  • nfs — служба nfs запустит сервер и процессы RPC, необходимые для приема общих систем.
  • nfslock — служба nfslock запускает процессы RPC и позволяет клиентам NFC блокировать файлы.
  • portmap — с помощью этого вы можете зарезервировать порт от местных служб. portmap будет отвечать на сообщения о том, что определенные порты доступны для доступа к файлам.

Другие службы, которые вы можете использовать

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

  • rpc.mountd — вы можете начать с процесса, который получает запросы на монтирование и подтверждает, что компьютер может получить доступ к файлам NFS, к которым он хочет получить доступ.
  • rpc.nsfd — здесь вы можете определить конкретные версии и протоколы NFS для поддержки сервером.
  • rpc.lockd — с помощью этой команды легко заблокировать файлы на сервере.
  • rpc.statd — этой командой запускается протокол Network Status Monitor. Он будет уведомлять клиентов о перезапуске сервера, а также гарантирует, что сервер останется в сети без возможного отключения.

Чем полезна NFS?

  • Все в вашей сети могут получить доступ к одним и тем же файлам, если они станут клиентами одной и той же NFS.
  • Процесс монтирования файловой системы остается прозрачным, что дает клиентам представление о том, как они могут работать с контентом, которым вы управляете.
  • NFS может быть более безопасным, поскольку у вас не будет столько съемных дисков и съемных дисков.
  • Несколько компьютеров могут совместно использовать одни и те же приложения. Им не нужно использовать лишнее дисковое пространство, плюс им не нужно хранить вещи так часто.
    Есть ли какие-либо опасения?

Есть несколько недостатков NFS, на которые стоит обратить внимание:

  • Брандмауэр необходим для работы NFS, чтобы предотвратить доступ нежелательных сторон. Любая NFS, не использующая эту защиту, подвергается риску.
  • Несколько сторон могут получить одновременный доступ к файлу, особенно если файл имеет большой размер.
  • Некоторые протоколы позволяют перемещать до 1 МБ данных при каждом запросе на чтение или запись. Хотя современные протоколы могут обрабатывать огромное количество запросов, стандарт 1 МБ может оказаться слишком слабым.

Полезное решение

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

Увидеть Atera в действии

Программное обеспечение RMM, PSA и удаленный доступ, которые изменят способ ведения вашего бизнеса MSP

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

Протокол NFS развивался с тех пор, как Sun Microsystems впервые представила его в 1984 году. Он продолжает меняться и сегодня, поскольку представляет собой решение с открытым стандартом, где любой может внедрить протокол во всех операционных системах и настроить его по мере необходимости.

Общая концепция

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

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

Как работает NFS? Взгляд на три версии

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

NFS версии 2 (NFSv2)

NFSv2 — это самый старый формат и наиболее широко поддерживаемый формат, который вы можете использовать. Он работает с протоколом пользовательских дейтаграмм или UDP через IP-сеть. IP-сеть обеспечивает стабильное сетевое соединение.

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

NFS версии 3 (NFSv3)

NFSv3 поддерживает асинхронную запись, что позволяет серверу определять правильную политику синхронизации данных. Данные будут синхронизированы до того, как будет установлена ​​команда для фиксации управления данными. Дизайн обеспечивает лучшую буферизацию по сравнению с NFSv2.

NFSv3 также может более эффективно обрабатывать ошибки и управлять файлами большего размера. Он может работать с 64-разрядными размерами файлов, то есть пользователь может получить доступ к содержимому файлов в среднем около 2 ГБ.

NFS версии 4 (NFSv4)

NFSv4 — это самая последняя версия протокола NFS, которую вы можете использовать. Он может работать в Интернете и через брандмауэры. Он не требует службы rpcbind, что упрощает запуск в большем количестве мест.
Протокол управления передачей или TCP работает в этом формате NFS. Связи TCP между приложением и IP. Он отслеживает сегменты данных и получает потерянные кадры в наборе TCP только тогда, когда что-то нужно отправить во второй раз.

Сервер также будет принимать команды TCP-порта 2049. Этот порт является одним из наиболее часто используемых портов, которые вы найдете на рынке. Ему не нужно взаимодействовать с демонами, такими как параметры rpcbind и lockd.

Какие услуги необходимы?

Для работы файловой системы NFS вам потребуется несколько служб:

  • nfs — служба nfs запустит сервер и процессы RPC, необходимые для приема общих систем.
  • nfslock — служба nfslock запускает процессы RPC и позволяет клиентам NFC блокировать файлы.
  • portmap — с помощью этого вы можете зарезервировать порт от местных служб. portmap будет отвечать на сообщения о том, что определенные порты доступны для доступа к файлам.

Другие службы, которые вы можете использовать

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

  • rpc.mountd — вы можете начать с процесса, который получает запросы на монтирование и подтверждает, что компьютер может получить доступ к файлам NFS, к которым он хочет получить доступ.
  • rpc.nsfd — здесь вы можете определить конкретные версии и протоколы NFS для поддержки сервером.
  • rpc.lockd — с помощью этой команды легко заблокировать файлы на сервере.
  • rpc.statd — этой командой запускается протокол Network Status Monitor. Он будет уведомлять клиентов о перезапуске сервера, а также гарантирует, что сервер останется в сети без возможного отключения.

Чем полезна NFS?

  • Все в вашей сети могут получить доступ к одним и тем же файлам, если они станут клиентами одной и той же NFS.
  • Процесс монтирования файловой системы остается прозрачным, что дает клиентам представление о том, как они могут работать с контентом, которым вы управляете.
  • NFS может быть более безопасным, поскольку у вас не будет столько съемных дисков и съемных дисков.
  • Несколько компьютеров могут совместно использовать одни и те же приложения. Им не нужно использовать лишнее дисковое пространство, плюс им не нужно хранить вещи так часто.
    Есть ли какие-либо опасения?

Есть несколько недостатков NFS, на которые стоит обратить внимание:

  • Брандмауэр необходим для работы NFS, чтобы предотвратить доступ нежелательных сторон. Любая NFS, не использующая эту защиту, подвергается риску.
  • Несколько сторон могут получить одновременный доступ к файлу, особенно если файл имеет большой размер.
  • Некоторые протоколы позволяют перемещать до 1 МБ данных при каждом запросе на чтение или запись. Хотя современные протоколы могут обрабатывать огромное количество запросов, стандарт 1 МБ может оказаться слишком слабым.

Полезное решение

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

Увидеть Atera в действии

Программное обеспечение RMM, PSA и удаленный доступ, которые изменят способ ведения вашего бизнеса MSP

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

Описание функции

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

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

Версии Windows и Windows Server

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

< tr>
Операционные системы Версии сервера NFS Версии клиента 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, NFSv4.1 NFSv2, NFSv3

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

Вот несколько способов использования NFS:

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

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

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

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

NFS версии 4.1

В NFS версии 4.1 реализованы все обязательные аспекты, а также некоторые необязательные аспекты RFC 5661:

  • Псевдофайловая система — файловая система, которая разделяет физическое и логическое пространство имен и совместима с NFS версии 3 и NFS версии 2. Для экспортируемой файловой системы предоставляется псевдоним, который является частью псевдофайловой системы.
  • Составные RPC объединяют соответствующие операции и уменьшают количество болтовни.
  • Сеансы и объединение сеансов позволяют использовать только одну семантику и обеспечивают постоянную доступность и более высокую производительность при использовании нескольких сетей между клиентами NFS 4.1 и сервером NFS.

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

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

  • Транспортная инфраструктура удаленного вызова процедур (RPC)/представления внешних данных (XDR), основанная на сетевом протоколе WinSock, доступна как для сервера для NFS, так и для клиента для NFS. Он заменяет интерфейс транспортных устройств (TDI), обеспечивает лучшую поддержку, лучшую масштабируемость и масштабирование на стороне приема (RSS).
  • Функция мультиплексора портов RPC удобна для брандмауэра (управляется меньшим количеством портов) и упрощает развертывание NFS.
  • Автоматически настраиваемые кэши и пулы потоков — это возможности управления ресурсами новой инфраструктуры RPC/XDR, которые являются динамическими и автоматически настраивают кэши и пулы потоков в зависимости от рабочей нагрузки. Это полностью исключает работу наугад при настройке параметров и обеспечивает оптимальную производительность сразу после развертывания NFS.
  • Новая реализация конфиденциальности Kerberos и варианты аутентификации с добавленной поддержкой конфиденциальности Kerberos (Krb5p) наряду с существующими вариантами аутентификации krb5 и krb5i.
  • Командлеты модуля сопоставления удостоверений Windows PowerShell упрощают управление сопоставлением удостоверений, настройку служб Active Directory облегченного доступа к каталогам (AD LDS), а также настройку паролей 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 и управление им улучшились в следующем:

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

Информация о диспетчере серверов

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

  • Mount монтирует удаленный общий ресурс NFS (также известный как экспорт) локально и сопоставляет его с буквой локального диска на клиентском компьютере Windows.
  • Nfsadmin управляет параметрами конфигурации компонентов Сервер для NFS и Клиент для NFS.
  • Nfsshare настраивает параметры общего доступа NFS для папок, к которым предоставлен общий доступ с помощью сервера для NFS.
  • Nfsstat отображает или сбрасывает статистику вызовов, полученных сервером для NFS.
  • Showmount отображает смонтированные файловые системы, экспортированные сервером для NFS.
  • Umount удаляет диски, подключенные к NFS.

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

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

В этой главе основное внимание уделяется основным концепциям NFS и дополнительной информации.

18.1. Как это работает

В настоящее время существует три версии NFS. NFS версии 2 (NFSv2) старше и широко поддерживается. NFS версии 3 (NFSv3) имеет больше функций, включая 64-битные дескрипторы файлов, безопасную асинхронную запись и более надежную обработку ошибок. NFS версии 4 (NFSv4) работает через брандмауэры и в Интернете, больше не требует переназначения портов, поддерживает списки управления доступом и использует операции с отслеживанием состояния. Red Hat Enterprise Linux поддерживает клиенты NFSv2, NFSv3 и NFSv4, а при монтировании файловой системы через NFS Red Hat Enterprise Linux по умолчанию использует NFSv3, если сервер поддерживает это.

Все версии NFS могут использовать протокол управления передачей (TCP), работающий в IP-сети, для NFSv4 это требуется. NFSv2 и NFSv3 могут использовать протокол пользовательских дейтаграмм (UDP), работающий в IP-сети, для обеспечения сетевого соединения без сохранения состояния между клиентом и сервером.

При использовании NFSv2 или NFSv3 с UDP соединение UDP без сохранения состояния в нормальных условиях имеет меньшую нагрузку на протокол, чем TCP, что может привести к повышению производительности в очень чистых, не перегруженных сетях. Сервер NFS отправляет клиенту дескриптор файла после того, как клиент авторизуется для доступа к общему тому. Этот дескриптор файла представляет собой непрозрачный объект, хранящийся на стороне сервера и передаваемый вместе с запросами RPC от клиента. Сервер NFS можно перезапустить, не затрагивая клиентов, и файл cookie останется нетронутым. Однако, поскольку UDP не имеет состояния, в случае неожиданного сбоя сервера клиенты UDP продолжают насыщать сеть запросами к серверу. По этой причине TCP является предпочтительным протоколом при подключении к серверу NFS.

NFSv4 не взаимодействует с portmapper, rpc.mountd, rpc.lockd и rpc.statd, так как была включена поддержка протокола в протокол v4. NFSv4 прослушивает общеизвестный TCP-порт (2049), что устраняет необходимость взаимодействия с portmapper. Протоколы монтирования и блокировки были включены в протокол V4, что устраняет необходимость взаимодействия с rpc.mountd и rpc.lockd.

TCP — это транспортный протокол по умолчанию для NFS в Red Hat Enterprise Linux. UDP можно использовать в целях совместимости по мере необходимости, но не рекомендуется для широкого использования.

Все демоны RPC/NFS имеют параметр командной строки '-p', с помощью которого можно установить порт, что упрощает настройку брандмауэра.

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

Важно

Чтобы NFS работала с установленной по умолчанию Red Hat Enterprise Linux с включенным брандмауэром, необходимо настроить IPTables с TCP-портом по умолчанию 2049. Без правильной настройки IPTables NFS не будет работать должным образом.

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

18.1.1. Необходимые услуги

Red Hat Enterprise Linux использует комбинацию поддержки на уровне ядра и процессов демона для обеспечения общего доступа к файлам NFS. Все версии NFS полагаются на удаленные вызовы процедур (RPC) между клиентами и серверами. Службы RPC в Linux управляются службой portmap. Для совместного использования или монтирования файловых систем NFS совместно работают следующие службы, в зависимости от того, какая версия NFS реализована:

nfs — (/sbin/service nfs start) запускает сервер NFS и соответствующие процессы RPC для обслуживания запросов к общим файловым системам NFS.

nfslock — (/sbin/service nfslock start) является обязательной службой, которая запускает соответствующие процессы RPC, позволяющие клиентам NFS блокировать файлы на сервере.

portmap — принимает резервирование портов от локальных служб RPC. Затем эти порты становятся доступными (или объявляются), чтобы к ним обращались соответствующие удаленные службы RPC. portmap отвечает на запросы служб RPC и устанавливает соединения с запрошенной службой RPC. Это не используется с NFSv4.

Первая версия сетевой файловой системы, сокращенно NFS, была опубликована компанией Sun Microsystems в 1985 году. Название немного вводит в заблуждение, поскольку сегодня NFS – это не настоящая файловая система, а протокол, используемый между клиентами и сервером. серверы с данными.

Протокол сетевой файловой системы (NFS) был разработан, чтобы позволить нескольким клиентским компьютерам осуществлять прозрачный доступ к файловой системе на одном сервере. Одной из целей разработки было обеспечение возможности реализации NFS в широком диапазоне операционных систем и архитектур процессоров. Большинство операционных систем имеют расширенную встроенную поддержку NFS, включая Linux и macOS, а также более «экзотические» системы, такие как FreeBSD или Solaris. Более новые версии Windows имеют встроенную поддержку монтирования NFS.

На сегодняшний день используются только две версии протокола NFS: версия 3, опубликованная в 1995 г., и версия 4, выпущенная в 2000 г. NFS 3 по-прежнему является наиболее распространенной версией протокола и единственной, поддерживаемой Клиенты Windows.

 Пример NFS между клиентом и сервером Linux

Иллюстрация клиента Linux NFS, взаимодействующего с сервером NFS Linux (nfsd, NFS-сервером в ядре) и задействованными компонентами ядра Linux.

Каковы преимущества NFS?

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

Каковы недостатки NFS?

Большинство недостатков NFS связано с тем, что он был разработан несколько десятилетий назад и для связи с одним сервером:

  • NFS не поддерживает отработку отказа. Это должно быть сделано на уровне IP и часто вызывает прерывания, задержки и видимые пользователю ошибки (устаревший дескриптор файла).
  • В NFS нет балансировки нагрузки. Хотя NFS была разработана для одного сервера, отсутствие балансировки нагрузки в горизонтально масштабируемой системе хранения стало серьезной проблемой с появлением масштабируемых рабочих нагрузок.
  • В NFS нет контрольных сумм. В основном из-за высокой стоимости контрольных сумм в 90-х годах это является серьезной проблемой сегодня. Контрольные суммы защищают ваши данные при передаче, а современные процессоры имеют для них аппаратные инструкции. Контрольные суммы отсутствуют даже в более новых версиях протокола NFS.

Это то же самое, что NAS и NFS?

Короткий ответ: нет. Сетевая файловая система, несмотря на свое название, представляет собой протокол для доступа к файловой системе, расположенной на удаленном сервере. NAS означает сетевое хранилище и стало синонимом хранилища удаленной файловой системы (подробнее о NAS читайте здесь). NFS — это один из протоколов для доступа к системе хранения NAS по сети и наиболее распространенный в мире Linux/Unix. В мире Windows SMB/CIFS является основным протоколом для доступа к хранилищу NAS.

В чем разница между SMB и NFS?

Эти два протокола служат примерно одной цели: сделать удаленную файловую систему доступной для клиентов через компьютерную сеть. Sun Microsystems разработала NFS как открытый стандарт, предназначенный для сред Unix (Sun разработала Solaris, которая была системой Unix).С другой стороны, SMB/CIFS был разработан Microsoft для своей операционной системы Windows. Таким образом, операционная система вашего клиента определяет, какой протокол вы используете: Unix/Linux=NFS и Windows=SMB/CIFS. Существуют драйверы для монтирования NFS в Windows и SMB в Linux. Однако это скорее крайняя мера.

В чем разница между локальной файловой системой и NFS?

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

На компьютерах Linux и Unix локальные файловые системы и NFS выглядят и «ощущаются» одинаково для пользователей и приложений, когда доступ к файлам осуществляется только с одного хоста (за некоторыми незначительными исключениями, такими как xattrs). Однако при доступе к файлам с нескольких хостов в поведении есть несколько очень важных отличий. Основная причина различий в поведении — локальное кэширование.

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

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

Что такое RPC и XDR и как они связаны с NFS?

NFS — это протокол, описывающий доступ к удаленной файловой системе по сети. Операции протокола NFS кажутся знакомыми всем, кто видел вызовы файловой системы POSIX, например. NFSPROC_LOOKUP или NFSPROC_MKDIR .

Для выполнения этих операций или процедур на удаленном сервере компания Sun изобрела протокол удаленного вызова процедур SunRPC (сегодня он называется просто RPC). Этот протокол не связан с реальным приложением, в данном случае NFS, а является общим протоколом для отправки сообщений на удаленный сервер и с него и для вызова удаленных процедур. Это просто означает указание удаленному серверу выполнить определенную операцию.

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

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

Читайте также: