Просмотр теневых копий windows 10 cmd

This guide shows you how to use the Volume Shadow Copy Administrative Command-line tool or Vssadmin to effectively manage the VSS.

Download PC Repair Tool to quickly find & fix Windows errors automatically

Microsoft Windows systems create snapshots or backup copies of files on your hard drive even when you use them. The technology used to implement this is called the Volume Shadow Copy Service (VSS). You can use the Volume Shadow Copy Administrative Command-line tool or Vssadmin for managing the VSS.

It has a library of associated commands for listing shadow copy writers and providers, creating and deleting VSS associations and copies, as well as resizing VSS associations. This post shows you how to effectively make use of these commands.

VSS components

Before delving into how to manage VSS using Vssadmin, we’ll first have a look at the various components of the Volume Shadow Copy Service (VSS). Thanks to the use of shadow copies or snapshots, these components let you perform crucial operations, such as backing up your server in a way that doesn’t affect logged-in users or running programs.

Let’s explore the various VSS components and the tasks they perform on your server.

1] VSS requester

Examples of VSS requesters include the System Center Data Protection Manager and the Windows Server Backup program. The primary function of these components is to request for the VSS to take a shadow copy.

2] VSS writer

Windows Servers can have several VSS writers. These are components that the application software provides to ensure that the data is set for creating shadow copies. Some examples of VSS writers include the following:

  • WMI Writer
  • Registry Writer
  • Hyper-V
  • Exchange Server
  • Performance Counter Writer
  • NTDS Writer
  • System Writer
  • DHCP Jet Writer
  • SQL Server
  • Active Directory System Service
  • ASR Writer
  • WINS Jet Writer
  • Certificate Authority Writer

… etcetera.

3] Storage volume

A storage volume is a crucial component of the VSS that holds the data that you are about to copy.

4] VSS provider

VSS providers are included in storage arrays provided by hardware vendors. They create and manage shadow copies. Some examples of VSS providers are the Microsoft Software Copy provider and the Microsoft File Share Shadow Copy provider.

5] Source volume

A source volume is where the system keeps the shadow copy storage files that the VSS provider uses.

Now that you know the VSS components, let’s take a look at how they work. Here, I’ll give an overview of the Vssadmin commands and how you can use them to manage the VSS.

To manage VSS using the Vssadmin command-line tool, you first need to log in to the server as an administrator. When you’re in, launch Command Prompt with administrative privileges. Search for Command Prompt, right-click it, and choose Run as Administrator.

When in the elevated Command Prompt, below are the commands for managing VSS. To run any, type it out and press ENTER.

Command Usage
Vssadmin add shadowstorage Adds a volume shadow copy storage association
Vssadmin create shadow Creates a new volume shadow copy
Vssadmin delete shadows Deletes volume shadow copies
Vssadmin delete shadowstorage Deletes volume shadow copy storage associations
Vssadmin list providers Lists registered volume shadow copy providers
Vssadmin list shadows Lists existing volume shadow copies
Vssadmin list shadowstorage Lists all shadow copy storage associations on the system
Vssadmin list volumes Lists volumes that are eligible for shadow copies
Vssadmin list writers Lists all subscribed volume shadow copy writers on the system
Vssadmin resize shadowstorage Resizes the maximum size for a shadow copy storage association

You use the above commands with syntax and switches. These specify system volumes on which to carry out the action. They also streamline the commands. Below are the various parameters for Vssadmin.

Syntax Usage
/Oldest Deletes the oldest shadow copy
For=VolumeSpec Specifies the volume for which the shadow copy is to be deleted
/Quiet Prevents the command from showing messages while running
/All Deletes every shadow copy of the specified volume
/shadow= {{insert ShadowID}} Specifies the Shadow copy to delete by ShadowID

You can read more about this at TechNet.

Ezoic

Anand Khanse is the Admin of TheWindowsClub.com, a 10-year Microsoft MVP (2006-16) & a Windows Insider MVP (2016-2022). Please read the entire post & the comments first, create a System Restore Point before making any changes to your system & be careful about any 3rd-party offers while installing freeware.

If you have enabled system protection, the system will activate volume shadow copies service that may take up a certain amount of space in your drive which will not be visible in the folder structure.

If you need more space, you can either delete the shadow copies or disable the service to make more space available to you in the partition.

Let’s discuss when and how to enable or disable system protection (Volume Shadow Copy).

Table of contents

  • What is Shadow Copy?
  • How to create Volume Shadow Copies
  • How to restore from a Volume Shadow Copy
  • How to delete Volume Shadow Copies
    • Delete Volume Shadow Copies using the wizard
    • Delete Volume Shadow Copies using Command Prompt
  • Closing Words

What is Shadow Copy?

As the name implies, Shadow Copy is a backup copy of the original file or folder which is copied even when the file is in use. Shadow Copy service may backup multiple versions of each file or folder which is scheduled to be backed up.

Shadow Copy is also called Volume Snapshot Service or simply VSS.

The Shadow Copy feature has been included in Windows since Windows Server 2003.

Shadow Copies are created when the system is configured to store old versions of the files and folders on your partition. The older versions are saved as hidden files that are used to revert back to an older state of the same file/folder, undoing all the changes since then. Moreover, they can also be used to restore deleted files and folders.

The Shadow Copies that are created of any of the selected volumes are stored locally. Hence, to ensure that the device does not run out of space, it is important to manage them correctly.

Here is how you can set up Volume Shadow Copies of any of the volumes within your hard drive.

  1. Navigate to the following location:
    Control Panel -> System & Security -> System -> System Protection
  2. Now, in the System Protection tab under Protection Settings, select the volume you wish to create a shadow copy of and then click Configure
    configure
  3. In the new window, select Turn on System Protection under Restore settings.
  4. Under Disk space usage, adjust the slider to allow maximum space usage the Shadow Files are permitted to use. If the files take up space beyond allowed, the system will automatically delete the old ones to make room for the newer ones.
    max usage
  5. Now back in the System Properties window, click on Create to create a new restore point for the selected volume.
    create
  6. Now enter a name for this restoration point and then click Create.
    name backup
    Allow the computer some time to create the Volume Shadow Copy.

You have now successfully created a restoration point that can be used to revert the files and folders of the selected volume to a previous state.

How to restore from a Volume Shadow Copy

Once you have configured the device to create Volume Shadow Copies, they can be used to revert the partition files and folder to an earlier state. Here is how you can do so.

  1. Navigate to the following:
    Control Panel -> System & Security -> System -> System Protection
  2. Click on System Restore.
    restore
  3. On the System Restore Wizard, click on Next.
  4. On the next screen, select a valid restoration point from the list and then click Next.
    restore1
  5. On the next screen, click on Finish and then allow the computer to restore to its selected state. Note that this would require the computer to restart.

Once the computer restarts, you will notice that the files and folders within the volume associated with the restoration point would have been reverted to an older state. Any deleted items would now be returned, and anything newly created would disappear from the volume.

How to delete Volume Shadow Copies

As we mentioned earlier, Shadow Copies can often take up significant amounts of space on your hard drive. They then need to be deleted and removed in order to make room for new material.

Here are a few methods through which you can delete all the existing Volume Shadow Files.

Delete Volume Shadow Copies using the wizard

  1. Navigate to the same location from used to set up and delete these files, which is:
    Control Panel -> System & Security -> System -> System Protection
  2. Now select the drive you wish to delete all the restoration points of, and then click Configure.
  3. Now click on Delete at the bottom of the new window.
    delete
  4. Click Ok on the confirmation dialog box.

All existing Volume Shadow Copies of that particular volume will now no longer exist.

Delete Volume Shadow Copies using Command Prompt

The VSSAdmin command is used to manage the Volume Shadow Copy Service, which in turn can be used to delete all the existing Shadow Copies of a specified volume. Follow the steps below to delete the Volume Shadow Copies using the Command Prompt.

  1. Open Command Prompt with Administrative Privileges.
  2. Enter the following command:
    vssadmin delete shadows /For=C:
    Change the volume alphabet to the one you wish to delete all the restoration points of.
  3. Upon confirmation, enter Y.
    cmd 2

This is a quick and easy method to delete all existing Shadow Files in case they are taking over your hard drive.

If however, you decide not to delete everything, rather resize the allowed space for the Shadow Copies, simply re-adjust the slider in the properties as mentioned above in the article, or use any one of the following commands in the Command Prompt:

  • vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=900MB
  • vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=20%
  • vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=UNBOUNDED

Note that this command can be used in the context of literal size, that is, in MBs, in percentages, or by using “UNBOUNDED” to remove the limit entirely.

Moreover, by changing the drive letter in front of “/On=”, you can create the new Shadow Files of one volume on another, utilizing the other volume’s space while saving up the original partition.

Closing Words

