Veeam Backup Free Edition: Теперь с PowerShell!

Vladimir EreminЭта статья написана Владимиром Ереминым, менеджером Veeam по стратегии развития продуктов. Владимир активный участник форумов Veeam, Twitter и Spiceworks. Одна из областей специализации Владимира — PowerShell, поэтому статья посвящена работе с этим инструментом. Если у вас есть вопросы по принципам работы с PowerShell из этого материала, вы можете их задать на форумах Veeam. Кроме того, вы можете загрузить типовой сценарий для VMware и Hyper-V, а также обсудить их на форумах Veeam.

Veeam Backup Free Edition — самый популярный из инструментов Veeam, в первую очередь благодаря функционалу VeeamZIP, который позволяет создавать полные копии неограниченного числа виртуальных машин (ВМ) по необходимости. Однако VeeamZIP всегда имел одно небольшое, но неприятное ограничение — невозможность запланировать автоматическое резервное копирование. Поскольку запуск VeeamZIP осуществляется вручную, его интерфейс просто не предусматривал создания расписания. Если вы уже столкнулись с этим, то новости вас несомненно обрадуют: в Update 2 этой проблемы больше нет Мы получили по этому поводу множество обращений на форумах, в Twitter и других площадках и пошли навстречу пожеланиям пользователей. Теперь в редакции Free Edition доступен командлет Start-VBRZip PowerShell.

Принцип работы

Как уже было сказано, главная возможность Veeam Backup Free Edition — создание резервных копий ВМ с помощью VeeamZIP (с последующим восстановлением ВМ, файлов гостевых ОС и приложений из этих резервных копий). VeeamZIP всегда создает файл полной резервной копии (.vbk), который представляет собой отдельную точку восстановления. Редакция Free Edition позволяет сохранять его в репозитории резервных копий, а также локально или на сетевом диске.

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

image

 

Update 2 позволяет написать простой сценарий PowerShell (здесь можно загрузить типовой сценарий для VMware, а здесь — для Hyper-V). Он запустит VeeamZIP для выбранной ВМ по расписанию, которое должно быть задано через Windows Scheduler. Мы разработали типовой сценарий, который не только обеспечит запуск резервного копирования ВМ с помощью VeeamZIP, но и отправит по электронной почте отчет о проделанной работе!

Параметры сценария

Сценарий позволяет создавать резервные копии работающих ВМ, которые запущены как на автономных хостах, так и в кластерах или на сервере vCenter. Перед запуском сценарий необходимо указать значения трех обязательных параметров: имена ВМ для резервного копирования, размещающие эти ВМ хосты и каталог, куда будут сохранены копии. Обратите внимание: сценарий был обновлен 18 мая по отзывам наших пользователей.

 

##################################################################

# Переменные, определяемые пользователем

##################################################################

# Имена ВМ для резервного копирования, через запятую (обязательный параметр). Например, $VMNames = “VM1”,”VM2”

$VMNames = ""

# Имя сервера vCenter или автономного хоста, где находятся ВМ (обязательный параметр)

$HostName = ""

# Каталог сохранения резервных копий. Например, C:\Backup (обязательный параметр)

$Directory = ""

 

По желанию вы можете изменить степень сжатия и срок хранения копии, отключить заморозку VMware и настроить уведомления:

# Требуемая степень сжатия (опционально; возможные значения: 0 - нет, 4 - с поддержкой дедупликации, 5 - оптимальная, 6 - высокая, 9 - максимальная)

$CompressionLevel = "5"

# «Заморозить» ВМ при создании снапшота (опционально; в гостевой ОС должны быть установлены VMware Tools или Hyper-V Integration Components. Возможные значения: $True/$False)

$EnableQuiescence = $True

# Настройки хранения (опционально; по умолчанию файлы VeeamZIP не удаляются и хранятся в указанном каталоге неограниченное время.

# Возможные значения: Never, Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)

$Retention = "Never"

 

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

##################################################################

# Настройки уведомлений

##################################################################

