Знімок файлової системи

Знімок файлової системи, або снапшот чи снепшот (від англ. snapshot — миттєвий знімок) — моментальний знімок, копія файлів і каталогів файлової системи на певний момент часу.

Опис

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

Одним з методів безпечного створення резервної копії є заборона запису дані, які підлягають резервному копіюванню, на час створення резервної копії. Ще одним з методів є зупинка всіх додатків, які можуть змінювати ці дані, або блокування цих додатків форсованим включенням режиму тільки для читання засобами інтерфейсу програмування додатків (API) операційної системи (ОС). Ці методи використовуються в системах низької доступності (домашні комп'ютери, сервери невеликих робочих груп, для яких регулярна недоступність (downtime) дозволена). У системах високої доступності 24/7 ці методи застосовувати не можна, оскільки це може спричинити відмову в обслуговуванні сервісів.

Для уникнення недоступності (downtime) системи високої доступності можна замість прямого резервного копіювання спочатку створити снапшот — копію інформації тільки для читання, «заморожену» в певний момент часу. А потім, дозволивши додаткам продовжити оновлювати дані, створювати резервну копію. Більшість реалізацій снапшотов ефективно, вони створюють снапшот за O(1). Іншими словами, час і кількість операцій вводу-виводу, необхідний для створення снапшота, не збільшується зі зростанням обсягу даних, в той час, як ті ж параметри для створення прямої резервної копії пропорційні розміру збережених даних.

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

Реалізація

Управління томами

Деякі операційні системи сімейства UNIX, наприклад, HP-UX, а також Linux мають у своєму складі менеджер логічного розділу, в якому реалізована підтримка снапшотів. Ця реалізація копіювання при записуванні на цілих блочних пристроях, шляхом копіювання змінених блоків до того, як вони будуть перезаписані, в інше місце, зберігає цілісність снапшота на блоковому пристрої. Файлові системи на цьому снапшоті можуть бути пізніше підключені лише в режимі читання. Снапшоти блокового рівня майже завжди менш ефективно використовують місце, ніж снапшоти у файлових системах, які їх підтримують.

Файлові системи

Деякі файлові системи, такі як WAFL, fossil для Plan 9 або ODS-5, внутрішньо відстежують старі версії файлів і роблять снапшоти доступними через спеціальний простір імен. Інші, наприклад UFS2, надають для операційної системи API, для доступу до своєї історії файлів. В NTFS доступ до снапшотів надається через Volume Shadow Copy (VSS) в Windows XP та Windows Server 2003, і через Shadow Copy в Windows Vista. Снапшоти також доступні в Novell Storage Services (NSS) — файлової системи для Netware, починаючи з версії 4.11 і більше нових, на Linux-платформах в продуктах Open Enterprise Server (OES).

ZFS має гібридну реалізацію, яка відстежує читання-запис снапшотів на блочному рівні, але створює розгалужені набори файлів, відомі користувацьким додаткам як «клони».

Бази даних

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

Програми

Програмна транзакційна пам'ять — це схема, яка застосовує подібну концепцію для структур даних, що зберігаються в оперативній пам'яті.

Див. також

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.