Creating Volume Shadow Copies is very much like using the File History feature on Windows 10, but with fewer configurations and complexity. Using the VSSAdmin command, it is possible to remap the Shadow Files onto another partition, or even an external hard drive to create and maintain all the restoration points.

Also see:

Subhan Zafar is an established IT professional with interests in Windows and Server infrastructure testing and research, and is currently working with Itechtics as a research consultant. He has studied Electrical Engineering and is also certified by Huawei (HCNA & HCNP Routing and Switching).

Содержание

  • Способ 1: Меню Свойства системы
  • Способ 2: Командная строка
  • Способ 3: Автоматизация теневого копирования
  • Вопросы и ответы

Теневое копирование тома в Windows 10

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

Способ 1: Меню Свойства системы

Способ с использованием графического меню не самый простой, поскольку придется переходить в разные окна и искать соответствующие пункты. Если вы желаете ускорить процесс создания теневой копии и не боитесь использовать для этого командную строку, сразу переходите к следующей инструкции, однако учитывайте, что отведенное под резервные копии пространство при этом будет выбрано автоматически. Ручная настройка позволяет гибко задать подходящие значения, что осуществляется так:

  1. Откройте «Пуск» и перейдите в «Параметры», кликнув по специальной кнопке в виде шестеренки.
  2. Переход в меню Параметры для настройки теневого копирования в Windows 10

  3. В появившемся меню выберите первый же раздел под названием «Система».
  4. Переход к системным настройкам для включения теневого копирования в Windows 10

  5. Через левую панель переместитесь к категории «О системе».
  6. Переход к разделу О системе для настройки теневого копирования в Windows 10

  7. Опуститесь вниз, где отыщите строку «Сведения о системе».
  8. Переход к сведениям о системе для настройки теневого копирования в Windows 10

  9. Произойдет переход в раздел «Система», который находится в Панели управления. Здесь вас интересует надпись «Защита системы».
  10. Переход к защите системы для настройки теневого копирования в Windows 10

  11. В окне свойств выберите логический том диска, с которым хотите работать, и перейдите в «Настроить».
  12. Выбор диска для настройки теневого копирования в Windows 10

  13. Отметьте маркером пункт «Включить защиту системы» и задайте максимальное пространство, которое может быть выделено под резервные копии. Объем информации выбирается пользователем самостоятельно, отталкиваясь от личных предпочтений и имеющихся носителей.
  14. Настройка теневого копирования для выбранного диска в Windows 10

  15. После применения изменений вернитесь в предыдущее меню, где нажмите по кнопке «Создать».
  16. Переход к созданию нового теневого копирования в Windows 10

  17. Введите название точки восстановления и подтвердите создание.
  18. Ввод названия для точки теневого копирования в Windows 10

  19. Ожидайте завершения процесса. Он займет буквально несколько минут, что напрямую зависит от объема информации на диске.
  20. Процесс создания точки восстановления для теневого копирования в Windows 10

  21. Вы получите уведомление об успешном создании точки восстановления.
  22. Успешное создание точки восстановления теневого копирования в Windows 10

  23. Для проверки измените какой-либо файл, находящийся на выбранном диске, а затем щелкните по нему ПКМ и выберите пункт «Свойства».
  24. Переход к свойствам файла для просмотра теневых копий в Windows 10

    Lumpics.ru

  25. Переключитесь на вкладку «Предыдущие версии».
  26. Просмотр предыдущих версий файла при включенном теневом копировании в Windows 10

  27. Теперь вы видите, что здесь находится старая версия файла, которую можно при желании восстановить.
  28. Выбор версии файла для восстановления при теневом копировании в Windows 10

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

Способ 2: Командная строка

Более простой вариант создания резервной теневой копии выбранного носителя — использование консольной команды. Однако в этом случае у вас не будет возможности самостоятельно выбрать отведенное под предшествующие версии файлов дисковое пространство. Если вас устраивает такое положение вещей, выполните следующие действия:

  1. Запустите Командную строку от имени администратора любым удобным образом, например, отыскав само приложение через поиск в меню «Пуск».
  2. Запуск командной строки для выполнения теневого копирования в Windows 10

  3. Введите там команду wmic shadowcopy call create Volume=D: и нажмите на Enter. Литеру D замените на метку тома, для которого создается копия.
  4. Ввод команды для теневого копирования в консоли Windows 10

  5. Начнется выполнение операции, о чем уведомит соответствующее консольное сообщение.
  6. Процесс создания теневой копии через командную строку в Windows 10

  7. В конце вы получите строку с выводом «Метод успешно вызван».
  8. Успешное создание теневой копии через командную строку в Windows 10

  9. Переходите к свойствам диска и на вкладке «Предыдущие версии» просмотрите, создалась ли новая версия директории.
  10. Просмотр теневой копии, созданной через командную строку в Windows 10

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

Способ 3: Автоматизация теневого копирования

В начале статьи мы обещали, что расскажем о методе автоматизации теневого копирования. Делается это путем добавления новой задачи через «Планировщик заданий». Тогда в определенный период времени будет вызываться рассмотренная выше команда и выполняться создание новой точки восстановления.

  1. Откройте «Пуск» и через поиск отыщите приложение «Панель управления».
  2. Переход к панели управления для создания задачи теневого копирования в Windows 10

  3. Там выберите раздел «Администрирование».
  4. Переход в администрирование для создания задачи теневого копирования в Windows 10

  5. Запустите модуль «Планировщик заданий».
  6. Запуск планировщика заданий для создания задачи теневого копирования в Windows 10

  7. В блоке «Действия», который находится справа, нажмите по строке «Создать простую задачу».
  8. Переход к созданию задачи теневого копирования в Windows 10

  9. Введите произвольное имя, чтобы отличить эту задачу от других в списке, а затем переходите к следующему шагу.
  10. Ввод названия для задачи теневого копирования в Windows 10

  11. Установите триггер для запуска задачи, поставив маркер возле подходящего пункта. Например, можно выполнять новое теневое копирование каждый день или только один раз в неделю.
  12. Выбор сроков для выполнения теневого копирования в Windows 10

  13. После этого задайте промежуток для задачи и установите повторение, если это требуется.
  14. Установка времени для выполнения теневого копирования в Windows 10

  15. В качестве действия отметьте «Запустить программу».
  16. Выбор режима задачи при создании теневого копирования в Windows 10

  17. В поле «Программа или сценарий» введите wmic, а для «Добавить аргументы (необязательно)» присвойте shadowcopy call create Volume=c:, заменив букву диска на нужную.
  18. Выбор программы для запуска теневого копирования в Windows 10

  19. При завершающем этапе отметьте галочкой пункт «Открыть окно «Свойства» для этой задачи после нажатия кнопки «Готово»».
  20. Выбор опции для запуска свойств после начала задания в Windows 10

  21. После открытия свойств назначьте статус «Выполнить с наивысшими правами» и завершите работу над заданием.
  22. Запуск свойств после создания задания теневого копирования в Windows 10

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

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

Подробнее: Инструкция по созданию резервной копии Windows 10

Еще статьи по данной теме:

Помогла ли Вам статья?

Missing storage space is always a problem in Windows 11/10. Users keep reporting about disappearing hard disk space, and even with extensive search, it becomes impossible to find what is taking space.

The funny part is that even File Explorer may show that a disk has plenty of disk space available, but the disk in Disk Management shows it is full. If there are no other files that are taking space, then it can be because of Volume Shadow Copies. In this post, we will show how to delete Volume Shadow Copies in Windows 11/10 and free up disk space.

What is Volume Shadow Copy?

Volume Shadow Copy is a feature in Windows that creates snapshots or shadow copies of disk volumes.  One known example is System Restore Point. Every time you create one, it will create a copy. So it is an excellent tool if you want to recover deleted files.

If you want to see how many copies you have per drive, then use the Shadow Explorer software. It is free software that offers File Explorer view and displays all the Shadow copies. You can even use it to retrieve old copies of files if you deleted some.

Why Shadow Copies could result in more trouble, is because of leftover shadow copy files. Some backup software will create a persistent shadow copy, and after they have backed up the shadow copy to the designation, they fail to delete the original copy that is stored on the volume. If you do not need these shadow copies, then there are a couple of ways you can delete them.

  1. VSSAdmin Delete Shadow Copies command
  2. Limit Shadow Storage
  3. Limit System Restore Size
  4. Disk Cleanup Tool
  5. Check Backup Configuration

Make sure to read all of them and follow the method which works best for you.

1] Vssadmin Delete Shadow Copies command

Delete Shadow Copy using vssadmin

This command displays current volume shadow copy backups and all installed shadow copy writers and providers. You can add, create, delete, even delete service providers.

Open Command Prompt with admin privileges by typing CMD in the Run prompt (Win +R) and press the Enter key

Execute the following command, where F is the drive letter where you are running out of space:

Vssadmin delete shadows /For=F:

It will delete all the shadow copies from that drive.

If you want to delete only the oldest copy, use the /oldest option.

