Розподілена файлова система
Файлова система є одним з ключових компонентів будь-розподіленої системи. У розподіленої системі, як і в централізованій, файлова система призначена для зберігання програм і даних, а також для надання до них доступу в міру потреби.
Розподілена файлова система підтримується одним або більше комп'ютерами. званими файл-серверами. Вони отримують запити на читання / запис файлів від інших машин, які називаються клієнтами. Кожен запит посланий клієнтом перевіряється і виконується сервером, який, потім, відсилає відповідь клієнту.
Як правило, файл-сервери підтримують ієрархічні файлові системи, які має кореневі каталоги, що містять каталоги наступних рівнів. Робоча станція має можливість приєднувати ці файлові системи і монтувати їх до своєї локальної файлової системи. Монтовані файлові системи як були, так і залишаються при цьому на файл-серверах.
Слід розуміти, що файловий сервер відрізняється від файлового сервісу. Останній - це опис функцій, пропонованих користувачам файлової системою. Це опис включає в себе наявні примітиви, а також функції та параметри, які вони виконують. Файловий сервіс, з точки зору своїх користувачів, визначає, з чим можуть працювати користувачі. Але він нічого не повідомляє про те, як реалізована ця файлова система. Файловий сервіс визначає, по суті, клієнтський інтерфейс файлової системи.
А файловий сервер - це зовнішній для користувача процес, який запущений на окремій машині. Він покликаний реалізувати файловий сервіс. Причому система може мати як один файловий сервер так і декілька, хоча в правильно організованій розподіленої системі користувачам не відомо, як реалізована їх файлову систему.
У розподіленої системі користувачі не знають ні кількість файлових серверів, ні їх місце розташування або функції. Вони знають тільки те, що якщо якась процедура визначена в доступному файловому сервісі, то відповідна робота якось виконується, і їм будуть повернуті необхідні результати. Причому, користувачам можна навіть не знати, що цей файловий сервіс надається розподіленою системою. Він повинен виглядати так само, як виглядав би в який-небудь централізованої файлової системи.
Зазвичай файловий сервер є просто призначеним для користувача процесом (іноді - процесом ядра), який виконується на деякій машині. Як вже говорилося, в системі може бути більше одного файлового сервера. Причому вони можуть пропонувати різні файлові сервіси. У розподіленої системі, наприклад, можуть бути сервера, які надають файлові сервіси систем MS-DOS і UNIX, щоб користувальницький процес міг користуватися відповідним для для себе сервісом.
У розподіленої файлової системи (як, втім, і в централізованій) файловий сервіс має дві різні функціональні частини:
- власне файловий сервіс, який визначає операції над окремими файлами. Це операції читання і запису файлів;
- сервіс каталогів, який визначає операції, пов'язані зі створенням і управлінням каталогами, створенням і видаленням файлів і ін.
Файлові сервіси можуть бути розділені на два типи відповідно до того, чи підтримує сервіс модель завантаження-вивантаження даних або ж модель віддаленого доступу. Згідно першої моделі користувачеві пропонуються засоби для читання або запису цілком всього файлу. А модель віддаленого доступу пропонує підтримку набагато більшого числа операцій: відкриття / закриття файлів, читання / запис частин файлів, позиціонування в файлі і т.п.