Заметки о Windows и других программных продуктах Microsoft...

Миграция данных в Data Protection Manager

Миграция данных в Data Protection Manager

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

Оказывается в DPM начиная с версии 2007 SP1 есть встроенный скрипт MigrateDatasourceDataFromDPM.ps1, предназначенный для миграции данных DPM с одного физического диска на другой. Он позволяет как полностью смигрировать все данные на другой диск, так и перенести отдельные группы хранения и даже единичные объекты.

Примечание. Перед миграцией необходимо добавить новый диск в DPM.

Для того, чтобы смигрировать диск полностью, запускаем консоль управления DPM (DPM Management Shell), выводим все диски DPM на сервере и помещаем их в переменную:

$disk = Get-DPMDisk -DPMServerName dpm01

просмотр дисков DPM

 

Диски в переменной хранятся в виде массива, соответственно к каждому диску можно обращаться по его индексу. Обратите внимание, что индекс может не совпадать с идентификатором диска NtDiskId, так если первый диск $disk[0] имеет идентификатор 0, то у второго диска с индексом $disk[1] идентификатор равен 2.

содержимое переменной $disk

 

Для запуска миграции с диска на диск выполняем команду, которая полностью переносит все данные со старого диска на новый, после чего удаляет старый диск из DPM:

.\MigrateDatasourceDataFromDPM.ps1 -DPMServerName dpm01 -Source $disk[0] -Destination $disk[1]

Перед миграцией стоит иметь в виду, что DPM не поддерживает миграцию для группы Inactive Protection. Если эта группа содержит какие либо объекты, то они не будут перенесены. Кроме того, поскольку на старом диске останутся данные, скрипт не сможет удалить диск из DPM.  Лечится это только полным удалением всего из группы Inactive Protection.

ошибка при миграции

 

При желании можно смигрировать не все данные, а отдельные объекты. Принцип такой же, сначала выводим все группы защиты (Protection Group) и помещаем их в переменную:

$pg = Get-DPMProtectionGroup -DPMServerName dpm01

Затем выбираем нужную группу, например $pg[4], и выводим ее содержимое (Data Source), которое помещаем в еще одну переменную:

$ds = Get-DPMDataSource -ProtectionGroup $pg[4]

И наконец из группы выбираем конкретный объект, например $ds[0].

выбор объекта для миграции

 

Для миграции выбранного объекта можно воспользоваться такой командой:

.\MigrateDatasourceDataFromDPM.ps1 -DPMServerName dpm01 -Source $ds[0] -Destination $disk[1]

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

 
 
Комментарии