740 likes | 940 Views
Лекція 10. Система CODA та iншi розподiленi файловi системи. Діденко Дмитро Георгійович Старший викладач кафедри ММСА ННК «ІПСА» Національний технічний університет України «Київський політехнічний інститут» м. Київ, Україна. Питання заняття. Система CODA . Система PLAN 9 .
E N D
Лекція 10. Система CODA та iншi розподiленi файловi системи Діденко Дмитро Георгійович Старший викладач кафедри ММСА ННК «ІПСА» Національний технічний університет України «Київський політехнічний інститут» м. Київ, Україна
Питання заняття • Система CODA. • Система PLAN 9. • Файлова система xFS. • Захищена файлова система SFS. Система CODA та iншi розподiленi файловi системи
1. Система CODA Система CODA та iншi розподiленi файловi системи
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 системи
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 системи
1.3. Внутрішня структура станцiї Virtue системи CODA Система CODA та iншi розподiленi файловi системи
1.4. Прикладний процес Venus Прикладний процес Venus вiдповiдає за надання доступу до файлiв серверiв Vice, а також за продовження виконання операцiй клiєнтами, коли сервери тимчасово недоступнi. Рiвень VFS перехоплює виклики з клiєнтських додаткiв i передає виклик у локальну файлову систему або процесу Venus. Система CODA та iншi розподiленi файловi системи
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 системи
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 системи
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 системи
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 системи
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 системи
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 системи
1.11. Паралельні виклики RPC Для паралельних викликiв RPC застосовують систему MultiRPC, яка є частиною RPC2 i прозорою для отримувача. Отримувач сприймає виклик MultiRPC як звичайний RPC з подiбною семантикою. Система CODA та iншi розподiленi файловi системи
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 системи
1.13. Iменування в CODA Iменування в CODA подiбно до UNIX: файли групуються у модулi (томи - Volumes), яким вiдповiдають певнi дiлянки на диску. Зазвичай том - це колекцiя файлiв, яка належить одному користувачу. Томи можуть монтуватись; монтажною точкою служить кореневий вузол iншого тому. Система CODA та iншi розподiленi файловi системи
1.14. Повне iм'я файлу Повне iм'я файлу часто мiстить кiлька монтажних точок. Для прозоростi сервер VICE повертає у VENUS iнформацiю про монтування. Це дозволяє VENUS автоматично монтувати томи у просторi iмен клiєнта з використанням рiвня VFS iнтерфейсу локальної файлової системи. Система CODA та iншi розподiленi файловi системи
1.15. Простір імен Програма VENUS пiдтримує структуру загального простору iмен. Клiєнтам гарантується однаковiсть файлiв сумiсного використання, хоча визначення iмен файлiв грунтується на локальнiй реалiзацiї простору iмен. Система CODA та iншi розподiленi файловi системи
1.16. Ідентифікатори файлів Файлам вiдповiдають iдентифiкатори файлiв. Iдентифiкатори є унiкальними i пов'язанi зi зберiганням файлiв точно в одному томi. Том може бути реплiковано на кiлькох серверах. Система CODA та iншi розподiленi файловi системи
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 системи
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 системи
1.19. Реалiзацiя файлiв у CODA Система CODA та iншi розподiленi файловi системи
1.20. Приклад пошуку по ідентифікатору файлу Отримавши VID, клiєнт шукає сервер, на якому мiститься робоча реплiка логiчного тому. Пошук здiйснюється надсиланням VID у БД розмiщення томiв VLDB (Volume Location Database), яка повертає поточне мiсцеперебування конкретного фiзичного тому. Система CODA та iншi розподiленi файловi системи
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 системи
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 системи
1.23. Реалiзацiя транзакцiй у разi сумiсного використання файлiв Система CODA та iншi розподiленi файловi системи
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 системи
1.25. Блокування За системним одночасним викликом на однiй машинi встановлюється тип сеансу для кожного клiєнта з вiдповiдними встановленнями потрiбних блокувань читання i записування файлу за допомогою процесу VENUS. Семантика розподiлу файлiв виглядає як технологiя двофазного блокування. Система CODA та iншi розподiленi файловi системи
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 системи
1.27. Розв'язання конфлiкту Розв'язання конфлiкту перекладається на клiєнта. У випадку незбiжностi версiї сервер вiдхиляє файл, який залишається у клiєнта для його повторного пiдключення. У разi виникнення конфлiкту оновлення файлу в паралельних сеансах вiдмiняється, але версiї зберiгаються клiєнтом для подальшого узгодження. Система CODA та iншi розподiленi файловi системи
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 системи
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 системи
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 системи
1.31. Клiєнти з двома рiзними AVSG одного реплiкованого файлу Система CODA та iншi розподiленi файловi системи
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 системи
1.33. Вiдмовостiйкiсть у CODA Вiдмовостiйкiсть у CODA пiд час роботи клiєнта забезпечується використанням автоматичного режиму з наперед отриманим нагромадженим файлом з тому. Система CODA та iншi розподiленi файловi системи
1.34. Взаємодiя тому i клiєнта в CODA Система CODA та iншi розподiленi файловi системи
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 системи
1.36. Рiвновага кешу Рiвновага кешу забезпечується виконанням трьох умов: • наявнiстю файлу з найвищим прiоритетом; • заповненням кеша файлами з ненульовими прiоритетами; • пiдтриманням кожного файлу в AVSG. Система CODA та iншi розподiленi файловi системи
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 системи
1.38. Захист даних у CODA Захист даних у CODA забезпечується наявнiстю захищених каналiв i використанням захищених викликiв RPC iз застосуванням системної автентифiкацiї. Авторизацiя в серверах VICE виконується для каталогiв, а не для файлiв. Система CODA та iншi розподiленi файловi системи
2. Система PLAN 9 Система CODA та iншi розподiленi файловi системи
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 системи
2.2. Організація зв'язку Зв'язок здiйснюється за протоколом операцiй з файлами 9Р, який надiйно працює з транспортними протоколами, протоколами дейтаграм IL (Internet Link) i TCP. Мережевi iнтерфейси дають змогу створювати файлову систему, подiбну до UNIX. Система CODA та iншi розподiленi файловi системи
2.3. Типи серверів Сервери PLAN 9 можуть бути рiзних типiв з власною iєрархiєю iмен. Зокрема, це можуть бути файловi сервери, сервери для роботи з вiкнами (файли для роботи з пристроями "мишки" або екраном). Система CODA та iншi розподiленi файловi системи
2.4. Органiзацiя системи PLAN 9 Система CODA та iншi розподiленi файловi системи
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 системи
2.6. Коректнiсть файлів Коректнiсть забезпечується перевiркою останньої версiї файлу iз сервера. Автентифiкацiя користувачiв у PLAN 9 подiбна до протоколу Нiдхема-Шредера. Система CODA та iншi розподiленi файловi системи
3. Файлова система xFS Система CODA та iншi розподiленi файловi системи
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 системи