Введение

Записанное состояние компьютерной системы хранения на определенный момент времени.

В компьютерных системах снимок — это состояние системы в определенный момент времени. Термин был придуман по аналогии с фотографией.

Обоснование

Полная резервная копия большого набора данных может занять продолжительное время. В многозадачных или многопользовательских системах во время резервного копирования могут происходить записи в эти данные. Это не позволяет создать атомарную резервную копию и приводит к несогласованности версий, что может вызвать повреждение данных. Например, если пользователь переместит файл в каталог, резервная копия которого уже была создана, этот файл полностью отсутствует на носителе резервной копии, поскольку операция резервного копирования завершилась до добавления файла. Несогласованность версий также может привести к повреждению файлов, размер или содержимое которых изменяются в процессе чтения. Один из способов безопасного резервного копирования активных данных — временно запретить доступ на запись к данным во время резервного копирования, либо остановив приложения, обращающиеся к данным, либо используя API блокировки, предоставляемый операционной системой, для обеспечения эксклюзивного доступа на чтение. Это допустимо для систем с невысокой доступностью (на настольных компьютерах и небольших рабочих серверах, где допустимы регулярные простои). Однако системы с высокой доступностью, работающие круглосуточно и без выходных, не могут допускать перерывов в обслуживании. Чтобы избежать простоев, системы с высокой доступностью могут выполнять резервное копирование на основе снимка — копии набора данных, замороженной в определенный момент времени и доступной только для чтения, — позволяя приложениям продолжать запись данных. Большинство реализаций снимков эффективны и могут создавать снимки за время O(1). Другими словами, время и операции ввода-вывода, необходимые для создания снимка, не увеличиваются с размером набора данных; в отличие от этого, время и операции ввода-вывода, необходимые для прямого резервного копирования, пропорциональны размеру набора данных. В некоторых системах после создания первоначального снимка последующие снимки копируют только измененные данные и используют систему указателей для ссылки на первоначальный снимок. Этот метод создания снимков на основе указателей потребляет меньше дискового пространства, чем при повторном клонировании набора данных.

Управляющие объемом

Некоторые системы Unix имеют логические менеджеры томов, поддерживающие создание снимков. Они реализуют копирование при записи на уровне целых блочных устройств, копируя измененные блоки непосредственно перед их перезаписью в "родительском" томе в другое хранилище, тем самым сохраняя согласованное состояние блочного устройства в прошлом. Файловые системы, размещенные на таких снимках, могут быть смонтированы позднее как если бы они находились на носителе, доступном только для чтения. Некоторые менеджеры томов также позволяют создавать записываемые снимки, расширяя подход копирования при записи путем отделения любых измененных блоков в снимке от их "родительских" блоков в исходном томе. Такую схему также можно описать как выполнение дополнительных операций копирования при записи, инициируемых операциями записи в снимки. В Linux, Logical Volume Manager (LVM) позволяет создавать как снимки только для чтения, так и снимки с возможностью записи. Записываемые снимки были введены с версией LVM 2 (LVM2).

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

Некоторые файловые системы, такие как WAFL, fossil для Plan 9 от Bell Labs и ODS 5, внутренне отслеживают старые версии файлов и предоставляют снимки через специальное пространство имен. Другие, например UFS2, предоставляют API операционной системы для доступа к истории файлов. В NTFS доступ к снимкам обеспечивается службой Volume Shadow Copy (VSS) в Windows XP и Windows Server 2003 и Shadow Copy в Windows Vista. Melio FS предоставляет снимки через тот же интерфейс VSS для совместно используемых хранилищ. Снимки также доступны в файловой системе NSS (Novell Storage Services) на NetWare, начиная с версии 4.11, и более недавно на платформах Linux в продукте Open Enterprise Server. Кластерная платформа хранения Isilon OneFS от EMC реализует единую масштабируемую файловую систему, поддерживающую снимки только для чтения на уровне файлов или каталогов. Любой файл или каталог в файловой системе может быть зафиксирован в виде снимка, и система динамически реализует копирование при записи или моментальный снимок, в зависимости от того, какой метод будет определен как оптимальный для системы. В Linux файловые системы Btrfs и OCFS2 поддерживают создание снимков (клонирование) отдельных файлов. Кроме того, Btrfs также поддерживает создание снимков подтомов. На AIX файловая система JFS2 также поддерживает снимки.