2] Limit Shadow Storage

Vssadmin also offers a command to resize the shadow storage space. You can specifically maximum size for each partition on your computer. Using the vssadmin command, which we used above but with different options, you can set size by percentage or ser it exact storage space.

vssadmin resize shadowstorage /for=<ForVolumeSpec> /on=<OnVolumeSpec> [/maxsize=<MaxSizeSpec>]

vssadmin Resize ShadowStorage /For=C: /On=D: /MaxSize=900MB 
vssadmin Resize ShadowStorage /For=C: /On=D: /MaxSize=UNBOUNDED 
vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=20%

3] Limit System Restore Size

Configure System Restore Space

If the System Restore is turned on for a drive, then there is a certain percentage of the drive which is dedicated to System Restore. When the size goes beyond that, the old one gets deleted. If you are in a crunch of space, then you can choose to reduce it to the minimum possible level. Once you do that, all old copies will be automatically deleted.

  • Type System Restore in the Start menu search bar.
  • Click on Recovery (Control Panel) option that shows up.
  • Then click on Configure System Restore.
  • Select the drive for which you want to reduce the space occupied by shadow copy files
  • Click on the Configure button and then use the slider to set the percentage.
  • Click Ok and apply the changes.

Do note that even if the System Restore is 5%, it could be substantial if your disk is of a large capacity.

4] Disk Cleanup Tool

Delete Volume Shadow Copies in Windows 10

  • Type Disk Cleanup in the Windows Start Menu and click on the tool when it shows up
  • Select the partition for which you want to delete the Shadow Copies
  • In the next window, switch to more options, and it will have the option for “System Restore and Shadow Copies.”
  • Click on the “Clean up” button, and it will delete all the copies when you confirm.

Read: Free up disk space by deleting previous System Images and Backups.

5] Check Backup Configuration

When using third-party software, these Shadow copies are also backed up. So if you recently restored from a backup, and you are running out of space for no reason, then it’s best to rerun the commands to delete those shadow copies. That said, you may also want to check if the backup-restore software offers an option to skip Shadow copies. It will also help to reduce the overall backup size.

Volume Shadow Copies are essential. They offer a way to restore files, which comes in handy, especially when you don’t have a backup software in place. However, when you are running out of space, then this post helps to delete the Shadow copies. Make sure to follow these is with admin permission.

Missing storage space is always a problem in Windows 11/10. Users keep reporting about disappearing hard disk space, and even with extensive search, it becomes impossible to find what is taking space.

The funny part is that even File Explorer may show that a disk has plenty of disk space available, but the disk in Disk Management shows it is full. If there are no other files that are taking space, then it can be because of Volume Shadow Copies. In this post, we will show how to delete Volume Shadow Copies in Windows 11/10 and free up disk space.

What is Volume Shadow Copy?

Volume Shadow Copy is a feature in Windows that creates snapshots or shadow copies of disk volumes.  One known example is System Restore Point. Every time you create one, it will create a copy. So it is an excellent tool if you want to recover deleted files.

If you want to see how many copies you have per drive, then use the Shadow Explorer software. It is free software that offers File Explorer view and displays all the Shadow copies. You can even use it to retrieve old copies of files if you deleted some.

Why Shadow Copies could result in more trouble, is because of leftover shadow copy files. Some backup software will create a persistent shadow copy, and after they have backed up the shadow copy to the designation, they fail to delete the original copy that is stored on the volume. If you do not need these shadow copies, then there are a couple of ways you can delete them.

  1. VSSAdmin Delete Shadow Copies command
  2. Limit Shadow Storage
  3. Limit System Restore Size
  4. Disk Cleanup Tool
  5. Check Backup Configuration

Make sure to read all of them and follow the method which works best for you.

1] Vssadmin Delete Shadow Copies command

Delete Shadow Copy using vssadmin

This command displays current volume shadow copy backups and all installed shadow copy writers and providers. You can add, create, delete, even delete service providers.

Open Command Prompt with admin privileges by typing CMD in the Run prompt (Win +R) and press the Enter key

Execute the following command, where F is the drive letter where you are running out of space:

Vssadmin delete shadows /For=F:

It will delete all the shadow copies from that drive.

If you want to delete only the oldest copy, use the /oldest option.

2] Limit Shadow Storage

Vssadmin also offers a command to resize the shadow storage space. You can specifically maximum size for each partition on your computer. Using the vssadmin command, which we used above but with different options, you can set size by percentage or ser it exact storage space.

vssadmin resize shadowstorage /for=<ForVolumeSpec> /on=<OnVolumeSpec> [/maxsize=<MaxSizeSpec>]

vssadmin Resize ShadowStorage /For=C: /On=D: /MaxSize=900MB 
vssadmin Resize ShadowStorage /For=C: /On=D: /MaxSize=UNBOUNDED 
vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=20%

3] Limit System Restore Size

Configure System Restore Space

If the System Restore is turned on for a drive, then there is a certain percentage of the drive which is dedicated to System Restore. When the size goes beyond that, the old one gets deleted. If you are in a crunch of space, then you can choose to reduce it to the minimum possible level. Once you do that, all old copies will be automatically deleted.

  • Type System Restore in the Start menu search bar.
  • Click on Recovery (Control Panel) option that shows up.
  • Then click on Configure System Restore.
  • Select the drive for which you want to reduce the space occupied by shadow copy files
  • Click on the Configure button and then use the slider to set the percentage.
  • Click Ok and apply the changes.

Do note that even if the System Restore is 5%, it could be substantial if your disk is of a large capacity.

4] Disk Cleanup Tool

Delete Volume Shadow Copies in Windows 10

  • Type Disk Cleanup in the Windows Start Menu and click on the tool when it shows up
  • Select the partition for which you want to delete the Shadow Copies
  • In the next window, switch to more options, and it will have the option for “System Restore and Shadow Copies.”
  • Click on the “Clean up” button, and it will delete all the copies when you confirm.

Read: Free up disk space by deleting previous System Images and Backups.

5] Check Backup Configuration

When using third-party software, these Shadow copies are also backed up. So if you recently restored from a backup, and you are running out of space for no reason, then it’s best to rerun the commands to delete those shadow copies. That said, you may also want to check if the backup-restore software offers an option to skip Shadow copies. It will also help to reduce the overall backup size.

Volume Shadow Copies are essential. They offer a way to restore files, which comes in handy, especially when you don’t have a backup software in place. However, when you are running out of space, then this post helps to delete the Shadow copies. Make sure to follow these is with admin permission.

19.02.2020 — Служба теневого копирования томов (VSS), утилиты VSSADMIN и DISKSHADOW

Продолжаем цикл полезных статей по работе с инструментами резервного копирования серверов на базе Windows Server. На этот раз речь пойдёт о службе теневого копирования и утилитах по работе с ней.

Служба теневого копирования тома (англ. Volume Shadow Copy Service, VSS) — служба операционной системы Windows, позволяющая копировать файлы, с которыми в данный момент времени ведется работа, включая системные и заблокированные файлы. Служба необходима для работы программы восстановление системы и программ архивации.

Для правильного выполнения операций резервного копирования и восстановления требуется тесное взаимодействие между приложениями резервного копирования, бизнес-приложениями, для которых выполняется резервное копирование, оборудованием и программным обеспечением управления хранением. Служба теневого копирования томов (VSS), которая появилась в Windows Server 2003, упрощает взаимодействие между этими компонентами, позволяя им лучше взаимодействовать между собой.

Как работает служба теневого копирования томов

Для нормальной работы VSS требуются следующие основные компоненты:

  • Компонент службы VSS операционной системы Windows, который позволяет другим компонентам правильно взаимодействовать друг с другом.
  • Служба VSS — программное обеспечение, запрашивающее фактическое создание теневых копий. Как правило, это приложение резервного копирования такие как система архивации данных Windows Server и приложение Data Protection Manager System Center. Сторонними инициаторами запросов VSS являются почти все программное обеспечение для резервного копирования, работающее в Windows.
  • Модуль записи VSS — компонент, обеспечивающий согласованность данных во время резервного копирования.
  • Поставщик VSS — компонент, который создает и поддерживает теневые копии.

На следующей схеме показано, как служба VSS координирует работу с запрашивающими сторонами, модулями записи и поставщиками для создания теневой копии тома.

Рис. 1

Создание теневой копии

Рис. 2

