Лекція 09. Файлова система NFS

47
Діденко Д.Г. © 2010 Лекція 09. Файлова система NFS Діденко Дмитро Георгійович Старший викладач кафедри ММСА ННК «ІПСА» Національний технічний університет України «Київський політехнічний інститут» м. Київ, Україна

description

Лекція 09. Файлова система NFS. Діденко Дмитро Георгійович Старший викладач кафедри ММСА ННК «ІПСА» Національний технічний університет України «Київський політехнічний інститут» м. Київ, Україна. Питання заняття. Файлова система NFS. 1. Історія розвитку NFS. - PowerPoint PPT Presentation

Transcript of Лекція 09. Файлова система NFS

Page 1: Лекція 09. Файлова система NFS

Діденко Д.Г. © 2010

Лекція 09. Файлова система NFS

Діденко Дмитро ГеоргійовичСтарший викладач кафедри ММСА ННК «ІПСА»

Національний технічний університет України «Київський політехнічний інститут»

м. Київ, Україна

Page 2: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

2

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

Питання заняття

Page 3: Лекція 09. Файлова система 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

Page 4: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

4

• NFS не повинна обмежуватися операційною системою UNIX. Будь-яка операційна система повинна бути здатною реалізувати сервер і клієнт NFS;

• протокол не повинен залежати від будь-яких визначених апаратних засобів;

• повинні бути реалізовані прості механізми відновлення у випадку відмов сервера або клієнта;

• додатки повинні мати прозорий доступ до вилучених файлів без використання спеціальних шляхових імен або бібліотек і без перекомпіляції;

• для UNIX-клієнтів повинна підтримуватися семантика UNIX;• продуктивність NFS повинна бути порівнювана із

продуктивністю локальних дисків;• реалізація повинна бути незалежною від транспортних

засобів.

2. Цілі NFS

Page 5: Лекція 09. Файлова система 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

Page 6: Лекція 09. Файлова система 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

Page 7: Лекція 09. Файлова система 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 (продовження)

Page 8: Лекція 09. Файлова система 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. Доступ клієнта до файлів

Page 9: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

9

Сервер NFS перетворює видiленi заглушкою сервера запити з повiдомлення i перетворює їх у коректнi операцiї з файлами iнтерфейсу VFS.

6. RPC в NFS

Page 10: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

10

7. Архiтектура NFS в UNIX

Page 11: Лекція 09. Файлова система NFS

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

Page 12: Лекція 09. Файлова система 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

Page 13: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

13

Монтування файлiв у чужому файловому просторi iмен у версiї 4 (наприклад, у разi перенесення каталогу) здiйснюється з використанням операцiї lookup знаходження файлу за iменем.

10. Монтування файлiв

Page 14: Лекція 09. Файлова система NFS

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

Page 15: Лекція 09. Файлова система NFS

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

Page 16: Лекція 09. Файлова система NFS

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

Page 17: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

17

Процеси "клiєнт-сервер" NFS з версiї 4 реалiзуються з використанням збереженої iнформацiї про стан розподiленої файлової системи, а також з використанням кешування у невеликих обсягах на клiєнтi для розвантаження сервера. Сервер може призначати оренду кожному файлу, доступ до якого запитує клiєнт. Оренда передбачає надання виняткових прав зчитування i записування у файл пiд час оренди з можливим її продовженням.

14. Процеси в NFS

Page 18: Лекція 09. Файлова система 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. Зворотній виклик

Page 19: Лекція 09. Файлова система NFS

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. Монтування сервером експортованого каталогу

Page 20: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

20

17. Монтування каталогу

Page 21: Лекція 09. Файлова система NFS

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. Дескриптори файлу

Page 22: Лекція 09. Файлова система NFS

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мен

Page 23: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

23

Монтування вiддалених файлових систем (тобто експортованого каталогу) за запитом виконує програма автоматичного монтувальника (automounter) на машинi клiєнта.

20. Монтування вiддалених файлових систем

Page 24: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

24

21. Автоматичний монтувальник для NFS

Page 25: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

25

1. За запитом програмою каталогу /home/alice автоматичний монтувальник шукає каталог.

2. Оскiльки каталогу немає, автоматичний монтувальник створює каталог /home/alice.

3. Автоматичний монтувальник виконує запит до сервера для пошуку /аliсе.

4. Сервер експортує каталог /аliсе, а автоматичний монтувальник монтує його в /home/alice.

22. Створення каталогу

Page 26: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

26

23. Застосування символiчних посилань для монтування

каталогiв

Page 27: Лекція 09. Файлова система NFS

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. Атрибути файлів

Page 28: Лекція 09. Файлова система NFS

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. Рекомендовані атрибути

Page 29: Лекція 09. Файлова система NFS

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

Page 30: Лекція 09. Файлова система 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. Блокування файлів

Page 31: Лекція 09. Файлова система NFS

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 засоби блокування

Page 32: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

32

29. Типи заборон за сумiсним доступом

Тип доступу за

запитом Тип заборони

NON READ WRITE BOTH

READ Успiшно Помилково Успiшно Помилково

WRITE Успiшно Успiшно Помилково Помилково

BOTH Успiшно Помилково Помилково Помилково

Page 33: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

33

Для пiдвищення продуктивностi в NFS v.4 використовують кешування даних з файлу, атрибутiв, дескрипторiв файлової системи на клiєнтську машиину.

30. Кешування в NFS

Page 34: Лекція 09. Файлова система 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 (продовження)

Page 35: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

35

32. Кешування на боцi клiєнта в NFS

Page 36: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

36

Вiдмiну делегування (delegation) реалiзує сервер з використанням механiзму RPC зворотного виклику клiєнтом.

33. Вiдмiна делегування

Page 37: Лекція 09. Файлова система NFS

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в

Page 38: Лекція 09. Файлова система NFS

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

Page 39: Лекція 09. Файлова система 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ї

Page 40: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

40

Система захисту в NFS передбачає контроль доступу до файлiв за допомогою контролю доступу до файлiв i наявностi захищеного каналу взаємодiї.

37. Контроль доступу до файлiв

Page 41: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

41

38. Архiтектура захисту в NFS

Page 42: Лекція 09. Файлова система 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ї

Page 43: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

43

У NFS версiї 4 захист пiдсилено узагальненою схемою захисту RPC SEC_GSS, яка пiдтримує множину механiзмiв захисту.

40. Узагальнена схема захисту RPC SEC_GSS

Page 44: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

44

41. Захищений запит RPC у NFS

Page 45: Лекція 09. Файлова система 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. Методи авторизації

Page 46: Лекція 09. Файлова система NFS

www.simulation.kiev.ua/dis/ Файлова система NFS

Діденко Д.Г. © 2010

46

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

Питання заняття

Page 47: Лекція 09. Файлова система NFS

Діденко Д.Г. © 2010

Питання?

Розподілені інформаційні системи

www.simulation.kiev.ua/dis/