490 likes | 662 Views
Лекція 09. Файлова система NFS. Діденко Дмитро Георгійович Старший викладач кафедри ММСА ННК «ІПСА» Національний технічний університет України «Київський політехнічний інститут» м. Київ, Україна. Питання заняття. Файлова система NFS. 1. Історія розвитку NFS.
E N D
Лекція 09. Файлова система NFS Діденко Дмитро Георгійович Старший викладач кафедри ММСА ННК «ІПСА» Національний технічний університет України «Київський політехнічний інститут» м. Київ, Україна
Питання заняття • Файлова система NFS. Файлова система NFS
1. Історія розвитку NFS Мережева файлова система NFS (Network File System) компанiї Sun Microsystems надає клiєнту набiр протоколiв подання розподiленої файлової системи. Систему NFS було реалiзовано на UNIX. Тепер iснують реалiзацiї на iнших платформах, зокрема на Windows 2000, MS-DOS. Найвiдомiшi версiї 3 та 4. Файлова система NFS
2. Цілі NFS • NFS не повинна обмежуватися операційною системою UNIX. Будь-яка операційна система повинна бути здатною реалізувати сервер і клієнт NFS; • протокол не повинен залежати від будь-яких визначених апаратних засобів; • повинні бути реалізовані прості механізми відновлення у випадку відмов сервера або клієнта; • додатки повинні мати прозорий доступ до вилучених файлів без використання спеціальних шляхових імен або бібліотек і без перекомпіляції; • для UNIX-клієнтів повинна підтримуватися семантика UNIX; • продуктивність NFS повинна бути порівнювана із продуктивністю локальних дисків; • реалізація повинна бути незалежною від транспортних засобів. Файлова система NFS
3. Незалежність реалізації NFS Архiтектура NFS не залежить вiд локальної файлової системи i має в основi модель вiддаленого сервiсу, у якiй клiєнти отримують прозорий доступ до файлової системи вiддаленого сервера. Файли постiйно мiстяться на серверi i в разi потреби реплiкуються в локальному адресному просторi клiєнта. Файлова система NFS
4. Компоненти 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
4. Компоненти NFS (продовження) • Програмний код клієнта NFS реалізує всі звернення клієнтської системи до вилучених файлів шляхом посилки серверу одного або декількох запитів RPC. • Протокол монтування визначає семантику монтування й розмонтування файлових систем NFS. NFS використовує кілька фонових процесів-демонів. На сервері набір демонів nfsd очікують запити клієнтів NFS і відповідають на них. • Демон mountd обробляє запити монтування. На клієнті набір демонів biod обробляє асинхронне уведення/вивід блоків файлів NFS. • Менеджер блокувань мережі (NLM - Network Lock Manager) і монітор стану мережі (NSM - Network Status Monitor) разом забезпечують засоби для блокування файлів у мережі. Ці засоби, хоча формально не пов'язані з NFS, можна знайти в більшості реалізацій NFS. Вони забезпечують сервіси не можливі в базовому протоколі. NLM і NSM реалізують функціонування сервера за допомогою демонів lockd і statd відповідно. Файлова система NFS
5. Доступ клієнта до файлів Клiєнт пiдтримує доступ до файлової системи за допомогою системних викликiв локальної ОС. Клiєнт використовує iнтерфейс вiртуальної файлової системи VFS (Virtual File System), який є фактично стандартним iнтерфейсом для розподiлених файлових систем. В iнтерфейсi VFS клiєнт реалiзує операцiї у формi запитiв RPC до сервера NFS. Файлова система NFS
6. RPC в NFS Сервер NFS перетворює видiленi заглушкою сервера запити з повiдомлення i перетворює їх у коректнi операцiї з файлами iнтерфейсу VFS. Файлова система NFS
7. Архiтектура NFS в UNIX Файлова система NFS
8. Модель системи NFS Модель системи NFS подiбна до файлової системи UNIX. Файли розглядаються як неiнтерпретованi послiдовностi байтiв. Файли органiзовано у виглядi iєрархiчного графу iмен, вузлами якого є каталоги i файли. Доступ до файлiв здiйснюється за допомогою не iмен, а дескрипторiв файлiв, тому за iменем файлу клiєнт отримує дескриптор. Значення атрибутiв файлiв можна змiнювати. Файлова система NFS
9. Відмінності версій NFS В операцiях версiй 3, 4 системи NFS є суттєвi вiдмiнностi. Зокрема, введено операцiї open, close для файлiв, якi передбачають, що файловий сервер зберiгає iнформацiю про стан файлу. Дескриптор файлу застосовують для вiдкриття i закриття файлу. Файлова система NFS
10. Монтування файлiв Монтування файлiв у чужому файловому просторi iмен у версiї 4 (наприклад, у разi перенесення каталогу) здiйснюється з використанням операцiї lookup знаходження файлу за iменем. Файлова система NFS
11. Операцiя readdir За операцiєю readdir повертається список пар (iм'я, дескриптор файлу) з вiдповiдними атрибутами, якi запитанi клiєнтом. Клiєнт може визначити кiлькiсть потрiбних елементiв. Атрибутами є тип файлу, довжина файлу, iдентифiкатор файлової системи. Атрибути iмен можна застосовувати та записувати за допомогою операцiй getattr, setattr. Файлова система NFS
12. Операцiя readdir Структура NFS забезпечує незалежнiсть ОС, мережевих структур i транспортних протоколiв. Протокол NFS розмiщено над рiвнем RPC, що забезпечує нiвелювання вiдмiнностi мiж платформами i мережами. Файлова система NFS
13. Протокол RPC Структура NFS забезпечує незалежнiсть ОС, мережевих структур i транспортних протоколiв. Протокол NFS розмiщено над рiвнем RPC, що забезпечує нiвелювання вiдмiнностi мiж платформами i мережами. Взаємодiя мiж клiєнтом i сервером вiдбувається згiдно з протоколом RPC для вiдкритих мережевих обчислень (Open Network Computing) ONC RPC. У NFS для версiї 4 пiдтримуються складенi процедури (compound procedures) RPC, за якими кiлька запитiв операцiй можна об'єднувати в один, що дозволяє пiдвищити продуктивнiсть системи. Якщо неможливо виконати одну з операцiй, виконання процедури завершується без спроб розв'язання конфлiктiв. Файлова система NFS
14. Процеси в NFS Процеси "клiєнт-сервер" NFS з версiї 4 реалiзуються з використанням збереженої iнформацiї про стан розподiленої файлової системи, а також з використанням кешування у невеликих обсягах на клiєнтi для розвантаження сервера. Сервер може призначати оренду кожному файлу, доступ до якого запитує клiєнт. Оренда передбачає надання виняткових прав зчитування i записування у файл пiд час оренди з можливим її продовженням. Файлова система NFS
15. Зворотній виклик У NFS передбачено можливiсть зворотного виклику з боку сервера з використанням iнформацiї про стан клiєнтiв, а також монтування клiєнтом частини файлової системи сервера у своїй локальнiй файловiй системi. Цей процес називають експортуванням сервером каталогу. Експортований каталог у рiзних клiєнтах доволi важко розподiлити мiж кiлькома клiєнтами, оскiльки це потребує узгодженостi простору iмен. Файлова система NFS
16. Монтування сервером експортованого каталогу Для монтування сервером експортованого каталогу iншого сервера цей каталог недоступний для власних клiєнтiв, оскiльки потребує спецiальних дескрипторiв файлу, включаючи iдентифiкатор експортуючого сервера. У версiї 3 NFS це не пiдтримується. Але рекурсивне розв'язання iмен пiдтримується в NFS версiї 4. Файлова система NFS
17. Монтування каталогу Файлова система NFS
18. Дескриптори файлу Дескриптори файлу створюються сервером NFS i є унiкальними для всiх експортованих сервером. Довжина їх становить 128 байт у версiї 4 i 64 байт у версiї 3. Дескриптор реалiзовано як iдентифiкатор файлу у файловiй системi i може зберiгатися на боцi клiєнта. Файлова система NFS
19. Оперативне визначення iмен Оперативне визначення iмен на перетинi монтажної точки у SFS 4 здiйснюється наданням спецiальної операцiї utrootfh. Ця операцiя пропонує серверу визначити всi iмена файлiв вiдносно кореневого дескриптора файлiв для файлової системи, яку вiн пiдтримує. Кореневий дескриптор можна використовувати для пошуку довiльних iнших дескрипторiв файлу у файловiй системi сервера. Клiєнт монтує вiддалену файлову систему, вимагаючи вiд сервера за допомогою putrootfh визначення iмен вiдносно кореневого дескриптора файлiв. Файлова система NFS
20. Монтування вiддалених файлових систем Монтування вiддалених файлових систем (тобто експортованого каталогу) за запитом виконує програма автоматичного монтувальника (automounter) на машинi клiєнта. Файлова система NFS
21. Автоматичний монтувальник для NFS Файлова система NFS
22. Створення каталогу • За запитом програмою каталогу /home/alice автоматичний монтувальник шукає каталог. • Оскiльки каталогу немає, автоматичний монтувальник створює каталог /home/alice. • Автоматичний монтувальник виконує запит до сервера для пошуку /аliсе. • Сервер експортує каталог /аliсе, а автоматичний монтувальник монтує його в /home/alice. Файлова система NFS
23. Застосування символiчних посилань для монтування каталогiв Файлова система NFS
24. Атрибути файлів Для розширення можливостей реалiзацiї NFS у рiзних файлових системах версiя 4 має набiр атрибутiв файлiв, що складаються з обов'язкових атрибутiв, якi пiдтримуються будь-якою реалiзацiєю, рекомендованих атрибутiв i додаткового набору атрибутiв. Атрибут зберiгається у виглядi масиву параметрiв <атрибут, значення> разом з файлом або каталогом. Iнтерпретацiя атрибутiв здiйснюється додатками, а операцiї (записування значення, читання) пiдтримується системою NFS. До обов'язкових належать атрибути типу, розмiру, ознаки змiни файлу, унiкальний iдентифiкатор файлової системи сервера. Файлова система NFS
25. Рекомендовані атрибути • АСЕ - список контролю доступу; • FILEHANDLE - дескриптор файлу, встановлений сервером; • FILEID - унiкальний iдентифiкатор файлу в файловiй системi; • OWNER - iм'я власника файлу; • TIME ACCESS - час останнього доступу; • TIME CREATE - час створення файлу; • FSI LOCATIONS - мiсце розташування файлової системи у мережi. Файлова система NFS
26. Синхронiзацiя в NFS Синхронiзацiя в розподiленiй системi NFS пiдтримується чотирма операцiями блокування: • lock - блокування набору байтiв; • lockt - перевiрка наявностi конфлiктного блокування; • locku - зняття блокування з набору байтiв; • renew - продовження оренди вказаного блокування. Файлова система NFS
27. Блокування файлів Операцiя lock використовується у запитах пiд час читання i записування послiдовного набору байтiв файлу за умови, що немає конфлiктностi з iншим блокуванням. Пiсля зняття блокування, що заважає, потрiбне блокування можна вибрати зi списку FIFO блокувань за умови що клiєнт запитав його. Операцiя lockt дозволяє виявити, на яку послiдовнiсть файлiв призначено блокування. Блокування встановлюється на час оренди, яку визначає сервер. Якщо клiєнт не виконує renew, то сервер знiмає блокування. Файлова система NFS
28. Додатковi засоби блокування Для деяких ОС (Windows) передбачено додатковi засоби блокування. У NFS для Windows додатковим засобом є сумiсне резервування (shared reservation). Iз вiдкриванням клiєнтом файлу вiн визначає тип свого доступу (READ, WRITE, BOTH) i тип доступу, за яким сервер повинен вiдмовляти iншим клiєнтам (NONE, READ, WRITE, BOTH). Якщо сервер не в змозi задовольнити вимогу клiєнта, то операцiя вiдкриття файлу завершиться з помилкою. У разi спроби вiдкриття новим клiєнтом файлу, вiдкритого iншим, тоді повертаються помилки. Файлова система NFS
29. Типи заборон за сумiсним доступом Файлова система NFS
30. Кешування в NFS Для пiдвищення продуктивностi в NFS v.4 використовують кешування даних з файлу, атрибутiв, дескрипторiв файлової системи на клiєнтську машиину. Файлова система NFS
31. Кешування в NFS (продовження) Пiдтримується кешування пiсля вiдкриття клiєнтом файлу за допомогою операцiй читання (READ). Змiни в отриманих даних повертаються на сервер через операцiю записування. Кiлька клiєнтiв однiєї машини можуть одночасно використовувати цей кеш. Пiсля вiдкриття файлу сервер може делегувати клiєнтовi частину своїх прав (open delegation), зокрема, права обробки клiєнтом файлу з правом на запис у файл, i локально блокувати запит iншого клiєнта цiєї ж машини. Файлова система NFS
32. Кешування на боцi клiєнта в NFS Файлова система NFS
33. Вiдмiна делегування Вiдмiну делегування (delegation) реалiзує сервер з використанням механiзму RPC зворотного виклику клiєнтом. Файлова система NFS
34. Кешування атрибутiв i дескрипторiв Кешування атрибутiв i дескрипторiв (точнiше вiдображень iмен файлiв у дескриптори) i каталогiв вiдбувається зазвичай без змiн. У разi потреби їх модифiкацiї цi значення узгоджуються. Файлова система NFS
35. Реплікація в NFS NFS має обмеженi можливостi реплiкацiї файлiв. Механiзм RRPC NFS не гарантує надiйностi, оскiльки заглушки клiєнта i сервера орiєнтованi на використання протоколiв TCP i UDP, а в RPC не передбачає додаткових засобiв визначення дублювання запитiв. Проблему дублювання можна розв'язувати кешуванням запитiв сервером (duplicate request cache) з використанням iдентифiкатора транзакцiї XID (Transaction Identifier) вiд клiєнта. Файлова система NFS
36. Перiод амнiстiї У разi блокування клiєнту надається перiод амнiстiї (grace period) протягом якого клiєнт може повторно заявити права на блокування. Це передбачає синхронiзацiю годинникiв клiєнта i сервера. Файлова система NFS
37. Контроль доступу до файлiв Система захисту в NFS передбачає контроль доступу до файлiв за допомогою контролю доступу до файлiв i наявностi захищеного каналу взаємодiї. Файлова система NFS
38. Архiтектура захисту в NFS Файлова система NFS
39. Способи автентифiкацiї Захищенi виклики RPC передбачають три способи автентифiкацiї: • системна автентифiкацiя на основi технологiї UNIX, за якою клiєнт передає серверу тест своїх поточних iдентифiкаторiв i групи разом зi списком груп, у якi вiн входить; • автентифiкацiя за методом Дiффi Хеллмана; • використання системи Kerberos (починаючи з версiї NFS 4). Файлова система NFS
40. Узагальнена схема захисту RPC SEC_GSS У NFS версiї 4 захист пiдсилено узагальненою схемою захисту RPC SEC_GSS, яка пiдтримує множину механiзмiв захисту. Файлова система NFS
41. Захищений запит RPC у NFS Файлова система NFS
42. Методи авторизації Метод LIPICEY є системою з вiдкритим ключем, який дозволяє проходити клiєнтом автентифiкацiю за паролями, а сервер автентифiкується за допомогою вiдкритого ключа. Kerberos може безпосередньо вбудовуватись у реалiзацiю NFS. Авторизацiя в NFS здiйснюється для керування доступом атрибутом ACL файлiв, кожний запис списку якого визначає права доступу певного користувача або групи. Iснує близько 20 операцiй, якi визначають права доступу, що набагато бiльше, нiж у UNIX. Файлова система NFS
Питання заняття • Файлова система NFS. Файлова система NFS
Питання? Розподілені інформаційні системи www.simulation.kiev.ua/dis/