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-серверів і клієнтів для різних операційних систем і апаратних архітектур. У цей час (2007) використовується найзріліша версія NFS v.4 (RFC 3010), що підтримує різні засоби аутентифікації (зокрема, Kerberos і LIPKEY з використанням протоколу RPCSEC_GSS) і списків контролю доступу (як POSIX, так і Windows-Типів).
pNFS (паралельний NFS, див. pnfs.com) — включена в найсвіжішу версію стандарту NFS v4.1 специфікація, яка забезпечує реалізацію загального доступу до файлів, що збільшує швидкість передачі даних пропорційно розмірам і ступеню паралелізму системи.
NFS надає клієнтам прозорий доступ до файлів і файлової системи сервера. На відміну від FTP протокол NFS здійснює доступ тільки до тих частин файлу, до яких звернувся процес, і основна перевага його в тому, що він робить цей доступ прозорим. Це означає, що будь-який застосунок клієнта, що може працювати з локальним файлом, з таким же успіхом може працювати й з NFS файлом, без будь-яких модифікацій самої програми.
NFS-клієнти одержують доступ до файлів на NFS-сервері шляхом відправлення RPC запитів на сервер. Це може бути реалізоване з використанням звичайних користувальницьких процесів — а саме, NFS клієнт може бути користувальницьким процесом, що здійснює конкретні RPC виклики на сервер, що так само може бути користувацьким процесом.
Першочергова розробка NFS мала наступні цілі:
- NFS не повинна обмежуватися операційною системою UNIX. Будь-яка операційна система має бути здатною реалізувати сервер і клієнт NFS.
- Протокол не повинен залежати від будь-яких визначених апаратних засобів.
- Повинні бути реалізовані прості механізми відновлення у випадку відмов сервера або клієнта.
- Застосунки повинні мати прозорий доступ до віддалених файлів без використання спеціальних шляхових імен або бібліотек і без перекомпіляції.
- Для UNIX-Клієнтів повинна підтримуватися семантика UNIX.
- Продуктивність 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 відповідно.
- Network File System Version 4 // IETF
- wiki.linux-nfs.org [Архівовано 7 червня 2010 у Wayback Machine.]
- Блог Mike Eisler, участника разработки спецификации NFS4/4.1/pNFS
Це незавершена стаття про інформаційні технології. Ви можете допомогти проєкту, виправивши або дописавши її. |