Чтобы создать теневую копию, инициатор запроса, модуль записи и поставщик выполняют следующие действия:

  1. Инициатор запроса запрашивает у служба теневого копирования томов перечисление модулей записи, собирает метаданные модуля записи и готовится к созданию теневого копирования.
  2. Каждый модуль записи создает XML-описание компонентов и хранилищ данных, для которых необходимо создать резервную копию, и предоставляет их для служба теневого копирования томов. Модуль записи также определяет метод восстановления, который используется для всех компонентов. В службе теневого копирования томов содержится описание модуля записи для инициатора запроса, в котором выбираются компоненты, для которых будет выполняться резервное копирование.
  3. Служба теневого копирования томов уведомляет все модули записи о подготовке данных для создания теневой копии.
  4. Каждый модуль записи подготавливает данные соответствующим образом. Когда данные готовы к теневому копированию, модуль записи уведомляет службу теневого копирования томов.
  5. Служба теневого копирования томов предписывает средствам записи временно заморозить запросы на запись операций ввода-вывода приложения (запросы ввода-вывода на чтение по-прежнему возможны) в течение нескольких секунд, необходимых для создания теневой копии тома или томов. Замораживание приложения не может длиться более 60 секунд. Служба теневого копирования томов очищает буферы файловой системы, а затем замораживает файловую систему, что обеспечивает правильную запись метаданных файловой системы и запись данных, подлежащих теневому копированию, в согласованном порядке.
  6. Служба теневого копирования томов дает команду поставщику создать теневую копию. Период создания теневой копии длится не более 10 секунд, в течении которых все запросы на запись в файловую систему остаются замороженными.
  7. Служба теневого копирования томов освобождает запросы ввода-вывода записи файловой системы.
  8. Служба VSS сообщает средствам записи о разморозке запросов ввода-вывода приложения. На этом этапе приложения могут возобновить запись данных на диск, на который выполняется теневое копирование.
  9. Инициатор запроса может повторить процесс (вернитесь к шагу 1) или уведомить администратора о необходимости повторить попытку позже.
  10. Если теневая копия создана успешно, служба теневого копирования томов возвращает сведения о расположении для теневой копии запрашивающей стороне. После того как VSS и приложения выполняют изменения, теневая копия становится доступна только для чтения.

После создания теневой копии служба VSS начинает отслеживать изменение данных на диске. VSS разбивает все данные на блоки по 16Кб каждый, и если данные в таком блоке были изменены, служба записывает в файл теневой копии этот блок целиком. Таким образом получается, что при создании следующей теневой копии данных система не копирует данные целиком, а только лишь блочные изменения.  Благодаря этому система теневого копирования позволяет существенно сэкономить место на диске. Теневые копии могут храниться на том же диске, на котором хранятся данные, либо на отдельном (решение для высоконагруженных систем с большой частотой изменения данных). Все файлы теневых копий хранятся в служебном каталоге System Volume Information. Эти файлы можно отличить по имени, все они содержат в имени идентификатор службы VSS — 3808876b-c176-4e48-b7ae-04046e6cc752.

Утилита VSSADMIN

Утилита VSSADMIN предназначена для администрирования в командной строке службы теневого копирования томов. С ее помощью создавать и удалять теневые копии, управлять хранилищами теневых копий, а также производить диагностику неисправностей модулей службы теневого копирования. Для работы с утилитой VSSADMIN запускаем командную строку от имени администратора, и введем команду vssadmin /?, после чего систем выведет список поддерживаемых команд. Познакомимся с возможностями утилиты и ее командами подробнее…

ADDSHADOWSTORAGE — создание новой ассоциации хранилищ теневых копий.

AddShadowStorage /For=ForVolumeSpec /On=OnVolumeSpec /MaxSize=MaxSizeSpec — добавление нового соответствия хранилищ теневых копий между томом ForVolumeSpec и томом хранилища теневых копий, который задан параметром OnVolumeSpec. Теневые копии ForVolumeSpec будут сохраняться на томе OnVolumeSpec.  Максимальный размер, который сопоставление может занимать на томе хранилища теневых копий, задается параметром MaxSizeSpec.  Если для параметра MaxSizeSpec установлено значение UNBOUNDED, размер хранилища теневых копий не ограничивается. При достижении максимально возможного числа сопоставления хранилищ теневых копий отображается сообщение об ошибке.  Параметр MaxSizeSpec может задаваться в байтах или в процентном отношении к размеру тома хранилища ForVolumeSpec.  Если параметр MaxSizeSpec задан в байтах, его значение должно быть не меньше 320MB; допускается использование следующих суффиксов: KB, MB, GB, TB, PB и EB.  Также допускаются суффиксы B, K, M, G, T, P и E.

      Чтобы задать значение параметра MaxSizeSpec в процентах, используйте знак % в качестве суффикса числового значения.  Если суффикс не задан, значение MaxSizeSpec задается в байтах.

Пример использования:

  • vssadmin Add ShadowStorage /For=C: /On=D: /MaxSize=900MB
  • vssadmin Add ShadowStorage /For=C: /On=D: /MaxSize=UNBOUNDED
  • vssadmin Add ShadowStorage /For=C: /On=C: /MaxSize=20%

CREATESHADOW — создание новой теневой копии тома.

CreateShadow /For=ForVolumeSpec [/AutoRetry=MaxRetryMinutes] — создание новой теневой копии для тома ForVolumeSpec. ForVolumeSpec должен представлять букву диска локального тома или точку подключения.  Если указан параметр MaxRetryMinutes и имеется другой процесс создания теневой копии, vssadmin будет продолжать попытки создать теневую копию в течение MaxRetryMinutes минут.

Примериспользования: vssadmin Create Shadow /For=C: /AutoRetry=2

DELETESHADOWS — удаление теневых копий тома.

Delete Shadows /For=ForVolumeSpec [/Oldest] [/Quiet]

Delete Shadows /Shadow=ShadowId [/Quiet]

Delete Shadows /All

Удаление всех соответствующих теневых копий для указанного тома ForVolumeSpec. Если указан параметр /Oldest, удаляется старейшая теневая копия на томе. Если указан параметр /All, на всех томах удаляются все теневые копии, которые можно удалить.  Если указан параметр /Shadow=ShadowId, удаляется теневая копия с заданным ID.  Могут быть удалены только теневые копии, имеющие тип ClientAccessible.

ID теневой копии можно получить с помощью команды List Shadows. Вводить ID теневой копии необходимо в следующем формате: {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}, где X представляет шестнадцатеричные знаки.  Этот ID можно получить с помощью команды List Shadows.

Пример использования: vssadmin Delete Shadows /For=C: /Oldest

DELETESHADOWSTORAGE — удаление ассоциации хранилищ теневых копий тома.

DeleteShadowStorage /For=ForVolumeSpec [/On=OnVolumeSpec] [/Quiet] — удаление соответствия хранилища теневых копий между томом ForVolumeSpecи томом хранилища OnVolumeSpec.  Если не указан параметр /On, будут удаленывсе соответствия хранилищ теневых копий для тома ForVolumeSpec.

Примериспользования: vssadmin Delete ShadowStorage /For=C: /On=D:

LISTPROVIDERS — список зарегистрированных поставщиков теневых копий томов.

LISTSHADOWS — список существующих теневых копий тома.

ListShadows [/For=ForVolumeSpec] [/Shadow=ShadowId|/Set=ShadowSetId] — отображение существующих теневых копий в системе.  Без параметров командаотображает все теневые копии, упорядоченные по набору теневая копий.

При создании списка допускается использование комбинаций параметров. ID теневой копии можно получить с помощью команды List Shadows. Вводить ID теневой копии необходимо в следующем формате: {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}, где X представляет шестнадцатеричные знаки.

Пример использования:  vssadmin List Shadows /Shadow={c5946237-af12-3f23-af80-51aadb3b20d5}

LISTSHADOWSTORAGE — список соответствия для хранилищ теневых копий томов.

ListShadowStorage [/For=ForVolumeSpec|/On=OnVolumeSpec] — отображение всех соответствий хранилищ теневых копий в системе. Чтобы получить полный список соответствий для указанного тома, следует указать параметр ForVolumeSpec без параметра /On.  Для перечисления всех соответствий на томе, следует указать OnVolumeSpec без параметра /For.

Примериспользования: vssadmin List ShadowStorage /On=C:

LISTVOLUMES — список томов, подходящих для создания теневых копий.

LISTWRITERS — список устройств записи теневых копий томов с имеющейся подпиской.

RESIZESHADOWSTORAGE — изменение размеров для соответствующих хранилищ теневых копий томов.

ResizeShadowStorage /For=ForVolumeSpec /On=OnVolumeSpec /MaxSize=MaxSizeSpec — изменение размеров сопоставления хранилища теневой копии тома между ForVolumeSpec и OnVolumeSpec. Изменение размеров хранилища может привести к исчезновению теневых копий.  По мере удаления теневых копий размер хранилища будет уменьшаться. Если для параметра MaxSizeSpec установлено значение UNBOUNDED, размер хранилища теневых копий не ограничивается. Параметр MaxSizeSpec может задаваться в байтах или в процентном отношении к размеру тома хранилища ForVolumeSpec.  Если параметр MaxSizeSpec задан в байтах, его значение должно быть не меньше 320MB; допускается использование следующих суффиксов: KB, MB, GB, TB, PB и EB.  Также допускаются суффиксы B, K, M, G, T, P и E.  Чтобы задать значение параметра MaxSizeSpec в процентах, используйте знак % в качестве суффикса числового значения.  Если суффикс не задан, значение MaxSizeSpec задается в байтах.

