Лекція 09. Файлова система NFS
-
Upload
laith-oneal -
Category
Documents
-
view
66 -
download
4
description
Transcript of Лекція 09. Файлова система NFS
Діденко Д.Г. © 2010
Лекція 09. Файлова система NFS
Діденко Дмитро ГеоргійовичСтарший викладач кафедри ММСА ННК «ІПСА»
Національний технічний університет України «Київський політехнічний інститут»
м. Київ, Україна
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
2
1. Файлова система NFS.
Питання заняття
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
3
Мережева файлова система 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.
1. Історія розвитку NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
4
• NFS не повинна обмежуватися операційною системою UNIX. Будь-яка операційна система повинна бути здатною реалізувати сервер і клієнт NFS;
• протокол не повинен залежати від будь-яких визначених апаратних засобів;
• повинні бути реалізовані прості механізми відновлення у випадку відмов сервера або клієнта;
• додатки повинні мати прозорий доступ до вилучених файлів без використання спеціальних шляхових імен або бібліотек і без перекомпіляції;
• для UNIX-клієнтів повинна підтримуватися семантика UNIX;• продуктивність NFS повинна бути порівнювана із
продуктивністю локальних дисків;• реалізація повинна бути незалежною від транспортних
засобів.
2. Цілі NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
5
Архiтектура NFS не залежить вiд локальної файлової системи i має в основi модель вiддаленого сервiсу, у якiй клiєнти отримують прозорий доступ до файлової системи вiддаленого сервера. Файли постiйно мiстяться на серверi i в разi потреби реплiкуються в локальному адресному просторi клiєнта.
3. Незалежність реалізації NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
6
1. Протокол NFS визначає набір запитів (операцій), які можуть бути спрямовані клієнтом до сервера, а також набір аргументів і значення, які повертаються, для кожного із цих запитів. Версія 1 цього протоколу існувала тільки в надрах Sun Microsystems і ніколи не була випущена. Всі реалізації NFS (у тому числі NFSv3) підтримують версію 2 NFS (NFSv2), що вперше була випущена в 1985 році в SunOS 2.0. Версія 3 протоколу була опублікована в 1993 році й реалізована деякими фірмами-постачальниками.
2. Протокол віддаленого виклику процедур (RPC) визначає формат всіх взаємодій між клієнтом і сервером. Кожний запит NFS посилається як пакет RPC.
3. Зовнішнє подання даних (XDR - External Data Representation) забезпечує машинно-незалежний метод кодування даних для пересилання через мережу. Всі запити RPC використовують кодування XDR для передачі даних. Слід зазначити, що XDR і RPC використовуються для реалізації багатьох інших сервісів, крім NFS.
4. Програмний код сервера NFS відповідає за обробку всіх запитів клієнта й забезпечує доступ до експортованих файлових систем.
4. Компоненти NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
7
5. Програмний код клієнта NFS реалізує всі звернення клієнтської системи до вилучених файлів шляхом посилки серверу одного або декількох запитів RPC.
6. Протокол монтування визначає семантику монтування й розмонтування файлових систем NFS. NFS використовує кілька фонових процесів-демонів. На сервері набір демонів nfsd очікують запити клієнтів NFS і відповідають на них.
7. Демон mountd обробляє запити монтування. На клієнті набір демонів biod обробляє асинхронне уведення/вивід блоків файлів NFS.
8. Менеджер блокувань мережі (NLM - Network Lock Manager) і монітор стану мережі (NSM - Network Status Monitor) разом забезпечують засоби для блокування файлів у мережі. Ці засоби, хоча формально не пов'язані з NFS, можна знайти в більшості реалізацій NFS. Вони забезпечують сервіси не можливі в базовому протоколі. NLM і NSM реалізують функціонування сервера за допомогою демонів lockd і statd відповідно.
4. Компоненти NFS (продовження)
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
8
Клiєнт пiдтримує доступ до файлової системи за допомогою системних викликiв локальної ОС. Клiєнт використовує iнтерфейс вiртуальної файлової системи VFS (Virtual File System), який є фактично стандартним iнтерфейсом для розподiлених файлових систем. В iнтерфейсi VFS клiєнт реалiзує операцiї у формi запитiв RPC до сервера NFS.
5. Доступ клієнта до файлів
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
9
Сервер NFS перетворює видiленi заглушкою сервера запити з повiдомлення i перетворює їх у коректнi операцiї з файлами iнтерфейсу VFS.
6. RPC в NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
10
7. Архiтектура NFS в UNIX
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
11
Модель системи NFS подiбна до файлової системи UNIX. Файли розглядаються як неiнтерпретованi послiдовностi байтiв. Файли органiзовано у виглядi iєрархiчного графу iмен, вузлами якого є каталоги i файли. Доступ до файлiв здiйснюється за допомогою не iмен, а дескрипторiв файлiв, тому за iменем файлу клiєнт отримує дескриптор. Значення атрибутiв файлiв можна змiнювати.
8. Модель системи NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
12
В операцiях версiй 3, 4 системи NFS є суттєвi вiдмiнностi. Зокрема, введено операцiї open, close для файлiв, якi передбачають, що файловий сервер зберiгає iнформацiю про стан файлу. Дескриптор файлу застосовують для вiдкриття i закриття файлу.
9. Відмінності версій NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
13
Монтування файлiв у чужому файловому просторi iмен у версiї 4 (наприклад, у разi перенесення каталогу) здiйснюється з використанням операцiї lookup знаходження файлу за iменем.
10. Монтування файлiв
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
14
За операцiєю readdir повертається список пар (iм'я, дескриптор файлу) з вiдповiдними атрибутами, якi запитанi клiєнтом. Клiєнт може визначити кiлькiсть потрiбних елементiв. Атрибутами є тип файлу, довжина файлу, iдентифiкатор файлової системи. Атрибути iмен можна застосовувати та записувати за допомогою операцiй getattr, setattr.
11. Операцiя readdir
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
15
Структура NFS забезпечує незалежнiсть ОС, мережевих структур i транспортних протоколiв. Протокол NFS розмiщено над рiвнем RPC, що забезпечує нiвелювання вiдмiнностi мiж платформами i мережами.
12. Операцiя readdir
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
16
Структура 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в.
13. Протокол RPC
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
17
Процеси "клiєнт-сервер" NFS з версiї 4 реалiзуються з використанням збереженої iнформацiї про стан розподiленої файлової системи, а також з використанням кешування у невеликих обсягах на клiєнтi для розвантаження сервера. Сервер може призначати оренду кожному файлу, доступ до якого запитує клiєнт. Оренда передбачає надання виняткових прав зчитування i записування у файл пiд час оренди з можливим її продовженням.
14. Процеси в NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
18
У NFS передбачено можливiсть зворотного виклику з боку сервера з використанням iнформацiї про стан клiєнтiв, а також монтування клiєнтом частини файлової системи сервера у своїй локальнiй файловiй системi. Цей процес називають експортуванням сервером каталогу. Експортований каталог у рiзних клiєнтах доволi важко розподiлити мiж кiлькома клiєнтами, оскiльки це потребує узгодженостi простору iмен.
15. Зворотній виклик
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
19
Для монтування сервером експортованого каталогу iншого сервера цей каталог недоступний для власних клiєнтiв, оскiльки потребує спецiальних дескрипторiв файлу, включаючи iдентифiкатор експортуючого сервера. У версiї 3 NFS це не пiдтримується. Але рекурсивне розв'язання iмен пiдтримується в NFS версiї 4.
16. Монтування сервером експортованого каталогу
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
20
17. Монтування каталогу
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
21
Дескриптори файлу створюються сервером NFS i є унiкальними для всiх експортованих сервером. Довжина їх становить 128 байт у версiї 4 i 64 байт у версiї 3. Дескриптор реалiзовано як iдентифiкатор файлу у файловiй системi i може зберiгатися на боцi клiєнта.
18. Дескриптори файлу
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
22
Оперативне визначення 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в.
19. Оперативне визначення iмен
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
23
Монтування вiддалених файлових систем (тобто експортованого каталогу) за запитом виконує програма автоматичного монтувальника (automounter) на машинi клiєнта.
20. Монтування вiддалених файлових систем
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
24
21. Автоматичний монтувальник для NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
25
1. За запитом програмою каталогу /home/alice автоматичний монтувальник шукає каталог.
2. Оскiльки каталогу немає, автоматичний монтувальник створює каталог /home/alice.
3. Автоматичний монтувальник виконує запит до сервера для пошуку /аliсе.
4. Сервер експортує каталог /аliсе, а автоматичний монтувальник монтує його в /home/alice.
22. Створення каталогу
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
26
23. Застосування символiчних посилань для монтування
каталогiв
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
27
Для розширення можливостей реал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катор файлової системи сервера.
24. Атрибути файлів
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
28
• АСЕ - список контролю доступу; • FILEHANDLE - дескриптор файлу,
встановлений сервером; • FILEID - унiкальний iдентифiкатор файлу в
файловiй системi; • OWNER - iм'я власника файлу; • TIME ACCESS - час останнього доступу; • TIME CREATE - час створення файлу; • FSI LOCATIONS - мiсце розташування
файлової системи у мережi.
25. Рекомендовані атрибути
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
29
Синхронiзацiя в розподiленiй системi NFS пiдтримується чотирма операцiями блокування:
• lock - блокування набору байтiв; • lockt - перевiрка наявностi конфлiктного
блокування; • locku - зняття блокування з набору байтiв; • renew - продовження оренди вказаного
блокування.
26. Синхронiзацiя в NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
30
Операцiя lock використовується у запитах пiд час читання i записування послiдовного набору байтiв файлу за умови, що немає конфлiктностi з iншим блокуванням. Пiсля зняття блокування, що заважає, потрiбне блокування можна вибрати зi списку FIFO блокувань за умови що клiєнт запитав його.
Операцiя lockt дозволяє виявити, на яку послiдовнiсть файлiв призначено блокування.
Блокування встановлюється на час оренди, яку визначає сервер. Якщо клiєнт не виконує renew, то сервер знiмає блокування.
27. Блокування файлів
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
31
Для деяких ОС (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ншим, тоді повертаються помилки.
28. Додатковi засоби блокування
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
32
29. Типи заборон за сумiсним доступом
Тип доступу за
запитом Тип заборони
NON READ WRITE BOTH
READ Успiшно Помилково Успiшно Помилково
WRITE Успiшно Успiшно Помилково Помилково
BOTH Успiшно Помилково Помилково Помилково
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
33
Для пiдвищення продуктивностi в NFS v.4 використовують кешування даних з файлу, атрибутiв, дескрипторiв файлової системи на клiєнтську машиину.
30. Кешування в NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
34
Пiдтримується кешування пiсля вiдкриття клiєнтом файлу за допомогою операцiй читання (READ). Змiни в отриманих даних повертаються на сервер через операцiю записування. Кiлька клiєнтiв однiєї машини можуть одночасно використовувати цей кеш. Пiсля вiдкриття файлу сервер може делегувати клiєнтовi частину своїх прав (open delegation), зокрема, права обробки клiєнтом файлу з правом на запис у файл, i локально блокувати запит iншого клiєнта цiєї ж машини.
31. Кешування в NFS (продовження)
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
35
32. Кешування на боцi клiєнта в NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
36
Вiдмiну делегування (delegation) реалiзує сервер з використанням механiзму RPC зворотного виклику клiєнтом.
33. Вiдмiна делегування
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
37
Кешування атрибутiв i дескрипторiв (точнiше вiдображень iмен файлiв у дескриптори) i каталогiв вiдбувається зазвичай без змiн. У разi потреби їх модифiкацiї цi значення узгоджуються.
34. Кешування атрибутiв i дескрипторiв
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
38
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єнта.
35. Реплікація в NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
39
У разi блокування клiєнту надається перiод амнiстiї (grace period) протягом якого клiєнт може повторно заявити права на блокування. Це передбачає синхронiзацiю годинникiв клiєнта i сервера.
36. Перiод амнiстiї
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
40
Система захисту в NFS передбачає контроль доступу до файлiв за допомогою контролю доступу до файлiв i наявностi захищеного каналу взаємодiї.
37. Контроль доступу до файлiв
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
41
38. Архiтектура захисту в NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
42
Захищен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).
39. Способи автентифiкацiї
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
43
У NFS версiї 4 захист пiдсилено узагальненою схемою захисту RPC SEC_GSS, яка пiдтримує множину механiзмiв захисту.
40. Узагальнена схема захисту RPC SEC_GSS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
44
41. Захищений запит RPC у NFS
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
45
Метод LIPICEY є системою з вiдкритим ключем, який дозволяє проходити клiєнтом автентифiкацiю за паролями, а сервер автентифiкується за допомогою вiдкритого ключа. Kerberos може безпосередньо вбудовуватись у реалiзацiю NFS.
Авторизацiя в NFS здiйснюється для керування доступом атрибутом ACL файлiв, кожний запис списку якого визначає права доступу певного користувача або групи. Iснує близько 20 операцiй, якi визначають права доступу, що набагато бiльше, нiж у UNIX.
42. Методи авторизації
www.simulation.kiev.ua/dis/ Файлова система NFS
Діденко Д.Г. © 2010
46
1. Файлова система NFS.
Питання заняття
Діденко Д.Г. © 2010
Питання?
Розподілені інформаційні системи
www.simulation.kiev.ua/dis/