Удаление теневых копий windows server 2008 r2

Обновлено: 06.07.2024

Windows Server. Настраиваем теневые копии для общих папок.

Наиболее распространенная проблема с которой сталкиваются пользователи и администраторы файловых серверов - это случайное удаление или перезапись файлов. Бороться с этим явлением весьма сложно, технические средства здесь не помогут, а административные часто оказываются неэффективными. Очень часто сотрудники сами случайно перезаписывают нужные файлы. Что делать? Ответ прост - настраивать теневое копирование общих папок.

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

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

Теневое копирование поддерживают серверные ОС начиная с Windows Server 2003, клиентское ПО для работы с теневыми копиями доступно начиная с Windows XP SP2.

При использовании теневых копий следует учитывать следующие ограничения:

  • При превышении лимита выделенного дискового пространства старые теневые копии будут удалены без возможности восстановления.
  • На одном томе может быть не более 64 теневых копий для каждого файла.
  • Теневое копирование включается на уровне тома, т.е. нельзя выбрать общие папки и файлы для которых будет или не будет выполнятся теневое копирование.
  • На компьютерах с двумя ОС при загрузке более старой системы или при подключении тома к другому ПК теневые копии могут быть повреждены.

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

Для включения теневых копий перейдите в оснастку Управление компьютером в меню Администрирование.

windows-server-shadow-copies-001.jpg

В левой части окна найдите пункт Общие папки и, щелкнув правой кнопкой мыши, выберите Все задачи - Настроить теневые копии.

windows-server-shadow-copies-002.jpg

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

windows-server-shadow-copies-003.jpg

Затем нажмите на кнопку Параметры и укажите размер дискового пространства, выделяемый для хранения теневых копий.

Следующим шагом задайте расписание.

windows-server-shadow-copies-005.jpg

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

Самая распространенная и труднорешаемая проблема - файл перезаписали.

windows-server-shadow-copies-006.jpg

Открываем свойства файла, переходим на закладку Предыдущие версии и выбираем одну из доступных теневых копий (в нашем случае только одна).

Мы можем открыть, восстановить или скопировать файл. Для начала просто откроем.

Убедившись, что перед нами необходимая версия файла, мы можем ее восстановить или скопировать, если нам нужны оба варианта файлов.

windows-server-shadow-copies-009.jpg

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

windows-server-shadow-copies-010.jpg

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

Когда процесс бэкапа закончится, можно посмотреть его статус:

Здесь вы увидите основные сведения о результатах бэкапа. Свойство LastBackupResultHR содержит код возврата. Если это 0, то всё хорошо. Если это не 0, то бэкап не был выполнен удачно. А вот свойство NumberOfVersions показывает сколько уже копий бэкапа содержится в текущем архиве. Более подробно этот момент будет рассмотрен ниже.

При выполнении бэкапа происходит несколько вещей:

В корне диска назначения бэкапа создаётся структура папок: <путь до диска или сетевой папки>\WindowsImageBackup\<имя компьютера> После окончания бэкапа система делает теневую копию этого тома (кроме сетевых папок) тома, на котором хранится бэкап.

Команда Get-WBBackupSet показывает историю бэкапов системы и ID номер теневой копии, которая содержит файлы архива на момет выполнения конкретного задания бэкапа. При восстановлении из бэкапа консоль MMC считывает эти копии и позволяет восстановить файлы на любой момент времени выполнения бэкапа. Чтобы дать более понятное представление об этом, покажу простой пример:

  1. Выполняется первый бэкап №1.
  2. В BackupTarget создаётся папка с архивом и в VHD файл записываются данные, которые мы архивируем;
  3. В BackupTarget создаётся теневая копия, которая так же содержит эти файлы и закрепляется за этим бэкапом;
  4. Время бэкапа и ID теневой копии записывается в каталог бэкапа;
  5. Выполняется следующий бэкап этого же задания под № 2.
  6. В BackupTarget уже ничего не создаётся, а новые данные добавляются в VHD файл, скрывая данные из бэкапа №1;
  7. В BackupTarget создаётся теневая копия, которая так же содержит новые данные и закрепляется за этим бэкапом (№2);
  8. Время бэкапа и ID теневой копии записывается в каталог бэкапа.
  9. повторяются пункты 5-8.

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

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

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

Хранятся они там сколь угодно долго, пока есть свободное место. Когда свободное место заканчивается, то Server Backup автоматически пытается отыскать себе место. Если у нас выполняются только полные бэкапы, то наиболее старые версии архивов просто удаляются. Если у нас комбинируются полные бэкапы с инкрементальными/дифференциальными, то берётся наиболее старый архив и в него вписываются инкрементальные/дифференциальные архивы, которые были выполнены в промежутках между полными бэкапами до тех пор, пока не освободится достаточно для нового бэкапа места. Таким образом обеспечивается сохранность наиболее новых архивов с удалением более старых. Такая схема автоматической ротации так же будет востребована в большинстве случаев. Для экономии места Server Backup для запланированного задания автоматически делает комбинирование полных и инкрементальных бэкапов. Каждые 2 недели выполняется полный бэкап и ежедневно в промежутках между полными будет выполняться только инкрементальное архивирование.