Примеры использования:

  • vssadmin Resize ShadowStorage /For=C: /On=D: /MaxSize=900MB
  • vssadmin Resize ShadowStorage /For=C: /On=D: /MaxSize=UNBOUNDED
  • vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=20%

REVERTSHADOW — откат тома к теневой копии.

RevertShadow /Shadow=ShadowId [/ForceDismount] [/Quiet] — Откат тома к его состоянию во время создания теневой копии. Все теневые копии этого тома, созданные после этой точки, будут удалены. Все изменения файлов и папок на этом томе, сделанные после создания этой теневой копии, будут потеряны. Отмена операции отката невозможна. После запуска операции отката она не может быть прервана или отменена. Если имеются открытые дескрипторы файлов на этом томе, операция отката завершится ошибкой, если не указан флаг ForceDismount.

Пример использования: vssadmin Revert Shadow /Shadow={c5946237-af12-3f23-af80-51aadb3b20d5} /ForceDismount

QUERYREVERTS — опрос хода выполнения операций отката.

QueryReverts [/For=VolumeName] [/All] — опрос хода выполнения операций отката. Если имя тома указано с помощью флага /For, освещается ход выполнения операции отката этого тома.  Если указан флаг /All, то освещаются все выполняемые операции отката.

Примериспользования: vssadmin Query Reverts /For=E:

УТИЛИТА DISKSHADOW

Утилита командной строки DISKSHADOW это инструмент, который предоставляет функциональные возможности, предлагаемые службой теневого копирования томов (VSS). По умолчанию в Diskshadow используется интерактивный интерпретатор команд, аналогичный DiskRAID или DiskPart.

Для запуска утилиты в командной строке запущенной от имени администратора введите следующую команду, чтобы запустить интерпретатор команд – DISKSHADOW.

LISTWRITERS — выводит список всех средств записи на компьютере.

LISTSHADOWS — выводит список всех теневых копий томов на компьютере.

LISTPROVIDERS — выводит список всех поставщиков VSS на компьютере.

SET — выводит список всех текущих параметров и всех псевдонимов сценария DiskShadow, имеющихся в параметрах переменной среды.

SETCONTEXT — устанавливает контекст теневого копирования.

SETOPTION — устанавливает параметры, относящиеся к теневому копированию и автовосстановлению.

SETVERBOSE — изменяет режим подробного вывода для сценария DiskShadow.

SETMETADATA — указывает имя CAB-файла для хранения метаданных переносимых теневых копий.

SIMULATERESTORE — моделирует операцию восстановления.

LOADMETADATA — загружает документ архивных компонентов перед импортом переносимой теневой копии или выполнением операции восстановления.

IMPORT — импортирует теневые копии на основе метаданных, указанных в предыдущей команде LOAD.

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

WRITEREXCLUDE — исключает средство записи или компонент из архивации или восстановления.

ADD— выводит список добавленных на данный момент псевдонимов и томов.

ADDALIAS — добавляет псевдоним.

ADDVOLUME — добавляет том к набору создания теневой копии.

ADDSHADOW — Добавляет теневую копию к набору восстановления.

CREATE— создает набор теневых копий томов.

EXEC — выполняет указанный сценарий команд оболочки.

BEGINBACKUP — начинает полную архивацию.

BEGINRESTORE — начинает восстановление.

ENDBACKUP — завершает полную архивацию.

ENDRESTORE — завершает восстановление.

EXPOSE — предоставляет теневую копию.

UNEXPOSE— не предоставляет теневую копию.

REVERT — возвращает прежнее состояние теневой копии.

RESYNC— Аппаратный откат теневой копии.

BREAK — разрушает теневую копию.

MASK— скрывает от системы импортированную аппаратную теневую копию.

DELETESHADOWS — удаляет теневые копии.

RESET — сбрасывает сценарий DiskShadow в его исходное состояние.

EXIT — выполняет выход из сценария DiskShadow.

Table of Contents

  • What is Volume Shadow Copy Service (VSS)
  • A Volume Shadow Copy Service component encountered an unexpected error. Check the Application event log for more information. Error code 0x80042302
  • Vssadmin command
  • Ensure that the VSS writers are in Stable State
  • Ensure that you can see Registered Shadow Copy Providers
  • List existing Volume Shadow Copies
  • Lists all shadow copy storage associations on the system.
  • Delete Shadow Copies using command line

    • wmic command
    • Vssadmin delete shadows
    • diskshadow Command
  • Best Practices
  • More Information
  • Conclusion

What is Volume Shadow Copy Service (VSS)

Volume shadow copy service in Windows operating system allows you to create consistent backups of open files and applications. You can create shadow copies of shared folders on your file server or Windows client OS on regular intervals. If any file has been deleted by user from a file server, you can quickly go to the shadow copy backup and restore the file for the user.

A Volume Shadow Copy Service component encountered an unexpected error. Check the Application event log for more information. Error code 0x80042302

You may experience this error message while taking backup on a window device or while performing a system restore. Please follow below troubeshooting steps to fix this issue:

Make sure Volume shadow copy service is not in disabled state. If Its in disabled state, please follow below steps to enable it:

  1. Go to Start and search for services App. Alternatively press Windows key + R to open a Run dialog box.
  2. Type services.msc and press enter.
  3. Search for Volume Shadow Copy service from the list and check its Startup Type. If its disabled then double-click on the service and then change the Startup type to Automatic.

Enable Volume Shadow Copy service and change its Startup type to automatic

  1. Make sure Microsoft Software Shadow Copy Provider service is also not in disabled state. If its in disabled state, you need to double-click on the service and then change the Startup type to Automatic.

enable Microsoft Software Shadow Copy Provider service

  1. If the error message persists, then you can try to disable Windows defender and any third party security system installed on that device temporarily. Try to take the backup / perform system restore again to see if its working fine. Once the back up process completes, switch on your security solution and windows defender.
  1. Perform Clean boot of your windows device. To enable clean boot on the device:
  • Press Windows Key + R to open Run box.
  • Type msconfig.exe in the run box.
  • Go to General tab and uncheck Load startup items from Selective startup.

Perform a clean boot of windows Uncheck load startup items

  • Go to Services tab and select Hide all Microsoft services, click on Disable All button on the bottom right hand side corner of the window.

Hide all Microsoft services msconfig.exe

  • Click on Apply or OK to save the changes.
  • Restart your device.

Test Volume shadow copy once to check if its working now. Make sure to change the startup time to Normal startup once you are done with the troubleshooting this error.

msconfig normal startup while troubleshooting 0x80042302

There are a lot of other errors related to Volume shadow copy service. You can troubleshoot it using the commands shown in the next section of this post.

Vssadmin command

A quite useful built-in command which you can use as a starting point while troubleshooting the Shadow Copies is Vssadmin. Lets run this command with different parameters and check the results.

There are different switches / commands which can be used with vssadmin. To show / list the different commands, Open Powershell as Administrator or Command prompt as an Administrator and type vssadmin

VSSadmin

Vssadmin /? command
Command Description Availability
Vssadmin add shadowstorage Adds a volume shadow copy storage association. Server only
Vssadmin create shadow Creates a new volume shadow copy. Server only
Vssadmin delete shadows Deletes volume shadow copies. Client and Server
Vssadmin delete shadowstorage Deletes volume shadow copy storage associations. Server only
Vssadmin list providers Lists registered volume shadow copy providers. Client and Server
Vssadmin list shadows Lists existing volume shadow copies. Client and Server
Vssadmin list shadowstorage Lists all shadow copy storage associations on the system. Client and Server
Vssadmin list volumes Lists volumes that are eligible for shadow copies. Client and Server
Vssadmin list writers Lists all subscribed volume shadow copy writers on the system. Client and Server
Vssadmin resize shadowstorage Resizes the maximum size for a shadow copy storage association. Client and Server
Source:Microsoft
Vssadmin commands

Ensure that the VSS writers are in Stable State