# Включить уведомления (опционально)

$EnableNotification = $True

# Сервер SMTP

$SMTPServer = ""

# Отправитель

$EmailFrom = ""

# Получатель

$EmailTo = ""

# Тема

$EmailSubject = ""

 

Итоговый отчет будет выглядеть следующим образом:

Name Start Time End Time Result Details
CentOS-tiny_2015-03-26T180459 3/26/2015 6:04:59 PM 3/26/2015 6:07:17 PM Warning Processing finished with warnings at 3/26/2015 6:07:13 PM Cannot use VMware Tools quiescence because VMware Tools are not found.
CentOS-tiny_replica_2015-03-26T180720 3/26/2015 6:07:20 PM 3/26/2015 6:11:20 PM Success Processing finished at 3/26/2015 6:11:18 PM

Все указанные настройки производятся с помощью значений соответствующих переменных. Если вы хотите, чтобы файлы резервных копий удалялись через две недели, для переменной $Retention следует установить значение «In2Weeks» (строка) и т. д. Нет необходимости описывать здесь назначение каждой переменной и перечислять допустимые значения: в типовом сценарии дано краткое описание всех переменных.

Настраиваем расписание запуска сценария

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

Самый простой способ создать расписание для выполнения регулярного резервного копирования — использовать планировщик заданий Windows (Windows Task Scheduler). Просто откройте планировщик и создайте новую простую задачу:

image

Введите для нее имя и описание, чтобы в будущем было сразу понятно назначение задачи.

Следующая страница — «Task Trigger» (Триггер задачи). Здесь все очень просто и интуитивно понятно. Доступные параметры обеспечивают достаточную гибкость настроек: в зависимости от требуемого показателя RPO, резервное копирование можно выполнять от одного раза в месяц до нескольких раз в день. Большинство пользователей выполняют резервное копирование один раз в день:

image

Задайте время выполнения задачи в нерабочие часы. В приведенном примере задача выполняется каждый вечер в 22:00, начиная с 22 апреля 2015.

image

На следующей странице «Action» (Действие) укажите необходимость запуска программы и нажмите «Next» (Далее).

clip_image002

На панели «Start a Program» (Запуск программы) необходимо ввести в соответствующее поле команду:

Powershell –file “Путь к файлу Veeamzip.ps1”

clip_image004

И все! Если после создания задачи нужно внести в нее изменения, откройте окно ее свойств. Для этого поставьте флажок «Open the Properties» (Открыть свойства), перед тем как нажать «Finish» (Готово):

clip_image006

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

clip_image008

Закончив настройку задачи, щелкните по ней правой кнопкой мыши и выберите «Run» (Выполнить), чтобы убедиться в правильности выполнения.

clip_image009

PowerShell дает пользователям Veeam Backup Free Edition то, о чем они давно мечтали!

Теперь у вас есть отличная возможность сделать то, чего давно хотели — создать расписание резервного копирования для Veeam Backup Free Edition. Решение открывает гораздо больше возможностей для бэкапа и восстановления данных, чем альтернативные решения на базе сценариев.

НОВИНКА
V11

Предотвращение потерь данных
Защита от программ-вымогателей

#1 Backup and Recovery

