Знімок файлової системи
Знімок файлової системи, або снапшот чи снепшот (від англ. 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 — баз даних, використовують цю технологію для створення самоузгодженого способу таблиці даних.
Програми
Програмна транзакційна пам'ять — це схема, яка застосовує подібну концепцію для структур даних, що зберігаються в оперативній пам'яті.
Посилання
- Проблематика ; Что такое снапшот?. — В: BrightStor ARCserve Backup: снапшотные технологии : [арх. 15 березня 2012] : [рос.] / Михаил Митрошин // Storage News. — 2005. — № 4 (25). — С. 25-26. — Дата звернення: 03.08.2010.
- Understanding and exploiting snapshot technology for data protection, Part 1: Snapshot technology overview[недоступне посилання] : [арх. 15.03.2012] / Neeta Garimella // IBM developerWorks. — 2006. — 26 April. — Дата звернення: 03.08.2010.
- Storage Basics: Backup Strategies[недоступне посилання] : [арх. 16.04.2008] / Mike Harwood // Enterprise Storage : сайт. — 2003. — 24 September. — Дата звернення: 03.08.2010.