Практика Powershell: мониторинг хранилища резервных копий Windows Backup

  • Михаил
  • 12 мин. на прочтение
  • 715
  • 21 Jun 2022
  • 21 Jun 2022

В данной статье рассмотрена реализация мониторинга хранилища файлов резервных копий, создаваемых средствами Windows Backup, при помощи скрипта Powershell с целью контроля своевременности резервного копирования и размера формируемых данных. Также статья ставит задачей привести примеры некоторых полезных приёмов программирования на языке Powershell.

 

Длинное вступление


Хорошо располагать системой управления резервным копированием, которая работает по расписанию и вовремя уведомляет администратора о состоянии дел в его подчас непростом хозяйстве. Хорошо и, на первый взгляд – не слишком накладно: благо, выбор как коммерческих, так и бесплатных систем этого рода сейчас достаточно широк. Однако уровень трудоёмкости как развёртывания, так и поддержания любой такой системы в рабочем состоянии, а также аппаратные затраты на неё предполагают некий разумный минимум сложности самой IT-системы, данные элементов которой предполагается резервировать. Думается что развёртывание, скажем, Bacula для нужд небольшого офиса, число рабочих станций под Windows в котором – около дюжины и есть, положим, два-три сервера, представляет собой непродуктивные затраты времени и материальных ресурсов в контексте конечного продукта предприятия и единственным позитивным результатом такого действия будет практический опыт, получаемый системным администратором. Рассмотрение систем децентрализованного резервного копирования, предлагающих хороший уровень функций и относительно высокую автономность, приводит к коммерческим продуктам типа Veeam Endpoint Backup.

Бесплатные же редакции таких программ, к сожалению, если и могут похвастать какими-либо преимуществами перед встроенным Windows Backup, то эти преимущества актуальны не для всех и не во всех случаях и далеко не всегда очевидны. Да и «родная» поддержка механизма теневых копий, прямо скажем, является его большим плюсом. Словом, иногда возникает ощущение, что все дороги ведут к этому самому Windows Backup. На самом деле, вопрос выбора и организации системы резервного копирования является сугубо индивидуальным для каждого конкретного случая и решается на фоне, в том числе, субъективных факторов. Однако в любом случае хочется создать надёжную и стабильную систему, которая, к тому же, проста в обслуживании. А вот как раз функциями обобщённого мониторинга масштаба организации автономные агенты резервного копирования похвастать и не могут. На этом, думаю, пора завершать это предисловие, дабы не наскучить слишком скоро.

Мизансцена наша такова: есть десяток компьютеров под управлением Windows 7 и Windows 10, а также сервер под управлением Windows Server 2008. Есть также NAS, приобретённый для использования в качестве хранилища резервных копий данных. Стоит задача: без дополнительного бюджета обеспечить резервное копирование несложного, но достаточно надёжного рода. Несложного, в том числе, и потому, что штатного системного администратора в организации нет, и все IT-проблемы решаются администратором-совместителем при посильной помощи некоторых пользователей. Принято решение воспользоваться средствами Windows Backup, который будет сохранять данные в выделенную папку с именем «netbackup» на удаленной машине с сетевым именем «SA-NAS» в соответствии с локальными расписаниями каждого компьютера. Это решение работает, причём – достаточно стабильно, и каждый компьютер регулярно отправляет отчёты о выполнении резервного копирования на email системного администратора (считываются из системных логов скриптом). Но вот вопрос анализа объёмов и «свежести» создаваемых архивов остаётся открытым, поскольку Windows Backup не расположен делиться этой информацией иначе как интерактивно. Системный администратор засучил рукава и начал писать очередной скрипт, для чего пришлось сначала разобрать вопрос структуры данных резервных копий, создаваемых Windows Backup. Итак…

 

Что создаёт Windows Backup и как это организовано?


Чтобы ответить на этот вопрос придётся, совсем по-одесски, задать встречный вопрос: «А что вы конкретно имеете в виду?» Ибо Windows Backup, как известно, может создавать (а) резервные копии избранных элементов файловой системы компьютера, т.е. файловые архивы (file backup), и (б) образы дисковых томов (image backup). Мы сами выбираем тип резервного копирования для конкретного компьютера при его настройке при помощи соответствующего апплета Панели Управления и, как известно, можем задать как архивирование лишь определённых папок и файлов, так и формирование образов выбранных дисковых томов, а также комбинацию этих двух методов. Не хочется отдаляться от темы статьи, вдаваясь в описание этой операции, которая является тривиальной, так что за подробностями осмелюсь отослать читателя к соответствующей документации и поисковым системам Интернета. Я же приведу данные собственного изучения структур данных Windows Backup, называть которое модным словом «реинжиниринг» как-то нескромно в силу относительной простоты задачи. Ещё замечу, что далее в тексте для каталогов файловой системы буду использовать термин «папка» – для того, чтобы не было путаницы с термином «каталог», который будет употребляться только применительно к файлам каталогов Windows Backup.

Наборы данных, создаваемые Windows Backup в каждом из двух режимов архивации на целевом носителе, будут отличаться структурой.

Рисунок 1На первом рисунке показан типичный приÐ