35 Comments

  • Андрей Шибанов:

    По данной ссылке: https://www.veeam.com/blog/wp-content/uploads/2015/05/VeeamZIP-updated-HV.zip
    Ошибка в строчке:
    $VM = Find-VBRViEntity -Name $VMName -Server $Server
    Коммандлет Find-VBRViEntity используется для VMware. А скрипт вроде как для Hyper-V.
    Должнобыть Find-VBRHvEntity
    $VM = Find-VBRHvEntity -Name $VMName -Server $Server

  • Polina Vasileva:

    Андрей,
    Спасибо, что обратили внимание. Обновила ссылки на скрипты. Правильный скрипт для Hyper-V: https://www.veeam.com/blog/wp-content/uploads/2015/05/VeeamZIP-HV-updated.zip

  • GSlavG:

    Я правильно понимаю, что в строке:
    $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory …
    параметру -Folder мы можем передать только локальную директорию? Будет ли возможность работать с сетевыми каталогами во FREE версии? Или придется использовать «костыли» с репозиториями (чего очень делать не хочется)?

  • GSlavG:

    Спасибо.
    А есть ориентировочные сроки добавления -NetworkCredentials?

  • Vladimir Eremin:

    На данный момент «одна из следующий версий продукта» и есть ориентировочный срок. Точнее сейчас сказать сложно.

  • Gastello:

    Появился ли параметр -NetworkCredentials в Veeam Backup & Replication 9.0 Update 2 ? и будет ли обновлён скрипт ? Заранее благодарю за ответ :)

  • Gastello:

    Судя по всему — не появился.

  • Vladimir Eremin:

    К сожалению, нет. Как только оный появится, скрипт будет обновлен.

  • Владислав Борисычев:

    Здравствуйте!
    Когда же появится — NetworkCredentials?
    Подскажите, о каких именно правах речь: «Насколько мне известно, проблема записи на шару решается предоставлением необходимых прав как сервис, так и компьютер аккаунтам.»?
    Задача записывать архивы на NAS.

  • Vladimir Eremin:

    Добавили в Update 2, который буквально уже за углом.

  • Владислав Борисычев:

    А за углом — это сколько дней-месяцев? :)

  • Polina Vasileva:

    Владислав, скоро-скоро! ) Зарегистрируйтесь на Veeam Forums (https://forums.veeam.com/) и подпишитесь на нашу рассылку — узнаете одним из первых.

  • Владислав Борисычев:

    Очень ждем обновление скрипта!

  • Александр Вырупаев:

    Использую Veeam Backup Free Edition 9.5 update 1
    При задании параметра $Retention значением In2Weeks вчерашние бэкапы удаляются! Остается только бэкап за сегодня! Это косяк или я что-то не понимаю в работе этого параметра?

  • Vladimir Eremin:

    Владислав, а какое конкретное обновление вас интересует? Если вы про -NetworkCredentials, то Update 2 уже вышел, и теперь Start-VBRZip может похвастаться новым параметром -NetworkCredentials.

    Теперь для того, чтобы бекапить на шары, достаточно задать два параметра -Folder и -NetworkCredentials.

  • Vladimir Eremin:

    Странно. Думаю, стоит накатить Update 2 и посмотреть, ушли ли проблемы. Если нет, обратиться в саппорт.

    В свое время проверяли на U1 работоспособность ретеншена, никаких багов не выявили.

  • Владислав Борисычев:

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

  • Сергей:

    Я делал так:

    $netcreds = Get-VBRCredentials -Name «Domainadministrator»

    А в двух строках скрипта:

    $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention

    В конце добавил -NetworkCredentials $netcreds

    С сетевыми ресурсами вида \servershare все работает. На те же шары, подключенные как сетевые диски все равно писать не хочет. Выход либо использовать iSCSI либо сетевые пути.

  • Vladimir Eremin:

    Сергей расписал все верно.

    Start-VBRZIP -Folder (, путь до шары) -NetworkCredentials (, креды для доступа к шаре>)

  • Владислав Борисычев:

    Спасибо!

  • Владислав Борисычев:

    Использую Veeam Backup Free Edition 9.5 update 2
    Подскажите, пожалуйста, почему может не работать $Retention?
    Пробовал два варианта: Tonight, TomorrowNight — не работают.

  • Дмитрий Устинов:

    У меня такая же проблема!
    Использую Veeam Backup Free Edition 9.5 update 2 и Microsoft Windows Hyper-V Server 2012 R2.
    При любом значении Retention (кроме «Never») резервные копии удаляются на следующий день.
    При этом в C:ProgramDataVeeamBackup находятся файлы логов заданий, в которых можно найти строки вроде «[VeeamZIPRetention] Create, id ‘1f34916a-260d-4511-b159-d23860baf417’, retain days ‘08.01.2017 0:00:00’, repository id ‘00000000-0000-0000-0000-000000000000’, target file ‘D:VMBAckup2017.07.01VM1D2017-07-01T010043.vbk'».
    Следовательно, скрипт корректно передаёт значение $Retention в задачу, а планировщик очистки заданий работает некорректно.

  • Vladimir Eremin:

    Провели ряд тестов, установить проблему не смогли. Чего уж там, даже проблема не воспроизвелась.

    Не могли бы Вы проверить, отрабатывает ли Retention, если задавать его через GUI?

    Заранее спасибо.

  • Дмитрий Устинов:

    Большое спасибо за ваш отклик! Вчера провёл запрошенный вами тест.
    Два сервера Windows Server 2012 R2 std с ролью Hyper-V. На каждом локально установлен Veeam B&R 9.5 Upd2. На каждом вчера было запущено по два задания VeeamZip: одно вручную через GUI, второе через Powershell. В каждом задании указано хранить резервные копии 1 месяц. В итоге к 22:00 получил 4 резервных копии в одной папке.
    Проверил, что в C:ProgramDataVeeamBackup в логе каждого задания есть строка такого вида: «[06.07.2017 21:44:19] Info [VeeamZIPRetention] Create, id ‘6520a4de-4a9f-485b-97b5-38a73c40201a’, retain days ‘08.06.2017 0:00:00’, repository id ‘00000000-0000-0000-0000-000000000000’, target file ‘C:ClusterStorageVolume1VM_BackupOperational2017.07.06MainDCD2017-07-06T214413.vbk'».
    Сегодня в 07:00 папка уже была пуста.
    Сожалею, что не догадался сохранить там же несколько ВМ с AutoDelete=»Never» для проверки.

    Готов предоставить любую другую информацию, которая поможет в решении этой проблемы.

  • Vladimir Eremin:

    Спасибо за информацию, раз проблема воспроизвелась через GUI, будем смотреть дальше в эту сторону.

  • Александр Вырупаев:

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

  • Vladimir Eremin:

    На данный момент ретеншен работает как-то странно, если верить пользователям скрипта. Не могли бы Вы попробовать сделать то же самое через GUI и посмотреть, воспроизводится ли проблема или нет?

  • Александр Вырупаев:

    Так через gui я могу только сделать новый бэкап. Он же никак не повлияет на уже существующие? А проблема только в очистке.

  • Vladimir Eremin:

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

  • Александр Вырупаев:

    Попробовал через интерфейс. Ничего не изменилось.
    Зато обнаружил еще один косяк. Сегодня 21.07, а у меня остались только бэкапы за периоды: 24.06-28.06, 08.07-17.07, и 21.07 Куда делись бэкапы 18-20 числа? Я их не удалял, судя по логам они были сделаны корректно. И так на двух серверах у каждой из 7 VM. Продукт вообще тестируется перед выходом или потом с разворачиванием тоже будут проблемы?

  • Andrey:

    Добрый день! У меня аналогичная проблема. В скрипте выставлен параметр $Retention = «In3days». Но бэкапы не удаляются вообще. Через GUI то же самое. Пробовал менять на другое значение параметр не помогает.

  • Vladimir Eremin:

    Починили в Update 3, который выйдет в скором будущем.

  • Andrey:

    Владимир, увы я нашел новый баг. Его обещают исправить в Update 4. Дело в том, что в случае копирования бэкапа на сетевое хранилища, куда есть доступ только по логину и паролю, Вим может только писать бэкапы, а вот удалять не может (он просто не использует учетные данные, что передаются в скрипте, а ломится учеткой сервера). Но о баге теперь знают и обещают поправить :)

  • Vladimir Eremin:

    Если Вас не затруднит, напишите мне номер кейса — уточню детали у инженера технической поддержки. Спасибо.

  • Andrey:

    Владимир, номер кейса 02324243.

Добавить комментарий

Ваш e-mail не будет опубликован.