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

16 0 Новини високих технологій

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

Що таке 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? Network File System. Протокол мережевого доступу до файлових систем

NFS v2

Версія 2 спочатку працювала лише за допомогою User Datagram Protocol (UDP). Її розробники хотіли зберегти внутрішню сторону без блокування, реалізованої за межами основного протоколу. Інтерфейс віртуальної файлової системи дозволяє виконувати модульну реалізацію, відображену в простому протоколі. До лютого 1986 року були продемонстровані рішення для таких операційних систем, як System V release 2 DOS і VAX/VMS з використанням Юніс. NFS v2 дозволяв зчитувати тільки перші 2 ГБ файлу з-за 32-розрядних обмежень.
Що таке NFS? Network File System. Протокол мережевого доступу до файлових систем

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), включає в себе підвищення продуктивності, забезпечує кращу безпеку і вводить протокол з дотриманням встановлених умов.

    Що таке NFS? Network File System. Протокол мережевого доступу до файлових систем
    Версія 4 стала першим дистрибутивом, розробленим в Цільовій групі Internet Engineering Task Force (IETF) після того, як Sun Microsystems передала розробку протоколів стороннім фахівцям. NFS версія 4.1 спрямована на надання підтримки протоколу для використання кластерних розгортання серверів, включаючи можливість надання масштабованого паралельного доступу до файлів, розподіленим між декількома серверами (розширення pNFS). Новітній протокол файлової системи NFS 4.2 (RFC 7862) – був офіційно випущений в листопаді 2016 року.

    Інші розширення

    З розвитком стандарту з'явилися і відповідні інструменти для роботи з ним. Так, WebNFS, розширення для версій 2 і 3 дозволяє протоколом мережного доступу до файлових систем легше інтегруватися у веб-браузери та активувати роботу через брандмауери.
    Що таке NFS? Network File System. Протокол мережевого доступу до файлових систем
    Різні протоколи сторонніх груп стали також асоціюватися з 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), від Apple MacOS і Unix-подібними ОС (наприклад, Linux і FreeBSD). Він також доступний для таких платформ, як Acorn RISC OS, OpenVMS, MS-DOS, Microsoft Windows, Novell NetWare і IBM AS/400.
    Що таке NFS? Network File System. Протокол мережевого доступу до файлових систем

    Інші схожі стандарти

    Альтернативні протоколи віддаленого доступу до файлів включають в себе блок повідомлень сервера 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.