- Snapshot (computer storage)
-
Снимок файловой системы или снапшот — моментальный снимок, копия файлов и директорий файловой системы на определённый момент времени.
Содержание
Описание
Создание резервной копии большого объёма данных может занять длительное время. В многозадачных или многопользовательских системах, во время резервного копирования может происходить запись или изменение файлов и папок, что может привести к неверной резервной копии данных. Например, пользователь перемещает файл из директории, которая ещё не была сохранена в бэкап, в директорию которая уже сохранена. Такой файл может вообще не войти в бэкап. Также, файл предназначенный для резервного копирования может записываться в момент его чтения процедурой бэкапа и может быть сохранён в неверной версии.
Одним из методов безопасного создания бэкапа является запрещение записи в данные, которые подлежат резервному копированию, на время создания резервной копии. Ещё одним методов является остановка всех приложений, которые могут изменять эти данные, или блокировка этих приложений форсированным включением режима только для чтения средствами API операционной системы. Эти методы используются в системах низкой доступности (домашние компьютеры, сервера небольших рабочих групп, для которых регулярная недоступность (downtime) позволительна). В системах высокой доступности 24/7 эти методы применять нельзя, так как это может повлечь отказ в обслуживании сервисов.
Для избежания недоступности (downtime), системы высокой доступности могут, вместо прямого резервного копирования сначала создать снапшот-ную, только для чтения, копию информации, заморожённой в определенный момент времени. А затем, позволив приложениям продолжить обновлять данные, создавать бэкап. Большинство реализаций снапшотов эффективны, они создают снапшот за O(1). Другими словами, время и количество операций ввода-вывода необходимое для создания снапшота не увеличивается с ростом объёма данных, в то время, как те же параметры для создания прямого бэкапа пропорциональны размеру сохраняемых данных.
Снапшоты для чтения-записи иногда приводят к ветвлению снапшотов, так как они неявно создают различные версии своих данных. Помимо резервного копирования и восстановления данных, снапшоты часто используются в виртуализации, в различных песочницах и в виртуальном хостинге, благодаря их эффективности в ведении изменений большого набора данных.
Реализация
Управление томами
Некоторые Unix системы (включая HP-UX) обладают менеджером логического раздела, в котором реализована поддержка снапшотов. Эта реализация копии-на-записи на целых блоковых устройствах путем копирования измененных блоков, до того, как они будут перезаписаны, в другое место, сохраняет целостность снапшота на блоковом устройстве. Файловые системы на этом снапшоте могут быть позднее подключены только в режиме чтения. Снапшоты блокового уровня почти всегда менее эффективно используют место, чем снапшоты в файловых системах которые их поддерживают.
Файловые системы
Некоторые файловые системы, такие как WAFL, fossil для Plan 9 from Bell Labs или ODS-5, внутренне отслеживают старые версии файлов и делают снапшоты доступными через специальное пространство имен. Другие, например UFS2, предоставляют для операционной системы API для доступа к своей истории файлов. В Windows XP и Winodws 2003, и через Shadow Copy в Windows Vista. Снапшоты также доступны в NSS (Novell Storage Services) файловой системы для Netware, начиная с версии 4.11, и более новых на Open Enterprise Server (OES).
ZFS имеет гибридную реализацию, которая отслеживает чтение-запись снапшотов на блоковом уровне, но создает разветвленные наборы файлов известные пользовательским приложениям как «клоны».
В базах данных
Спецификация изоляции транзакций. На самом высоком уровне — сериализационном, снапшот создается при старте каждой транзакции. Утилиты для бэкапа большинства популярных SQL баз данных используют эту технологию для создания самосогласованного образа таблицы данных.
Другие приложения
Программная транзакционная память это схема, которая применяет туже концепцию для структуры данных, хранящейся только в оперативной памяти.
Смотри также
Внешние ссылки
- Митрошин, Михаил Проблематика - что такое снапшот? (2005).
- Garimella, Neeta Understanding and exploiting snapshot technology for data protection, Part 1: Snapshot technology overview (2006-04-26).
- Harwood, Mike Storage Basics: Backup Strategies (2003-09-24).
Wikimedia Foundation. 2010.