Такая автонастройка режимов для запланированных бэкапов и авторотация будет достаточно эффективна и проста в сегменте SOHO/SMB, не отвлекая на себя слишком много внимания администратора. От администратора потребуется только создание задания и организация отказоустойчивости тома с архивами.

Разработчики Server Backup сделали всё, чтобы упростить процесс выполнения бэкапа в стандартных случаях SOHO/SMB. Но когда появляются особые условия, то тут начинаются свои сложности, хотя это всё относительно преодолимо. Например, вы создали несколько заданий бэкапов, которые отдельно что-то архивируют в одну и ту же точку. Но к каждому заданию предъявляются свои требования по сроку хранения бэкапа.

Пример: это файл-сервер и вы архивируете папку с документами пользователей ежедневно и следует хранить только 7 последние копии. Другое задание архивирует инсталляционные файлы вашей сети раз в неделю и требуется наличие только 4 последних копий. Так же все копии должны копироваться в сетевую папку или на съёмный диск на случай катастрофы и/или ада и Израиля. В такой ситуации мы потеряем возможность использования авторотации архивов и прочих плюшек. Давайте посмотрим, как будет выглядеть примерный скрипт:

И уже этот файл отдельно зашедулить в Task Scheduler. В такой ситуации дополнительных шагов не требуется, т.к. пока живы теневые копии, вы можете восстанавливать файлы из них (наличие самого архива не требуется). А если теневых копий уже не осталось (например, том с архивами был отформатирован), то для восстановления данных просто копируете папку с архивом в корень любого тома с именем WindowsImageBackup и тогда этот архив будет определён системой как пригодный для восстановления. Так вы можете делать несколько раздельных заданий с индивидуальным расписанием бэкапа и ротацией.

Если ротация архивов в сетевой папке достаточно проста и укладывается в одну строчку, то с локальными архивами придётся подключать утилиты CMD, а именно — diskshadow.exe! Вам нужно внутри diskshadow выполнить Delete Shadows ID , где GUID — ID теневой копии, которая закреплена за конкретным бэкапом и его можно получить из вывода Get-WBBackupSet (свойство SnapshotID)

Вот таким образом можно удалять старые теневые копии архивов по одиночке. При удалении теневой копии при следующей операции бэкапа будет обновлён каталог бэкапов. Чтобы удалить все предыдущие архивы кроме текущего внутри diskshadow нужно выполнить:

где E: — путь к тому с архивами.

Сами данные из VHD файла будут удалены только при следующей операции бэкапа. Однако, это не относится к архивам, которые содержат SystemState. Для ротации архивов SystemState придётся воспользоваться уже другой утилитой — wbadmin.exe:

wbadmin delete systemstatebackup –version: datetime

где datetime — дата и время выполнения бэкапа. Эту дату можно получить так же из вывода командлета Get-WBBackupSet (свойство VersionID). Чтобы удалить все бэкапы SystemState, кроме текущего следует выполнить:

wbadmin delete systemstatebackup –backuptarget:E: –deleteoldest

и для удаления всех наиболее старых архивов SystemState с сохранением N копий выполнить:

wbadmin delete systemstatebackup –keepversions:N

где N — количество копий SystemState, которые должны быть сохранены.

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

В принципе, это только один вариант реализации подобной задачи и не обвешена никакими проверками. Однако, учитывая, что данный код публикуется на правах ТЗ (ТЗ — Тайное Знание), поэтому может использоваться как шаблон алгоритма такой кастомной ротации. Данный скрипт только демонстрирует логику, которой вы можете воспользоваться и подпилить под свои условия самостоятельно.

Categories: PowerShell | Server Backup
Posted at: 14.10.2009 23:29 (GMT+2) by Vadims Podāns | Permalink | Comments (18)

Comments:

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

Вот такая ошибка вываливается : Cannot add Windows PowerShell snap-in Windows.Serverbackup because it is already added. Verify the name of the snap-in and try again. At :line:2 char:12 + Add-PSSnapin <<<< Windows.Serverbackup Scheduler::GetRegisteredTaskInfo failed due to error: Object is not connected to server, (0x800401fd). . At :line:4 char:24 + $profiles = New-WBPolicy <<<<

ну это значит, что оснастка уже добавлена заранее. Не вижу в этом криминала.

А вторая ошибка ? Scheduler::GetRegisteredTaskInfo failed due to error: Object is not connected to server, (0x800401fd). . At :line:4 char:24 + $profiles = New-WBPolicy <<<<

