Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_Шеховцов_1.docx
Скачиваний:
73
Добавлен:
09.11.2019
Размер:
14.73 Mб
Скачать

20.3. Розподілені файлові системи

Розподілена файлова система (РФС) дає можливість застосуванням звертатися до файлів, що перебувають на диску віддаленого комп'ютера. Загалом до таких систем можна віднести будь-які засоби доступу до віддалених файлів; наприклад, HTTP фактично можна розглядати як базовий протокол для реалізації РФС.

У цьому розділі обмежимося розглядом РФС, які володіють властивістю про­зорості доступу. Під час роботи із такою системою з усіма файлами (локальні во­ни чи віддалені) працюють однаково, особливості реалізації віддаленого доступу обробляють на рівні файлової системи. Фактично розподілена файлова система із прозорістю доступу приховує від користувача наявність мережі.

20.3.1. Організація розподілених файлових систем

Цей розділ присвячено опису загальних особливостей організації РФС.

Керування іменами в РФС

Є два основні підходи до реалізації керування іменами в розподілених файлових системах із прозорістю доступу. Основні відмінності між ними полягають у ви­гляді файлової системи віддаленого комп'ютера на комп'ютері-клієнті.

Перший підхід ґрунтується на тому, що відображення файлової системи для різних клієнтів може виглядати по-різному. Так відбувається у разі віддаленого монтування файлових систем. У цьому разі перед використанням віддаленої фай­лової системи її потрібно змонтувати у підкаталог файлової системи клієнта. Різні клієнти можуть монтувати ту саму систему в різні каталоги. Такий підхід реалі­зувати досить просто (немає потреби відстежувати, яким чином різні клієнти от­римують доступ до файлів), але керування системою стає складнішим (у файло­вій системі клієнта виявляються «перемішаними» локальні та віддалені каталоги, до одного й того самого файла звертаються із використанням різних шляхів тощо).

У разі реалізації другого підходу файлова система визначає єдиний простір імен, що матиме однаковий вигляд для всіх її клієнтів. Таке єдине відображення дає змогу спростити використання системи. Цей підхід складніший у реалізації, але є найбільш зручним для користувачів.

Важливою додатковою властивістю, що може бути реалізована у РФС, є неза­лежність від місця розташування (location independence). Якщо її підтримують, шлях до файла залишається незмінним у разі його фізичного переміщення (на­приклад, з одного сервера на інший). Ця властивість доволі складна в реалізації і рідко підтримується в сучасних РФС.

Реалізація віддаленого доступу до файлів

Припустимо, що клієнт звернувся до віддаленого файла, а засоби керування іме­нами дали змогу знайти його фізичне місце розташування. Після цього необхідно звернутися мережею до віддаленого файла, обробити його і повернути результат клієнтові. Розглянемо підходи до реалізації такого віддаленого доступу до файла.

Найпростішим підходом є передавання кожного запиту на сервер у вигляді окремого віддаленого виклику процедури. При цьому жодного кешування даних не роблять, кожний запит вимагає передавання даних мережею. Це віддалене обслуговування (remote service). Основними його перевагами є простота реаліза­ції та відсутність суперечностей (всі дані негайно зберігаються на диску сервера), а головним недоліком — низька продуктивність, оскільки кожна файлова опера­ція вимагає пересилання даних мережею та звертання до диска на сервері.

Для підвищення продуктивності використовують кешування даних. У даному випадку локальні кеші розташовані на клієнтах (звичайно в їхній основній пам'яті), а основною копією даних є копія даних на сервері. При цьому головною проблемою, як і для багатопроцесорних систем, є необхідність підтримки когерентності ло­кальних кешів.

Наведемо два способи підтримки погодженості даних у локальних кешах.

Перший зводиться до того, що в разі будь-якої зміни даних в одному із кешів їх негайно записують на диск відповідно до методу віддаленого обслуговування, при цьому очищують усі інші кеші. Фактично так реалізований кеш із наскрізним записом (див. пункт 12.3.2). Операції читання даних продовжують обслуговувати із кеша.

Другим способом є використання сеансової семантики (session semantics). При цьому всі зміни, які вносять у файл після його відкриття клієнтським процесом (упродовж сеансу роботи клієнта із цим файлом), будуть доступні тільки цьому процесові. Після закриття файла його змінену копію пересилають на сервер, і во­на стає доступною іншим клієнтським процесам.