Теневая копия

Теневая копия — технология, включённая в Microsoft Windows, позволяющая создавать резервные копии или снимки файлов или томов, даже если они используются. Она реализована как служба Windows под названием «Volume Shadow Copy», а также включает программную службу-провайдера VSS для использования приложениями Windows. Для создания и хранения теневых копий требуется файловая система NTFS или ReFS. Теневые копии могут создаваться на локальных и внешних (съёмных или сетевых) томах любой компонентой Windows, использующей данную технологию, например, при создании запланированного резервного копирования Windows или автоматической точки восстановления системы.

Что важно знать
Теневая копия
Тип службы Windows
Разработчик Microsoft
Операционная система Microsoft Windows
vssadmin
Тип командная строка
Разработчик Microsoft
Операционная система Microsoft Windows
Последняя версия 1.1
Лицензия коммерческое ПО
Сайт docs.microsoft.com/en-us…
diskshadow
Тип командная строка
Разработчик Microsoft
Операционная система Microsoft Windows
Лицензия коммерческое ПО
Сайт docs.microsoft.com/en-us…

Обзор

Volume Shadow Copy Service (VSS) работает на уровне блоков томов.

Снимок (snapshot) — это только для чтения копия состояния тома на определённый момент времени. Снимки позволяют создавать согласованные резервные копии тома, обеспечивая неизменность содержимого во время копирования и отсутствие блокировок файлов.

Ключевой компонент теневого копирования — служба Volume Shadow Copy, инициирующая и контролирующая процесс создания снимков. Компоненты, которые выполняют передачу данных, называются «провайдерами». Windows включает системного провайдера по умолчанию, однако сторонние производители могут разрабатывать программные и аппаратные провайдеры и регистрировать их в VSS. На генерацию снимка каждому провайдеру отводится максимум 10 секунд[1].

В создании снимка участвуют и «райтеры» (writers), задача которых — обеспечение согласованности данных. Иногда для целостности недостаточно просто завершить все ожидающие изменения файлов; например, при переносе данных между файлами база данных должна вести связанные действия, и снимок не должен попадать между удалением из исходного файла и добавлением в целевой. Поддержание подобной семантической согласованности — задача райтеров, которые специфичны для приложений и имеют 60 секунд на подготовку данных для резервного копирования. Если служба не получает подтверждения успешного завершения в этот промежуток, операция отменяется[1].

По умолчанию снимки временные и не сохраняются после перезагрузки. Возможность создания постоянных снимков была добавлена начиная с Windows Server 2003. В Windows 8 графический интерфейс для просмотра снимков был удалён, но позднее восстановлен в последующих версиях (см. раздел «История»).

Среди служб и программ Windows с поддержкой VSS — кластер отказоустойчивости Windows[2], Windows Server Backup[3], Hyper-V[4], Virtual Server[5], Active Directory[6], SQL Server[7], Exchange Server[8] и SharePoint[9].

В результате работа системы напоминает файловую систему с управлением версиями, позволяя восстановить любой файл в состоянии, в котором он находился на момент создания определённого снимка. Однако, в отличие от таких файловых систем, пользователь не может создавать отдельные версии отдельных файлов — только всего тома целиком, и только администратор или оператор резервного копирования может создавать новые снимки, так как это требует контроля над целым томом. Кроме того, многие версиионные файловые системы (например, в VMS) сохраняют новую версию при каждом изменении файла, а системы на основе снимков (как в Windows) фиксируют состояние лишь периодически.

История

Windows XP и Server 2003

Служба «Volume Snapshot Service» была впервые добавлена в Windows XP. Она могла создавать только временные снимки, используемые для доступа к актуальной версии файлов, открытых для редактирования (и поэтому заблокированных). Эта версия VSS используется в NTBackup.

Возможность создания постоянных снимков, сохраняющихся между перезагрузками и требующих явного удаления, появилась в Windows Server 2003, где можно хранить до 512 снимков одного тома. В Windows Server 2003 VSS позволяет создавать инкрементные периодические снимки данных изменённых файлов. На сервере хранится максимум 64 снимков, которые доступны клиентам по сети. Данная функция («Shadow Copies for Shared Folders») предназначена для клиент-серверного режима[10]. Клиентский компонент включён в Windows XP SP2 и новее, а также доступен для установки на Windows 2000 SP3 и новее, а также Windows XP RTM или SP1[11].