Run the Command vssadmin list writers and make sure that all the VSS writers are in [1] stable state. you may see different vss writers depending upon application server you are running this command e.g. If you are running this command on Microsoft Exchange Server, you will see [Writer name: ‘Microsoft Exchange Writerin addition to the other vss writers. If Microsoft Exchange Writer status is not stable, Restart the Microsoft Exchange Information Store Service or restart Exchange Server and check the writer state again before re-starting the backup job.

Vssadmin list writers

Vssadmin list writers

Ensure that you can see Registered Shadow Copy Providers

To list the currently registered shadow copy providers, Run the command vssadmin list providers

vssadmin list providers

vssadmin list providers

If you do not see providers listed after running the above command it could be OS related issue or the Volume Shadow Copy Service is not running.

List existing Volume Shadow Copies

To list existing shadow Copies use the command vssadmin list shadows

vssadmin list shadows

vssadmin list shadows

Lists all shadow copy storage associations on the system.

Run below command to see all storage associations for the existing shadow copies. The default storage allocates 10% of the volume to the shadow copies.

vssadmin list shadowstorage

vssadmin list shadowstorage

You can also check the Shadow Copy Storage Association on the volume using GUI Method by Right Clicking the Volume -> Properties -> click Shadow Copies Tab.

Shadow Copies

Shadow Copies

Run the command vssadmin list shadowstorage /? to get more parameters which you can use with this command. For example you can use /for parameter to list all associations for a specified volume.

vssadmin list shadowstorage /?

vssadmin list shadowstorage /?

Delete Shadow Copies using command line

There are few options or commands you can use to delete the shadow copies. Shadow Copies data is stored in a folder called System Volume information which is a hidden system folder. If you see that the System volume information folder is quite big in size and consuming a lot of space then you can check if you got any stale shadow copies which might be stored in this system folder and which you may want to delete to free up the space. If you decided to get rid of shadow copies from the volume then follow below command line options to complete your task.

wmic command

Use wmic command to delete the shadow copies. When you run this command, you will be on the wmic:rootcli> prompt. Type shadowcopy delete to delete the the shadow copies one by one. type Y to delete the shadow copy or N to skip to next shadow copy.

Note: To find the shadow copy ID use the command vssadmin list shadows. After using wmic command if you find that the shadow copies are not deleted or you get an error message as shown in the below screenshot, you can either use Vssadmin delete shadows command or Diskshadow command as shown in the next sections.

wmic

wmic command example

Vssadmin delete shadows

vssadmin delete shadows command can be used to delete all shadow copies or specific shadow copies from the volume. Use the /? in the end of the command to list parameters which you can use with this command. To delete all shadow copies using vssadmin delete shadows command, you can use below command.

Vssadmin delete shadows /all

diskshadow Command

You can also use diskshadow command to delete all the shadow copies from the system. Open command prompt as administrator -> Type diskshadow -> then on the DISKSHADOW> prompt type delete shadows all to delete / remove all shadow copies from the server.

Diskshadow command reference

diskshadow

diskshadow command

Best Practices

Best Practice when configuring the Shadow Copy is to use a disk which will not be shadow copied and have enough free space to store the shadow copies as per the configuration. You get below message when setting it up which suggest the same.

Enable Shadow Copies

Enable Shadow Copies

More Information

Volume Shadow Copy Service | Microsoft Docs

Conclusion

In this blog post, we have seen how you can troubleshoot issues related to shadow copies. Vssadmin command is very handy to use on windows devices when you are working on windows devices. You can also find examples of the commands with screenshots.

Ezoic

Снятие снапшота — именно с этого начинается любой бекап. До тех пор, пока мы не знаем, как сбросить все буфера на диск и привести файлы с данными в консистентное состояние, мы не бекапы делаем, а занимаемся копированием файлов с непредсказуемым содержимым внутри. Понимая важность снапшотов, все вендоры стараются дать нам если не полностью готовую функцию (типа Time Mashine в MacOS), то хотя бы набор ручек, за которые можно подёргать (вроде модуля dm-snap в ядре Linux). 

Но сегодня речь пойдёт про самую распространённую ОС — Microsoft Windows, где эта задача решается с помощью Volume Shadow Copy сервиса, известного в народе под аббревиатурой VSS (Volume Snapshot Service). А нашего внимания он удостоился из-за того, что, несмотря на всю популярность своего материнского корабля, сам он окутан вуалью из тайн и мистических слухов. Давайте уже как-то разберёмся с этой штукой.

А, собственно, что с ним за проблема? Вот есть документация, где вполне адекватно и красиво описано, как всё работает. Есть утилита vssadmin, позволяющая вполне годно создавать и удалять снапшоты. Что не так-то, и где сложности?

Но проблема в том, что более лучшая документация, намного правильнее отражающая происходящие процессы, несколько сложна для понимания. Microsoft вообще написал по этой теме какое-то неслыханное количество документов. Но даже когда вам как-то удаётся выстроить в голове работу этого алгоритма, вы сразу сталкиваетесь с тем, что на практике многие вещи работают совершенно не так, как описаны. Или вообще не работают. А что-то не описано совсем, хотя этому мы уже давно не удивляемся. Но не хвататься же сразу за дебагер и дизассемблер, да?

Хотя упомянутый выше vssadmin как-то вроде и работает, и снапшоты даже делает, и вообще молодец. Но это всё до того момента, пока ты не начинаешь вникать в тонкости, где может выясниться, что репорт об успешно созданном снапшоте — это репорт о чём угодно, только не об успешно созданном снапшоте.

Вот поэтому и захотелось немного поговорить о том, как же на самом деле работает VSS. И да, строго говоря, результатом работы VSS является созданная shadow copy. Но дабы не ломать язык и не мучить вас транслитом, давайте просто писать снапшот.

Какова роль VSS

Не сомневаюсь, что 90% читающих прекрасно понимают, зачем нужны снапшоты, но ради оставшихся 10% потерпите несколько предложений. Или сразу идите в следующий раздел.

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

Сами снапшоты ничего не знают про ваши файлы и папки. Они работают на уровень ниже файловой системы — с блочными устройствами и блоками данных. Если придерживаться терминологи Microsoft, то снапшот — это место, именуемое Shadow Storage, куда записываются изменённые блоки данных и откуда их можно извлекать с целью переписать данные на оригинальном диске. Тут можно запомнить для себя два нюанса. Первый — только что сделанный спапшот занимает ровно ноль байт. Это просто пре-алоцированное место, куда файловая система может копировать измененные блоки (или наоборот, новые блоки, но не суть).  И второй — теневая копия суть есть дифференциальный бекап. Все данные, которые вы изменили, не удаляются, а отправляются на хранение в этой зоне.

Где найти VSS

Обнаружить следы VSS можно двумя классическими способами: через GUI или в консоли. В зависимости от конкретной версии системы пути могут немного отличаться, но суть будет одинакова. Итак, есть у меня в лабе Windows Server 2019, и если сделать ПКМ на любом диске в проводнике, мы увидим два пункта: Configure Shadow Copies и Restore previous versions.

Если зайти в мастер настроек, то можно включить создание теневых копий для любого диска, задать расписание, по которому они будут создаваться и, что самое интересное, указать место хранения этих копий. Строго говоря, даже не самих копий, а так называемой diff area — места, куда сбрасываются перезаписанные на оригинальном томе сектора. То есть мы запускаем создание снапшота одного диска, а его данные физически храним на другом. Функция архиполезная и позволяет не просто снижать нагрузку на конкретном диске, но и делать фокусы а-ля снимаем снапшот одной ноды в кластере и цепляем его к другой.

После того, как вы всё настроите на свой вкус, появляется смысл в пункте Restore previous versions. Чисто технически туда и до этого можно было зайти, однако внутри, скорее всего, будет только гнетущая пустота. 

Но всё это баловство с графическим интерфейсом, и как мы знаем, до добра это не доводит, поэтому открываем powershell (или даже cmd, почему нет) — и там у нас имеется два варианта из коробки: vssadmin и diskshadow. Первая утилита есть практически на любой системе, начиная с WinXP/Win2003. Нет её только на Windows 8. По какой-то таинственной причине из “восьмёрки” вырезали инструменты управления теневыми копиями, но потом осознали свою неправоту и вернули всё на место. А вот diskshadow доступен только на серверных вариантах Windows. Это уже более продвинутый вариант vssadmin, позволяющий работать не только в интерактивном режиме, но и выполнять целые скрипты, написанные на понятном этому интерпретатору языке. Да и просто это более адекватный и поддающийся контролю инструмент.

И запоминаем самое важное: это две разные утилиты, существующие в разных контекстах. Теневая копия, сделанная в одной утилите, будет видна другой, однако статус у неё будет неоперабельный.

Вот отличный пример: мы создали снимок в diskshadow и пытаемся удалить его с помощью vssadmin. Сам снимок мы видим, но он не в нашем контексте, поэтому сорян, у нас нет здесь власти.

Вот отличный пример: мы создали снимок в diskshadow и пытаемся удалить его с помощью vssadmin. Сам снимок мы видим, но он не в нашем контексте, поэтому сорян, у нас нет здесь власти.

Технически ничего не мешает одновременно делать снимки с помощью vssadmin и diskshadow. Хотя есть вероятность, что получите сообщение типа Another shadow copy is in progress. Но это так, к слову пришлось. Не надо пытаться одновременно делать несколько снапшотов разными программами.

Как появился VSS

Итак, судя по написанному выше, всё просто: нам надо просто брать появляющиеся блоки и сохранять их куда-то в сторонку, чтобы при необходимости вынимать обратно. Сразу возникает первый вопрос: а что именно надо сохранять в нашем теневом хранилище? Ведь действительно, можно просто писать в него все приходящие новые блоки и сохранять в метаданные, на какое место они (блоки) должны были быть записаны. А можно поступить чуть сложнее и записывать новые блоки сразу на полагающееся им место, а в хранилище отправлять содержимое перезаписываемых блоков. Что лучше и как выбрать? На самом деле право на жизнь имеют оба варианта, и какой выбрать — зависит исключительно от воли вендора. Первый подход (redirect-on-write, RoW, если оперировать грамотными терминами) быстро пишется, но долго читается. Зато если надо откатиться на первоначальное состояние, это делается моментально — мы просто удаляем наше теневое хранилище. Второй подход (copy-on-write, CoW) пишется медленней, читается быстрее и моментально удаляет копии предыдущих состояний. VSS, к слову, придерживается парадигмы CoW, а в снапшотах VMware реализован RoW.

Но на самом деле этот вопрос не самый важный из тех, которые стоит себе задать перед тем, как начать перехватывать появляющиеся блоки и складывать их в сторонке. Главный вопрос — в какой именно момент надо осуществлять перехват?

Давайте рассмотрим хрестоматийную ситуацию с файлом базы данных. (И если у вас уже заскрипел песок на зубах, смело пропускайте следующие два абзаца.) Итак: у нас есть банальная SQL Server база данных в виде mdf файла, и тут к нам прилетает какой-то запрос. SQL, как порядочное приложение, начинает старательно вносить изменения в файл, а мы старательно перехватываем каждый новый блок данных падающих на диск и пишем в нашу теневую копию. Всё хорошо и здорово, но тут выключили свет. Потом свет включили, сервер запустили и мы даже базу восстановили из нашей теневой копии, но тут оказывается, что SQL не запускается. Говорит — база в не консистентном состоянии. Это значит следующее: во время нормальной работы завершение каждой транзакции помечается специальным флагом. Сервер его видит и знает, что всё хорошо. А тут сервер загружается, видит, что из его базы торчит какой-то кусок данных, флага нет и, следовательно, что с этим всем делать — он понятия не имеет. То ли удалить, то ли дописать, то ли ещё что-то. Но у нас тут не угадайка, а всё должно быть однозначно и консистентно. Поэтому он принимает решение выключиться, дабы не поломать базу ещё сильнее.

Хорошо, но как избежать подобных приключений? Отличным вариантом будет подождать, пока SQL сервер допишет свою транзакцию, пометит её как завершённую, и потом мы быстренько заберём все появившиеся новые блоки. Отличный вариант, который надо срочно реализовывать! Вот только есть небольшая проблема: до этого мы говорили про одно приложение и один файл, с которым оно работает. Научиться общаться с условным SQL Server много ума не надо, но что делать с остальными миллиардами существующих приложений? А что делать, в конце концов, с самой ОС, у которой внутри огромное количество своих процессов и открытых файлов? Вот примерно с такими проблемами и столкнулись учёные мужи из Microsoft, когда пришли к выводу, что надо реализовать некий общий интерфейс, через который можно будет сразу всем прокричать нечто вроде: “Сейчас мы будем делать снапшот, так что быстренько сворачиваемся и сбрасываем буфера на диск! Приостанавливайте свою кипучую деятельность и приводите данные в консистентный вид!”. Ну а назвать эту штуку они решили, как вы уже догадались, Volume Snapshot Service. Или просто VSS.

И тут можно воскликнуть — но ведь в Windows 2008 был представлен Kernel Transaction Manager! Это разве не то же самое? Он же как раз занимается тем, что приводит файлы на диске в консистентное состояние. А вот и нет! То есть да, KTM приводит, но отвечает только за дисковые операции, а что там происходит с приложениями — его мало волнует. А ведь многим из этих приложений важна не просто целостность файлов, но и что в них записано. Классический пример — это Exchange и Active Directory. И тут мы подошли к важной теме:

Как устроен VSS

Чтобы не прыгать с места в карьер громады страшных терминов и процессов, начнём с высокоуровневого описания. Поэтому ограничимся таким списком компонентов:

  • VSS Writer. В кириллическом простонародье известен как просто райтер, поэтому так и будем его называть в дальнейшем, вызывая праведный гнев ненавистников англицизмов. 

    Райтер занимается тем, что выстраивает мостик взаимодействия между VSS подсистемой и конкретным приложением. Поэтому а) в любой системе их будет достаточно много (проверьте у себя с помощью vssadmin list writers) б) райтер всегда пишется поставщиком приложения, ибо кроме него никто не знает, что там и как должно происходить во время создания снапшота. 

    Соответственно, райтер по своей сути выполняет роль “регулировщика”: сначала он говорит приложению подготовиться к снапшоту, затем даёт отмашку VSS сервису делать снапшот. Или не даёт, если приложение не смогло за установленный промежуток времени подготовить свои файлы.

    Также хочется отметить, что райтеры — это какие-то невероятно нежные ребята, которые зачастую ломаются без каких-либо внешних признаков. Поэтому если в выводе vssadmin list writers в поле State вы увидите что-то, отличающееся от Stable, это надо чинить, ибо сделать консистентный бекап, увы, не получится.

  • VSS Provider. Тот самый парень, который занимается созданием и управлением снапшотами. Известен тем, что бывает софтовый или хардовый. Список установленных в системе провайдеров можно посмотреть с помощью команды vssadmin list providers. По дефолту, с системой идет Microsoft Software Shadow Copy provider. Он даже отлично и замечательно работает, но до тех пор, пока вы не подключите к системе брендовую СХД. Хорошие вендоры всегда снабжают свои железки управляющим софтом, в составе которого находится и родной провайдер к этой железяке. Благодаря этому можно уже делать всякие хитрые трюки, которые реализованы в вашем оборудовании, и именно поэтому мы в Veeam так гордимся списком интеграций с железом.

  • VSS Requestor. Участник процесса, который инициирует создание VSS снапшота или восстановление данных. Можно сказать, что реквестор — это бекапное приложение, которое общается с райтерами и провайдерами. Может показаться, что его роль незначительна, однако от грамотности реализации реквестора зависит качество получаемого результата. То есть VSS не будет за вас думать, что и в каком виде надо сделать. Чем более чёткие инструкции выдаст реквестор, тем более предсказуемым будет результат.