об этой ошибке ничего сказать не могу.

С подобными вопросами лучше обращаться к тех.поддержку Акрониса, тем более, я с их продуктами не работаю.

В чем суть проблемы

У вас может быть установлена роль "служба Архивации данных Windows Server (Windows Server BackUP)", вы настроили задание по расписанию и все идет штатно. В какой-то момент вы сталкиваетесь с проблемой, что происходит заполнение жесткого диска резервного копирования Windows Server, роль должна видеть это и в случае нехватки пространства производить перезапись самой старой версии, по ряду причин это можете не произойти. Вторая ситуация, что у вас на диске можете быть слишком много точек резервного копирования и вы не хотели бы весь диск отдавать под них и желаете их сократить до нужного вам количества. Ниже я хочу вам показать, как вы можете все это задать явным образом.

Как удалить резервные копии Windows Server 2019 через командную строку или PowerShell

К сожалению в графическом интерфейсе у вас нет возможности явным образом задать, сколько точек восстановления должен хранить Windows Backup Server, по крайней мере в случае с состоянием системы. Но у нас все еще есть замечательная утилита командной строки wbadmin.

И так у меня есть диск E:\ на него каждый день служба архивации Windows Server 2019 делает резервную копию состояния системы, я устал получать от системы мониторинга оповещения, что на данном диске свободного пространства менее 5%, так как сколько службе Backup не дай, она все скушает и решил подрезать ее. Первое, что я хотел понять сколько точек резервного копирования у меня есть, посмотреть это можно двумя методами:

Получаем список резервных копий через Get-WBSummary

Get-WBSummary

Вы получите вот такую информацию:

В результате я точно вижу, что у меня 32 точки. Раньше еще была и еще действует утилита vssadmin. vssadmin более детально может показать информацию, о каждой точке резервного копирования. Запускать ее можно либо через командную строку или же через PowerShell. Введите команду:

На выходе будет список из всех ваших точек резервного копирования, вот пример:

Выполнение команды vssadmin list shadows

тут так же будут вот такие данные:

Выполнение командлета Get-WBBackupSet

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

Но в случае с установленной ролью архивации Windows Server вы получите ошибку:

Error: Snapshots were found, but they were outside of your allowed context. Try removing them with the backup application which created them.

Error: Snapshots were found, but they were outside of your allowed context. Try removing them with the backup application which created them

Она будет работать в случае клиентских операционных систем по типу Windows 8.1, но не в случае Windows Server. Для нашей задачи есть утилита WBADMIN. Предположим, что вы хотите удалять самую старую точку резервного копирования, для этого введите:

  • -backupTarget:e: - это диск E:\
  • -deleteOldest - последняя точка

Напоминаю, что у меня их было 32. В результате вас спросят хотите ли вы произвести удаление, нажмите "Y". Далее можно заново через Get-WBSummary посмотреть количество точек. В результате видно, что их стало 31.

Как удалить резервные копии из Windows Server Backup

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

WBADMIN DELETE BACKUP -backupTarget:e: -version:12/05/2019-17:00

В результате видно, что у меня было 35 точек восстановления и после удаления точки 12/05/2019-17:00 их осталось 34.

windows backup удаление лишних точек

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

WBADMIN DELETE BACKUP -keepVersions:30 -backupTarget:e:

В результате выполнения команды у меня осталось 30 точек отката и 4 были удалены.

Войти

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

Windows Server 2008. Теневое копирование

Исходные данные: Windows Server 2008 R2 Standart Rus OLP
Роль: файловые службы сервера.
Пользователи имеют полные права в каталогах и могут непреднамеренно удалить любой важный файл.

Открываем оснастку Диспетчер сервера. Выбираем роль Файловые службы -> Управление общими ресурсами и хранилищами. Переходим на вкладку Тома:

045

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

046

Дополнительно можно щелкнуть кнопку Параметры и выставить Максимальный размер ограничение в МБ:

047

Кроме этого в этом же окне можно настроить Расписание:

048

Нажимаем Ok. На вкладке Теневые копии окна Свойства: имя тома - тоже Ok:

049

И наблюдаем, что в столбце Теневое копирование напротив выбранного тома появился значок "зеленой галочки":

050

Как теперь использовать преимущества включенного теневого копирования?
В Проводнике сервера открываем том, на котором пользователь удалил файл.
Правой кнопкой мыши щелкаем папку, внутри которой удален файл, и выбираем Свойства: имя папки:

051a

В окне Свойства: имя папки выбираем вкладку Предыдущие версии, выбираем нужную Версию папки и нажимаем Копировать. . Копируем удаленные файлы в любую папку на диске (либо создаем новую):

052a

Рекомендуется все-таки скопировать файлы, а не восстановить, т.к. если пользователь уже успел создать заново файл с таким же именем. его можно затереть при восстановлении :-)

Читайте также: