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

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

Коли мова йде про комп 'ютерні мережі, часто можна почути згадку NFS. Що таке ця абревіатура?

Це протокол розподіленої файлової системи, спочатку розроблений компанією 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 додала в себе наступне:

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

Під час введення версії 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. З них найбільш відомими виступають:

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

Платформи

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):

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

Слід звернути увагу і на те, що автоматизація процесу 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.