Снимок файловой системы
Снимок файловой системы, или снапшот, или снепшот (от англ. snapshot — мгновенный снимок) — моментальный снимок, копия файлов и каталогов файловой системы на определённый момент времени.
Описание
Создание резервной копии большого объёма данных может занять длительное время. В многозадачных или многопользовательских системах во время резервного копирования может происходить запись или изменение файлов и каталогов, что может привести к неверной резервной копии данных. Например, пользователь перемещает файл из каталога, который ещё не был сохранён при резервном копировании (в резервную копию — бэкап), в каталог, который уже сохранён. Такой файл может вообще не войти в резервную копию. Также, файл, предназначенный для резервного копирования, может записываться в момент его чтения процедурой резервного копирования и может быть сохранён в неверной версии.
Одним из методов безопасного создания резервной копии является запрещение записи в данные, которые подлежат резервному копированию, на время создания резервной копии. Ещё одним из методов является остановка всех приложений, которые могут изменять эти данные, или блокировка этих приложений форсированным включением режима только для чтения средствами интерфейса программирования приложений (API) операционной системы (ОС). Эти методы используются в системах низкой доступности (домашние компьютеры, серверы небольших рабочих групп, для которых регулярная недоступность (downtime) позволительна). В системах высокой доступности 24/7 эти методы применять нельзя, так как это может повлечь отказ в обслуживании сервисов.
Для избежания недоступности (downtime) системы высокой доступности могут вместо прямого резервного копирования сначала создать снапшот — копию информации только для чтения, «замороженную» в определённый момент времени. А затем, позволив приложениям продолжить обновлять данные, создавать резервную копию. Большинство реализаций снапшотов эффективно, они создают снапшот за O(1). Другими словами, время и количество операций ввода-вывода, необходимое для создания снапшота, не увеличивается с ростом объёма данных, в то время, как те же параметры для создания прямой резервной копии пропорциональны размеру сохраняемых данных.
Снапшоты для чтения-записи иногда приводят к ветвлению снапшотов, так как они неявно создают различные версии своих данных. Помимо резервного копирования и восстановления данных, снапшоты часто используются в виртуализации, в различных песочницах и в виртуальном хостинге благодаря их эффективности в ведении изменений большого набора данных.
Различия между Backup и Snapshot[1]
backup | снапшот |
---|---|
используется для сохранения любых видов данных — файлов, папок, кода, системы, разделов диска | используется в работе с виртуальными машинами, фиксирует только текущее состояние |
сохраняется на сторонний носитель | сохраняется рядом с исходными данными |
требует много ресурсов и времени, замедляет процессы системы | делается за пару секунд, минимально влияет на работу системы |
делается только на включенной аппаратуре | можно делать, если машина выключена |
может храниться длительное время | хранится недолго и автоматически удаляется |
имеет большой размер | компактный и лёгкий |
одна версия сохраняется в нескольких экземплярах на разных носителях | на основном диске могут сохраняться несколько снапшотов, выстроенных в хронологическую цепочку |
Реализация
Управление томами
Некоторые операционные системы из семейства 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 — баз данных используют эту технологию для создания самосогласованного образа таблицы данных.
Другие приложения
Программная транзакционная память — это схема, которая применяет сходную концепцию для структур данных, хранящихся в оперативной памяти.
См. также
Примечания
- Снапшоти: как работают, для чего нужны и чем снапшот отличается от бекапа . cityhost.ua. Дата обращения: 29 сентября 2021.
Ссылки
- Михаил Митрошин. Проблематика, Что такое снапшот?/ BrightStor ARCserve Backup - снапшотные технологии . Storage News (№ 4 (25) 2005). Дата обращения: 3 августа 2010. Архивировано 15 марта 2012 года.
- Neeta Garimella. Understanding and exploiting snapshot technology for data protection, Part 1: Snapshot technology overview . IBM (26.04.2006). Дата обращения: 3 августа 2010. Архивировано 15 марта 2012 года.
- Mike Harwood. Storage Basics: Backup Strategies (недоступная ссылка). Storage (24.09.2003). Дата обращения: 3 августа 2010. Архивировано 16 апреля 2008 года.