Как в итоге всё выглядит на самом высоком уровне: реквестор стучится в Volume Shadow Copy сервис, тот отдаёт команду райтерам предупредить приложения о надвигающемся снапшоте, райтеры рапортуют об успехе, а сервис отдаёт команду провайдерам делать снапшоты. О результатах докладывается реквестору.

Но на деле, очевидно, всё несколько сложнее. На первом шаге реквестор проверяет, что вообще есть в наличии и с кем предстоит общаться. Затем после составления списка райтеров он обращается к провайдеру, объясняя, что он хочет заснапшотить и где должен располагаться снапшот. Это называется SnapshotSet. В большинстве случаев он будет располагаться на том же вольюме, что и оригинальный диск. А меньшинство случаев — это те самые хардварные провайдеры, которые поставляются вместе с СХД. Для них нормой считается создавать отдельный вольюм для снапшота, который называется storage snapshot. А в определённых случаях можно так и вообще перемещать снапшот на другое физическое устройство, чтобы выкачивать данные уже оттуда, а не с прода. Без хардварных провайдеров сделать такое не выйдет. 

Следом начинается стадия, именуемая Prepare for backup. На этом этапе мы должны уже не просто изучить метаданные райтеров, а запросить их реальные статусы и приготовиться к самой жаркой поре: все райтеры должы будут отработать один за другим. Причём каждый должен уложиться в отведённое ему время, которое по умолчанию равно 60 секундам. Так решили в Microsoft, забыв уточнить причины. Но есть ещё приложения-чемпионы, например, Exchange. Его авторы посчитали, что 20 секунд более чем достаточно, и остановились на таком лимите. А чем чревато невыполнение этого этапа, который в документации называется OnFreeze? Тем, что райтер вернёт сообщение об ошибке, и снапшот не будет сделан. После чего в интерфейсе Veeam появится одна из каноничных ошибок вроде “VSSControl: Failed to freeze guest, wait timeout». Тут радует одно: в логах VSS всегда будет написано, какой именно райтер завалил задание. А по самим ошибкам уже столько KB написано, что вспоминать страшно. Но если вы вдруг сомневаетесь, то точно вам говорю — написанному в них можно смело верить. И если после всего получается, что у вас слишком медленное хранилище, и за отведённое время не получается сбросить все кэши на диск, ну, значит, так оно и есть. Физику не обманешь, а вот железо надо хоть иногда обновлять.