Windows XP[12] и более поздние версии включают утилиту командной строки vssadmin, позволяющую перечислять, создавать или удалять теневые копии томов, а также просматривать установленные райтеры и провайдеры[13].

Windows Vista, 7 и Server 2008

Компания Microsoft обновила многочисленные компоненты Windows для использования теневого копирования. Архивация и восстановление в Windows Vista, Windows Server 2008, Windows 7 и Windows Server 2008 R2 используют теневые копии файлов как для файлового, так и секторного архивирования. Компонент System Protection применяет VSS для создания и поддержания периодических копий системных и пользовательских данных на том же локальном диске (по аналогии с Shadow Copies for Shared Folders в серверном выпуске); VSS предоставляет доступ к этим данным через Восстановление системы.

Восстановление системы позволяет откатывать систему к целому набору теневых копий, называемому «точка восстановления»[14][15]. До Windows Vista Восстановление системы использовало фильтр по расширениям файлов и копировало их перед перезаписью[16][17][18]. Кроме того, компонент Проводника Windows «Предыдущие версии» позволяет восстанавливать отдельные файлы или папки на момент создания снимка, а также восстанавливать случайно удалённые файлы.

Наконец, Windows Server 2008 представила утилиту diskshadow, предоставляющую доступ к функциям VSS посредством 20 различных команд[19].

Система автоматически создаёт теневые копии раз в сутки, либо по требованию утилитой архивации/инсталляторами при создании точки восстановления[20][21]. Функция «Предыдущие версии» доступна в выпусках Business, Enterprise и Ultimate Windows Vista[22] и во всех редакциях Windows 7. Домашние версии Vista не содержат эту функцию, хотя служба Volume Shadow Copy работает. Используя сторонние утилиты, восстановление прошлых версий файлов возможно и на локальном томе[23]. Некоторые инструменты также позволяют планировать снимки по произвольному расписанию, настраивать выделяемое пространство и сравнивать файлы, каталоги в разные моменты по снимкам[24]. В Windows 7 добавлена возможность через графический интерфейс настраивать выделенное для снимков пространство.

Windows 8 и Server 2012

Хотя Windows 8 поддерживает постоянные снимки, интерфейс для просмотра локальных «предыдущих версий» был удалён; таким образом, возможности просмотра, поиска и восстановления прежних версий файлов через вкладку «Предыдущие версии» в свойствах были убраны для локальных томов. При помощи сторонних утилит (например ShadowExplorer) эти функции можно частично восстановить. В Windows Server 2012 данная возможность полностью поддерживается[25].

Windows 10

В Windows 10 вкладка «Предыдущие версии», ранее удалённая в Windows 8, была восстановлена; в первых выпусках она работала через историю файлов, а не через теневое копирование. Современные сборки также позволяют восстанавливать из точек истории файлов и точек восстановления системы с использованием Volume Shadow Copy[26].

Windows 11

В Windows 11 сохраняется функциональность Previous Versions и File History, как в Windows 10, однако по умолчанию они отключены[27].

Samba Server

Samba на Linux может предоставлять службу теневого копирования на хранилищах с LVM, ZFS или btrfs[28][29][30].

Платформы и совместимость

Различные версии NTFS обеспечивают определённую степень совместимости вперёд и назад, однако при монтировании новых NTFS-томов с постоянными теневыми копиями в более старых версиях Windows могут возникнуть проблемы — это касается систем с двойной загрузкой и внешних накопителей. Например, постоянные снимки, созданные в Windows Vista на NTFS-томе, будут удалены при подключении этого тома в Windows XP или Windows Server 2003, так как эти системы не поддерживают формат снимков Vista[31]. Аналогично, снимки восстановления системы в Windows 8 будут удалены, если этот раздел загрузится более старой системой[32].

Примечания

Литература