html5-img
1 / 74

Лекція 10. Система CODA та iншi розподiленi файловi системи

Лекція 10. Система CODA та iншi розподiленi файловi системи. Діденко Дмитро Георгійович Старший викладач кафедри ММСА ННК «ІПСА» Національний технічний університет України «Київський політехнічний інститут» м. Київ, Україна. Питання заняття. Система CODA . Система PLAN 9 .

pembroke
Download Presentation

Лекція 10. Система CODA та iншi розподiленi файловi системи

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Питання заняття • Система CODA. • Система PLAN 9. • Файлова система xFS. • Захищена файлова система SFS. Система CODA та iншi розподiленi файловi системи

  3. 1. Система CODA Система CODA та iншi розподiленi файловi системи

  4. 1.1. Історія розвитку CODA Файлову систему CODA розроблено в унiверситетi Карнегi-Мелона CMU (Carnegie Mellon University) наприкiнцi 1987 року й iнтегровано в ОС UNIX, LINUX. У системi забезпечено масштабованiсть i високу доступнiсть користувачiв за рахунок удосконаленої схеми кешування, яка дозволяє клiєнту продовжувати роботу пiсля вiдключення вiд сервера, i прозорiсть вiдмов системи. Прототипом системи є система AFS на 10000 робочих станцiй i має ту ж саму AFS Virtue органiзацiю. Система CODA та iншi розподiленi файловi системи

  5. 1.2. Вузли AFS Вузли AFS подiляють на двi групи: робочi станцiї клiєнтiв Virtue i видiленi файловi сервери Vice з централiзованим адмiнiструванням. Система CODA та iншi розподiленi файловi системи

  6. 1.3. Внутрішня структура станцiї Virtue системи CODA Система CODA та iншi розподiленi файловi системи

  7. 1.4. Прикладний процес Venus Прикладний процес Venus вiдповiдає за надання доступу до файлiв серверiв Vice, а також за продовження виконання операцiй клiєнтами, коли сервери тимчасово недоступнi. Рiвень VFS перехоплює виклики з клiєнтських додаткiв i передає виклик у локальну файлову систему або процесу Venus. Система CODA та iншi розподiленi файловi системи

  8. 1.5. Прикладний процес Venus (продовження) Взаємодiю iз сервером здiйснює спецiальна програма VENUS. Ця програма також пiдтверджує роботу вузла VIRTUE в умовах, коли немає зв'язку iз серверами VICE. Venus спiлкується з Vice через RPC користувацького рiвня, надбудованим над UDP. На боцi сервера є три рiзнi процеси: файловий сервер Vice, сервер автентифiкацiї i процеси вiдновлення для збереження непротисуперечностi метаiнформацiї на кожному iз серверiв Vice. Система CODA та iншi розподiленi файловi системи

  9. 1.6. Операцiї CODA На користувацькому рiвнi пiдтримується бiльшiсть операцiй NFS, але на вiдмiну вiд NFS в CODA є глобальний розподiлений простiр iмен, який пiдтримується серверами Vice. Клiєнти отримують доступ до цього простору через спецiальний вкладений каталог у своєму локальному адресному просторi. Система CODA та iншi розподiленi файловi системи

  10. 1.7. Система RPC2 Система RPC2 складнiша за звичайний RPC. Запити RPC2 реалiзують надiйнi виклики RPC на базi ненадiйного протоколу UDP. Iз кожним викликом RPC код клiєнта RPC2 запускає потiк виконання, який передає запит на сервер i блокується. Сервер регулярно вiдповiдає повiдомленнями про його обробку. Якщо таких повiдомлень не надходить, потiк повертає повiдомлення про помилку в додаток. Система CODA та iншi розподiленi файловi системи

  11. 1.8. Система RPC2 (продовження) Система RPC2 пiдтримує побiчнi ефекти (side effects), пiд якими розумiють взаємодiю клiєнта i сервера з використанням специфiчного протоколу додатка. Сервер i клiєнт установлюють постiйний потiк даних у режимi iзохронного передавання з гарантованою затримкою передавання даних мiж мiнiмальним i максимальним значеннями. Система CODA та iншi розподiленi файловi системи

  12. 1.9. Операції RPC2 Зокрема, RPC2 здiйснює групове розсилання повiдомлень про наявнi кешованi файли в локальнiй файловiй системi VIRTUE. Система RPC2 надбудована над ненадiйним протоколом UDP i виконує всi операцiї для забезпечення надiйного зв'язку. RPC2 запускає потiк виконання, що передає запит на сервер, i блокується. Сервер регулярно повiдомляє про оброблення отриманого запиту. Якщо немає зворотного повiдомлення, робиться висновок про вiдключення сервера. Тодi вузол VIRTUE переходить в автономний режим роботи з керованими файлами, отриманими iз сервера. Система CODA та iншi розподiленi файловi системи

  13. 1.10. Зв’язок між сервером і клієнтом Сервер i клiєнт установлюють постiйний потiк даних у режимi iзохронного передавання даних з гарантованим затриманням у межах мiнiмального i максимального значень. Це дозволяє передавати в реальному часi вiдеоданi з використанням спецiального iнтерфейсу побiчних процесiв, якi реалiзуються додатком. Система CODA та iншi розподiленi файловi системи

  14. 1.11. Паралельні виклики RPC Для паралельних викликiв RPC застосовують систему MultiRPC, яка є частиною RPC2 i прозорою для отримувача. Отримувач сприймає виклик MultiRPC як звичайний RPC з подiбною семантикою. Система CODA та iншi розподiленi файловi системи

  15. 1.12. Процеси в CODA Процеси в CODA чiтко подiляються на клiєнтськi та сервернi. Клiєнтськi реалiзуються за допомогою програми VENUS, а сервернi - за допомогою Vice. Цi типи процесiв органiзовано у виглядi паралельних потокiв в адресному просторi iмен користувача. Для органiзацiї неперервної операцiї за умови блокувальних запитiв уведення-виведення застосовують окремий потiк виконання, який перебирає на себе операцiї виконання багаторiвневих асинхронних операцiй базової ОС. Такий потiк виконання ефективно малює синхронне введення-виведення без блокування процесу в цiлому. Система CODA та iншi розподiленi файловi системи

  16. 1.13. Iменування в CODA Iменування в CODA подiбно до UNIX: файли групуються у модулi (томи - Volumes), яким вiдповiдають певнi дiлянки на диску. Зазвичай том - це колекцiя файлiв, яка належить одному користувачу. Томи можуть монтуватись; монтажною точкою служить кореневий вузол iншого тому. Система CODA та iншi розподiленi файловi системи

  17. 1.14. Повне iм'я файлу Повне iм'я файлу часто мiстить кiлька монтажних точок. Для прозоростi сервер VICE повертає у VENUS iнформацiю про монтування. Це дозволяє VENUS автоматично монтувати томи у просторi iмен клiєнта з використанням рiвня VFS iнтерфейсу локальної файлової системи. Система CODA та iншi розподiленi файловi системи

  18. 1.15. Простір імен Програма VENUS пiдтримує структуру загального простору iмен. Клiєнтам гарантується однаковiсть файлiв сумiсного використання, хоча визначення iмен файлiв грунтується на локальнiй реалiзацiї простору iмен. Система CODA та iншi розподiленi файловi системи

  19. 1.16. Ідентифікатори файлів Файлам вiдповiдають iдентифiкатори файлiв. Iдентифiкатори є унiкальними i пов'язанi зi зберiганням файлiв точно в одному томi. Том може бути реплiковано на кiлькох серверах. Система CODA та iншi розподiленi файловi системи

  20. 1.17. Види томів • Логiчнi томи - передбачають можливiсть реплiкацiї фiзичного тому i мають iдентифiкатор реплiкованого тому RVID (Replicated Volume Idetifier). Iз RVID асоцiює кiлька реплiк; • Фiзичний том - має iдентифiкатор VID (Volume Idettifier) для уточнення конкретної реплiки незалежно вiд її мiсцеперебування. Система CODA та iншi розподiленi файловi системи

  21. 1.18. Пошук по ідентифікатору файлу Кожен файл має 96-бiтний iдентифiкатор файлу, який складається з двох частин: RVID i дескриптора файлу. Перша частина, що складається з 32 бiт, являє собою iдентифiкатор логiчного тому. Для пошуку файлу клiєнт передає RVID у БД реплiкацiї томiв (Volume Replication Databasе), i БД повертає список VID (Volume ID). Вiн вiдповiдає iдентифiкатору RVTD i може мати кiлька значень: VID1, VID2. Система CODA та iншi розподiленi файловi системи

  22. 1.19. Реалiзацiя файлiв у CODA Система CODA та iншi розподiленi файловi системи

  23. 1.20. Приклад пошуку по ідентифікатору файлу Отримавши VID, клiєнт шукає сервер, на якому мiститься робоча реплiка логiчного тому. Пошук здiйснюється надсиланням VID у БД розмiщення томiв VLDB (Volume Location Database), яка повертає поточне мiсцеперебування конкретного фiзичного тому. Система CODA та iншi розподiленi файловi системи

  24. 1.21. Приклад пошуку по ідентифікатору файлу (продовження) Друга частина складається з 64 бiт i є дескриптором, який унiкально iдентифiкує файл у межах тому. Вiн є iдентифiкатором вузла iндексу вiртуальної файлової системи VFS i має назву вiртуального вузла (VNODE) (аналогiчно i-node в UNIX). Система CODA та iншi розподiленi файловi системи

  25. 1.22. Розподiлення файлiв мiж клiєнтами Розподiлення файлiв мiж клiєнтами вiдбувається подiбно до транзакцiї сеансу використання файлу. Якщо клiєнт А вiдкриває або модифiкує файл, то клiєнт В продовжує використовувати стару версiю цього файлу. Вiдкриття, модифiкацiя файлу клiєнтом В не впливає на використання клiєнтом А старої версiї файлу. Система CODA та iншi розподiленi файловi системи

  26. 1.23. Реалiзацiя транзакцiй у разi сумiсного використання файлiв Система CODA та iншi розподiленi файловi системи

  27. 1.24. Транзакції У транзакцiях застосовують поняття роздiлу (partition), пiд яким розумiють частину мережi, iзольованої вiд решти мережi i яка мiстить колекцiю серверiв, клiєнтiв або тих i тих. Iз вiдновленням з роздiлу файлова система перевiряє множину транзакцiй роздiлу. Система CODA та iншi розподiленi файловi системи

  28. 1.25. Блокування За системним одночасним викликом на однiй машинi встановлюється тип сеансу для кожного клiєнта з вiдповiдними встановленнями потрiбних блокувань читання i записування файлу за допомогою процесу VENUS. Семантика розподiлу файлiв виглядає як технологiя двофазного блокування. Система CODA та iншi розподiленi файловi системи

  29. 1.26. Оброблення конфлiктiв У процесi оброблення конфлiктiв мiж роздiлами використовується проста схема версiй файлу. Номер версiї вказує на кiлькiсть разiв унесення змiн у цей файл з моменту створення файлу. Пiсля закiнчення сеансiв роботи з файлами i повернення серверу сервер порiвнює номери версiй. Файл у ходi сеансу оновлюється лише за умови Vnow + 1 = Vclient + Nupdates, де Vnow - поточна версiя файлу; Vclient - номер версiї файлу, отриманий у процессi передавання файлу вiд сервера до клiєнта; Nupdates - кiлькiсть змiн за сеанс, переданих клiєнтом i прийнятих сервером пiсля повторного пiдключення. Система CODA та iншi розподiленi файловi системи

  30. 1.27. Розв'язання конфлiкту Розв'язання конфлiкту перекладається на клiєнта. У випадку незбiжностi версiї сервер вiдхиляє файл, який залишається у клiєнта для його повторного пiдключення. У разi виникнення конфлiкту оновлення файлу в паралельних сеансах вiдмiняється, але версiї зберiгаються клiєнтом для подальшого узгодження. Система CODA та iншi розподiленi файловi системи

  31. 1.28. Кешування i реплiкацiя Кешування i реплiкацiя в CODA забезпечують високу доступнiсть до файлiв. Кешування на клiєнтi полiпшує масштабованiсть i вiдмовостiйкiсть. Сервер фiксує данi про кешування файлу у клiєнта i за допомогою зворотного виклику (callback promise). Пiсля першої змiни файлу клiєнтом за допомогою вiдмiни зворотного виклику (callback break) сервер повiдомляє про некоректнiсть копiї. Вiдкриваючи файл надалi, у наступному сеансi всi клiєнти отримають нову версiю файлу iз сервера. Система CODA та iншi розподiленi файловi системи

  32. 1.29. Реплiкацiя томiв Реплiкацiя томiв для колекцiї серверiв, якi називають групою сховища файлiв VSG (Volume Storage Group), дозволяє клiєнту обмежитись доступними серверами VSG - AVSG (Accessible Volume Storage Group). Якщо AVSG порожня для цього клiєнта, то клiєнт вважається вiд'єднаним (disconnected). Система CODA та iншi розподiленi файловi системи

  33. 1.30. Несуперечність реплiкованого тому Пiдтримання несуперечностi реплiкованого тому здiйснюється протоколом реплiкованого запису, зокрема з використанням варiанта "читаємо раз - пишемо все" ROWA (read one write all). Зi змiною прочитаного файлу в разi закриття файлу клiєнт пересилає його всiм членам AVSG за допомогою паралельного пересилання MultyRPC. Групи AVSG мають версiї, якi описуються вимiром версiї CODA для кожного файлу. Система CODA та iншi розподiленi файловi системи

  34. 1.31. Клiєнти з двома рiзними AVSG одного реплiкованого файлу Система CODA та iншi розподiленi файловi системи

  35. 1.32. Приклад реплікації На початку роботи деякий файл F, що використовується клiєнтами А i В, має вектор (1;1;1) для серверiв S1, S2, S3. За наявностi розриву i в разi змiни файлу F у першiй групi для клiєнта A F набуває вектор (2;2;1), а в другiй групi для клiєнта В - (1;1;2). З усуненням розриву надалi вiдбувається узгодження конфлiкту (версiй файлу) в автоматичному або ручному режимi. Система CODA та iншi розподiленi файловi системи

  36. 1.33. Вiдмовостiйкiсть у CODA Вiдмовостiйкiсть у CODA пiд час роботи клiєнта забезпечується використанням автоматичного режиму з наперед отриманим нагромадженим файлом з тому. Система CODA та iншi розподiленi файловi системи

  37. 1.34. Взаємодiя тому i клiєнта в CODA Система CODA та iншi розподiленi файловi системи

  38. 1.35. Стани клієнта Зазвичай клiєнт перебуває у станi нагромадження, у якому вiн може надсилати запити серверу на файл. Якщо AVSG нульовий (порожнiй), клiєнт переходить у стан емуляцiї з використанням кешованих копiй файлу для тому. Але для iнших томiв AVSG можуть бути не порожнiми. Пiсля вiдновлення зв'язку клiєнт переходить у стан вiдновлення змiн у файлi сервера з узгодженням конфлiкту. Пiд час вiдновлення можливий розрив iз сервером. Механiзмом прiоритетiв користувач визначає iмена важливих для нього файлiв у БД нагромадження (hoard database). Система CODA та iншi розподiленi файловi системи

  39. 1.36. Рiвновага кешу Рiвновага кешу забезпечується виконанням трьох умов: • наявнiстю файлу з найвищим прiоритетом; • заповненням кеша файлами з ненульовими прiоритетами; • пiдтриманням кожного файлу в AVSG. Система CODA та iншi розподiленi файловi системи

  40. 1.37. Пiдвищення вiдмовостiйкостi Для пiдвищення вiдмовостiйкостi додатково застосовують механiзм вiдновленої вiртуальної пам'ятi RVM (Recoverable Virtual Memory) для пiдтримання важливих структур даних. Система CODA та iншi розподiленi файловi системи

  41. 1.38. Захист даних у CODA Захист даних у CODA забезпечується наявнiстю захищених каналiв i використанням захищених викликiв RPC iз застосуванням системної автентифiкацiї. Авторизацiя в серверах VICE виконується для каталогiв, а не для файлiв. Система CODA та iншi розподiленi файловi системи

  42. 2. Система PLAN 9 Система CODA та iншi розподiленi файловi системи

  43. 2.1. Опис системи PLAN 9 У системi PLAN 9 застосовують потужнi сервери з централiзованим керуванням. Доступ до ресурсiв розподiленої системи, зокрема до процесiв й iнтерфейсiв мережi, виконується одноманiтно з використанням операцiй роботи з файлами, подiбними до операцiй UNIX. Кожний сервер має iєрархiчнi простори iмен ресурсiв. Клiєнт може монтувати локально свiй простiр iмен за аналогiєю з NFS на основi локальних просторiв iмен серверiв. Система CODA та iншi розподiленi файловi системи

  44. 2.2. Організація зв'язку Зв'язок здiйснюється за протоколом операцiй з файлами 9Р, який надiйно працює з транспортними протоколами, протоколами дейтаграм IL (Internet Link) i TCP. Мережевi iнтерфейси дають змогу створювати файлову систему, подiбну до UNIX. Система CODA та iншi розподiленi файловi системи

  45. 2.3. Типи серверів Сервери PLAN 9 можуть бути рiзних типiв з власною iєрархiєю iмен. Зокрема, це можуть бути файловi сервери, сервери для роботи з вiкнами (файли для роботи з пристроями "мишки" або екраном). Система CODA та iншi розподiленi файловi системи

  46. 2.4. Органiзацiя системи PLAN 9 Система CODA та iншi розподiленi файловi системи

  47. 2.5. Iменування файлів Iменування в PLAN 9 грунтується на внутрiшньому просторi iмен з локально монтованих вiддалених просторiв iмен. Файл має унiкальний номер, шлях стосовно сервера або пристрою i версiю, яка збiльшиться на одиницю у разi змiни файлу. Клiєнт пiд час монтування повинен знати тип i номер пристрою сервера, за яким створено файлову систему. Клiєнти можуть керувати файлами з використанням спецiального сервера cfs, який запускається автоматично пiд час завантаження машини. Система CODA та iншi розподiленi файловi системи

  48. 2.6. Коректнiсть файлів Коректнiсть забезпечується перевiркою останньої версiї файлу iз сервера. Автентифiкацiя користувачiв у PLAN 9 подiбна до протоколу Нiдхема-Шредера. Система CODA та iншi розподiленi файловi системи

  49. 3. Файлова система xFS Система CODA та iншi розподiленi файловi системи

  50. 3.1. Історія розробки xFS Систему xFS розроблено в унiверситетi Берклi (США) для локальних мереж зi швидкiсними каналами зв'язку. Данi та функцiї керування розподiляються по машинах у xFS за допомогою процесiв: сервера зберiгання (storage server), менеджера метаданих (metadata manager) i клiєнта (client). Система CODA та iншi розподiленi файловi системи

More Related