Но это был пессимистичный вариант (прошу понять меня правильно, но беды с VSS — это очень частная причина обращений в сапорт), а в оптимистичном можно начинать самый важный этап. Как только райтеры рапортуют, что всё, вся деятельность в системе заморожена, а кеши сброшены на диск, у нас есть десять(!!!) секунд на создание снапшота, после чего райтеры будут принудительно разморожены, и всё закрутится вновь. И можно сказать, что на этом процесс бекапа заканчивается, и всё что нужно — это просто импортировать наш снапшот и скачать его куда-то к себе, чтобы сохранить под семью замками. Однако есть одно важное Но — log truncate. Фундаментально это вообще не связанные операции и транкейт зависит только от бекапа логов, но как все мы понимаем — на пользовательском уровне эти вещи связаны в единый процесс. То есть, прежде чем выкачивать снапшот, надо не забыть выдать команду backup log, которая запустит операцию транкейта. И после этого совесть наша чиста.

Но что дальше происходит с данными? Если мы действительно используем какое-то приложение для бекапов, которое запустило весь этот процесс, дождалось его завершения и скачало данные в своё хранилище, то снимок можно просто удалить одной командой. Поскольку VSS пропагандирует CoW подход, то речь здесь действительно о банальном удалении нашей аллоцированной зоны, ведь все новые данные сразу пишутся на оригинальный диск. Это называется non-persistent shadow copy, и она не имеет никакого смысла без оригинального диска.

Чтобы пройти этот путь вручную, достаточно открыть консоль и набрать:

PS C:Windowssystem32> diskshadow
Microsoft DiskShadow version 1.0
Copyright (C) 2013 Microsoft Corporation
On computer:  VEEAM,  17.05.2021 19:18:44

DISKSHADOW> add volume c: # добавляем в задание диск С

DISKSHADOW> create	# создаём снапшот
Alias VSS_SHADOW_1 for shadow ID {a1eef71e-247e-4580-99bc-ee62c42221d6} set as environment variable.
Alias VSS_SHADOW_SET for shadow set ID {cc9fab4d-3e7d-44a5-9a4d-0df11dd7219c} set as environment variable.

Querying all shadow copies with the shadow copy set ID {cc9fab4d-3e7d-44a5-9a4d-0df11dd7219c}

        * Shadow copy ID = {a1eef71e-247e-4580-99bc-ee62c42221d6}               %VSS_SHADOW_1%
                - Shadow copy set: {cc9fab4d-3e7d-44a5-9a4d-0df11dd7219c}       %VSS_SHADOW_SET%
                - Original count of shadow copies = 1
                - Original volume name: \?Volume{7fd0c79d-0000-0000-0000-602200000000} [C:]
                - Creation time: 17.05.2021 19:19:45
                - Shadow copy device name: \?GLOBALROOTDeviceHarddiskVolumeShadowCopy2
                - Originating machine: veeam.university.veeam.local
                - Service machine: veeam.university.veeam.local
                - Not exposed
                - Provider ID: {b5946137-7b9f-4925-af80-51abd60b20d5}
                - Attributes:  Auto_Release Differential

Number of shadow copies listed: 1

Здесь мы видим, что успешно создался снапшот со своим Shadow copy ID, и для удобства ему сразу присвоили алиас VSS_SHADOW_1. Этими данными вполне можно оперировать, если возникает такое желание. Однако не будем уходить в сторону и попробуем прочитать содержимое этого снимка. Для чего подмонтируем его в качестве диска.

DISKSHADOW> expose {a1eef71e-247e-4580-99bc-ee62c42221d6} Z:
The shadow copy is a non-persistent shadow copy. Only persistent shadow copies can be exposed.

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

DISKSHADOW> delete shadows all # или только нужный ID
Deleting shadow copy {a1eef71e-247e-4580-99bc-ee62c42221d6} on volume \?Volume{7fd0c79d-0000-0000-0000-602200000000} from provider {b5946137-7b9f-4925-af80-51abd60b20d5} [Attributes: 0x00420000]...

Number of shadow copies deleted: 1

И начинаем всё заново, только теперь укажем, что нам нужна персистентная копия, чтобы мы могли использовать её как полноценный диск.

DISKSHADOW> add volume C:

DISKSHADOW> set context persistent # вот этот момент

DISKSHADOW> create
Alias VSS_SHADOW_1 for shadow ID {346d896b-8722-4c01-bf01-0f38b9abe20a} set as environment variable.
Alias VSS_SHADOW_SET for shadow set ID {785983be-e09d-4d2a-b8b7-a4f722899896} set as environment variable.

Querying all shadow copies with the shadow copy set ID {785983be-e09d-4d2a-b8b7-a4f722899896}

        * Shadow copy ID = {346d896b-8722-4c01-bf01-0f38b9abe20a}               %VSS_SHADOW_1%
                - Shadow copy set: {785983be-e09d-4d2a-b8b7-a4f722899896}       %VSS_SHADOW_SET%
                - Original count of shadow copies = 1
                - Original volume name: \?Volume{7fd0c79d-0000-0000-0000-602200000000} [C:]
                - Creation time: 17.05.2021 19:38:45
                - Shadow copy device name: \?GLOBALROOTDeviceHarddiskVolumeShadowCopy3
                - Originating machine: veeam.university.veeam.local
                - Service machine: veeam.university.veeam.local
                - Not exposed
                - Provider ID: {b5946137-7b9f-4925-af80-51abd60b20d5}
                - Attributes:  No_Auto_Release Persistent Differential

Number of shadow copies listed: 1

Как мы видим: Attributes:  No_Auto_Release Persistent Differential. Поэтому если теперь вы сделаете expose, то снапшот примаунтится как полноценный диск, по которому можно перемещаться и копировать с него файлы. Диск, само собой, виртуальный и состоит из блоков оригинального диска, плюс блоки изменившихся данных, читая которые, мы можем видеть состояние оригинального диска на момент снапшота. Всё просто.

Только учтите, пожалуйста, такой момент, если вдруг решите, что нашли святой грааль: в таком режиме нельзя занимать данными больше 50% места на диске. Один блок свыше — и всё, диск переполнился.

Что тут хочется ещё сказать, а вернее, спросить: если всё так просто, то почему же я говорю, что всё так сложно? Проблема в том, что, отдавая на боевом сервере команду vssadmin create shadow, мы, конечно, создаём какой-то снимок, но как себя будут чувствовать приложения после отката на этот снимок, мы предсказать не можем. Это не шутка: команда create признаёт наличие ошибок при выполнении как вариант нормы. Райтер не вернул вовремя Ок от приложения? Да кому это надо, го делать снапшот, я создал. 

Поэтому когда за дело берётся настоящее бекапное приложение вроде Veeam Backup & Replication, то речь идёт не об одной команде, а о целой россыпи предварительных запросов, в результате которых формируется огромнейшая команда (это не метафора для красного словца, а реальность), в которой учитываются состояния райтеров и приложений на целевой системе, с жестким требованием соответствия всех статусов необходимым. Словом, количество мест, где что-то может пойти не так, вырастает на порядок. Ведь нам главное — не снапшот создать, закрыв глаза на сопутствующие потери, а гарантировать консистентность данных внутри него.

Как лечить VSS

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

Другая проблема — это железо. Помните про временные рамки для райтеров? Про десять секунд на снапшот? Для многих это ограничение становится проблемой из-за того, что СХД физически не успевает сделать требуемые действия за отведённое время. Как это лечится? А вот никак. Или покупаем более мощное железо, или ищем пути снижения нагрузки, чтобы операция была проведена за выделенный промежуток времени.

Если посмотрите одно из самых популярных KB1680: VSS Timeout when backing up Exchange VM, то легко обнаружите, что первые три шага для решения всех проблем с VSS — сделайте снапшот вручную и посмотрите чтобы это заняло менее 20 секунд, перезагрузитесь и попробуйте снизить нагрузку. Вот так и живём, да. 

И что же делать, если VSS падает, в ивентах ничего нет, а понять, что происходит надо? Тут я могу порекомендовать три хороших статьи:

  • КВ от Veeam, посвящённое анализу поведения VSS с помощью diskshadow.

  • Другое KB от Veeam, посвящённое сбору информации с помощью vsstrace из Windows SDK. Но скажу сразу, это уже не для слабых духом.

  • И видео от моего коллеги, где он наглядно показывает, как работать с информацией из первых двух пунктов =) Рассказывает он действительно хорошо, но с непривычки голова у вас от объёма информации заболит, это я вам обещаю.

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

А на сегодня всё. Я и так хотел кратенько, но получилось больше десяти страниц текста. Поэтому самое время закругляться. Если хочется раскрытия какой-то другой темы или углубиться в детали VSS, то обязательно пишите об этом в комментариях.

Понравилась статья? Поделить с друзьями:
  • Просмотр тв на компе windows 10
  • Просмотр списка файлов в командной строке windows
  • Просмотр сохраненных сетевых паролей windows 10
  • Просмотр сохраненных паролей wifi windows 10
  • Просмотр содержимого файла в командной строке windows