Головна

Файлова система NFS

  1. VI. Виборча система Росії
  2. А) відрядно-преміальна система оплати праці для АТП
  3. Авторитарна командно-адміністративна система управління та ее негативний Вплив на Суспільно-політичне життя. Неосталінізм
  4. Адміністративно-правове регулювання та система органів управління в господарсько-обслуговуючому комплексі.
  5. Адміністративна система менеджменту и система якості

Файлова система NFS {Network File System) створена компанією Sun Microsystems. В даний час це стандартна мережева файлова система для ОС сімейства UNIX, крім того, клієнти і сервери NFS реалізовані для багатьох інших ОС. Принципи її організації на сьогодні стандартизовані співтовариством Інтернету, остання версія NFS v.4 описується специфікацією RFC 3010, випущеної в грудні 2000 року.

NFS являє собою систему, яка підтримує схему віддаленого доступу до файлів. Робота користувача з віддаленими файлами після виконання операції монтування стає повністю прозорою - поддерево файлової системи сервера NFS стає піддерево локальної файлової системи.

Однією з цілей розробників NFS була підтримка неоднорідних систем з клієнтами і серверами, що працюють під управлінням різних ОС на різної апаратній платформі. Цій меті сприяє реалізація NFS на основі механізму Sun RPC, що підтримує за замовчуванням кошти XDR для уніфікованого представлення аргументів віддалених процедур.

Для забезпечення стійкості клієнтів до відмов серверів в NFS прийнятий підхід stateless, тобто сервери при роботі з файлами не зберігають даних про відкриті клієнтами файлах.

Основна ідея NFS - дозволити довільній групі користувачів розділяти загальну файлову систему. Найчастіше всі користувачі належать одній локальній мережі, але не обов'язково. Можна виконувати NFS і на глобальній мережі. Кожен NFS-сервер надає один або більше своїх каталогів для доступу віддаленим клієнтам. Каталог оголошується доступним з усіма своїми підкаталогами. Список каталогів, які сервер передає, міститься в файлі / etc / exports, так що ці каталоги експортуються відразу автоматично при завантаженні сервера. Клієнти отримують доступ до експортним каталогом шляхом монтування. Багато робочі станції Sun бездискові, але і в цьому випадку можна монтувати віддалену файлову систему до кореневого каталогу, при цьому вся файлова система цілком розташовується на сервері. Виконання програм майже не залежить від того, де розташований файл: локально або на віддаленому носії. Якщо два або більше клієнта одночасно змонтували один і той же каталог, то вони можуть зв'язуватися шляхом поділу файлу.

У своїй роботі файлова система NFS використовує два протоколи.

Перший NFS-протокол управляє монтуванням. Клієнт посилає серверу повне ім'я каталогу і запитує дозвіл на монтування цього каталогу в будь-яку точку власного дерева каталогів. При цьому сервера не вказується, в яке місце буде монтуватися каталог сервера. Отримавши ім'я, сервер перевіряє законність цього запиту і повертає клієнту дескриптор файлу, що є віддаленою точкою монтування. Дескриптор включає описатель типу файлової системи, номер диска, номер індексного дескриптора (inode) каталогу, який є віддаленою точкою монтування, інформацію безпеки. Операції читання і запису файлів з монтованих файлових систем використовують дескриптори файлів замість символьного імені.

Монтування може виконуватися автоматично, за допомогою командних файлів при завантаженні. Існує інший варіант автоматичного монтування: при завантаженні ОС на робочої станції виділена файлова система не монтується, але при першому відкритті віддаленого файлу ОС посилає запити кожного серверу та після виявлення цього файлу монтує каталог того сервера, на якому розташований знайдений файл.

Другий NFS-протокол використовується для доступу до віддалених файлів і каталогів. Клієнти можуть послати запит серверу для виконання якої-небудь дії над каталогом або операції читання або запису файлу. Крім того, вони можуть запитати атрибути файлу, такі як тип, розмір, час створення і модифікації. NFS підтримується велика частина системних викликів UNIX, за винятком open і close. Виняток open і Сlose не випадково. Замість операції відкриття віддаленого файлу клієнт посилає серверу повідомлення, що містить ім'я файлу, із запитом відшукати його (lookup) і повернути дескриптор файлу. На відміну від виклику open виклик lookup не копіює ніякої інформації у внутрішні системні таблиці. Виклик read містить дескриптор того файлу, який потрібно читати, зміщення в уже читається файлі і кількість байт, які потрібно прочитати. Перевагою такої схеми є те, що сервер не запам'ятовує нічого про відкриті файли. Таким чином, якщо сервер відмовить, а потім буде відновлений, інформація про відкриті файли не згубиться, тому що вона не підтримується.

При відмові сервера клієнт просто, продовжує посилати на нього команди читання або запису в файли, однак не отримавши відповіді і вичерпавши тайм-аут, клієнт повторює свої запити. Після перезавантаження сервер отримує черговий повторний запит клієнта і відповідає на нього. Таки чином, крах сервера викликає тільки деяку паузу в обслуговуванні клієнтів, але ніяких додаткових дій по відновленню з'єднань і повторного відкриття файлів від клієнтів не потрібно.

На жаль, NFS ускладнює блокування файлів. У багатьох ОС файл може бути відкритий і заблокований так, щоб інші процеси не мали до нього доступу. Коли файл закривається, блокування знімається. У системах stateless, подібних NFS, блокування не може бути пов'язано з відкриттям файлу, так як сервер не знає, який файл відкритий. Отже, NFS вимагає спеціальних додаткових коштів управління блокуванням.

В NFS використовується кешування на стороні клієнта, дані в кеш переносяться по блоках і застосовується попередній виклик, при якому читання блоку в кеш на вимогу програми завжди супроводжується читанням наступного блоку з ініціативи системи. Метод кешування NFS не зберігається семантику UNIX для поділу файлів. Замість цього використовується не раз піддавалася критиці семантика, при якій зміни даних в кешувального клієнтом файлі видно іншим клієнтам, залежно від тимчасових співвідношень. Клієнт при черговому відкритті файлу, наявного в його кеші, перевіряє у сервера, коли файл був в останній раз модифікований. Якщо це сталося після того, як файл був поміщений в кеш, файл видаляється з кешу і від сервера виходить нова копія файлу. Клієнти поширюють модифікації, зроблені в кеші, з періодом в 30 секунд, так що сервер може отримати оновлення з великою затримкою. В результаті роботи механізмів видалення даних з кеша і поширення модифікацій дані, одержувані будь-яким клієнтом, не завжди є найсвіжішими.

Реплікація в NFS не підтримується.

Протокол передачі файлів FTP | ГЛАВА 2. Історико-філософська антологія соціально-культурної


| Механізм передачі повідомлень в розподілених системах | Синхронізація | Буферизація в примітивах передачі повідомлень | способи адресації | Надійні і ненадійні примітиви | | | | |

© 2016-2022  um.co.ua - учбові матеріали та реферати