Снимок (хранилище компьютера)


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

Полное резервное копирование большого набора данных может занять много времени. В многозадачных или многопользовательских системах может происходить запись этих данных во время резервного копирования. Это предотвращает атомарность резервной копии и приводит к перекосу версий , что может привести к повреждению данных . Например, если пользователь перемещает файл в каталог, для которого уже была создана резервная копия, этот файл будет полностью отсутствовать на носителе резервной копии , поскольку операция резервного копирования уже была выполнена до добавления файла. Перекос версии также может привести к повреждению файлов, которые изменяют свой размер или содержимое во время чтения.

Одним из подходов к безопасному резервному копированию оперативных данных является временное отключение доступа для записи к данным во время резервного копирования либо путем прекращения доступа к приложениям, либо с помощью API -интерфейса блокировки , предоставляемого операционной системой, для обеспечения монопольного доступа для чтения. Это терпимо для систем с низкой доступностью (на настольных компьютерах и серверах небольших рабочих групп, на которых допустимы регулярные простои ). Однако системы с высокой доступностью , работающие круглосуточно и без выходных , не выдерживают перебоев в обслуживании.

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

В некоторых системах Unix есть менеджеры логических томов , поддерживающие создание моментальных снимков . Они реализуют копирование при записи на целых блочных устройствах путем копирования измененных блоков‍ — «непосредственно перед тем, как они должны быть перезаписаны в «родительских» томах» — в другое хранилище, таким образом сохраняя самосогласованный прошлый образ блочного устройства. Файловые системы на таких моментальных снимках впоследствии могут быть смонтированы, как если бы они были на носителе только для чтения.

Некоторые диспетчеры томов также позволяют создавать моментальные снимки с возможностью записи , расширяя подход копирования при записи, отвязывая любые блоки, измененные в моментальном снимке, от их «родительских» блоков в исходном томе. Такую схему также можно описать как выполнение дополнительных операций копирования при записи, запускаемых записью в моментальные снимки.


Пример моментальных снимков файловой системы Btrfs , управляемой с помощью snapper