Mark Minasi's Reader Forum
Mark Minasi's Reader Forum
Home | Profile | Register | Active Topics | Active Polls | Members | Search | FAQ | Minasi Forum RSS Feed
 All Forums
 HALP! Questions on Windows and Windows Server
 Microsoft Data Protection Manager
 migrating data from a disk array to a new array

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

Screensize:
UserName:
Password:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert EmailInsert Image Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Note: please do not cross-post.
Cross-postings will be deleted and ignored.
Thanks for helping to keep this forum junk-free!
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
wobble_wobble Posted - 05/10/2011 : 11:14:00 AM
Trying to use the MigrateDatasourceDataFromDPM.ps1 to migrate the protected data from a smaller disk array to a larger disk array and getting an error, that I cannot understand.


PS D:\Program Files\DPM 2007
DPM\bin> .\MigrateDatasourceDataFromDPM.ps1 -dpmser
ver dpm-server.xxx.local -Source $disk[3] -Destination $disk[4]
D:\Program Files\DPM 2007\DPM\bin\MigrateDatasourceDataFromDPM.ps1 : The sourc
e can either be a disk or a datasource and destination can either be a DiskPool
or a pair of custom volumes
At line:1 char:35
+ .\MigrateDatasourceDataFromDPM.ps1 <<<< -dpmserver dpm-server.xxx.local -Sour
ce $disk 3 -Destination $disk 4
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorExcep
tion
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,MigrateDatasourceDataFromDPM.ps1


Using info from here for the power shell script;
http://blogs.technet.com/b/askcore/archive/2009/06/22/how-to-use-the-migratedatasourcedatafromdpm-ps1-dpm-powershell-script-to-move-data.aspx
26   L A T E S T    R E P L I E S    (Newest First)
wobble_wobble Posted - 05/25/2011 : 4:54:38 PM
I found a script to query the SQL database....but how do I get at the DB?

AS to the PSS engineers, yup, going to record them next time to a huge disk or something!
NMDANGE Posted - 05/25/2011 : 4:18:51 PM
DPM should automatically delete any volumes when the datasource is deleted. It would be unusual for that not to happen - unless the partitions were created manually and not using DPM.

This blog post has a PowerShell script that can list every data source and the corresponding volume names.
http://blogs.technet.com/b/dpm/archive/2011/01/05/how-to-use-san-recovery-option-and-mapping-data-source-volumes-to-windows-disks.aspx

There are VSS commands and PowerShell scripts to figure out all this stuff. When I had an issue on my DPM server, I watched the PSS engineer execute a bunch of commands. If only I had saved them!
wobble_wobble Posted - 05/25/2011 : 3:21:51 PM
The migration does appear to 'move the data complete' but there is 'stuff' left behind.

Looking at the volumes and the DPM console seems to indicate that all bar a SQL Server restore points have moved....but the maze you see above is a disaster to track.

I ran the prune DB script and brought the retention down to 40 days, it got rid of a bit more, but I suspect that some of the volumes are 'old' or bad backups from the eng who first set it up.

I'll agree that the price is great, buy SCE Essentials plus and DPM is peanuts. But 15 years experience with BE/ NTbackup/ Arcserve and fairly good documentation as opposed to voodoo PS commands means its a bit hard.

But any way to examine some of my dodgy volumes and see whats in or on it?
NMDANGE Posted - 05/24/2011 : 7:04:49 PM
So basically when you migrate from one disk to another, you have to wait for all the existing recovery points to expire before the volumes will be deleted. So if your short term retention windows is 60 days, you can't remove the old disks until 60 days after you run the migration command in PowerShell.

I agree that it does need babysitting, but compared to other backup solutions (at least the ones I've used) it's really not bad... and it is pretty cheap.
wobble_wobble Posted - 05/24/2011 : 6:05:47 PM
I'm really starting to dislike DPM....grand on intitial setup with enough disk, but needs a lot of babysitting.
wobble_wobble Posted - 05/24/2011 : 5:57:27 PM
OK, having an issue migrating the data off 2 of the disks.

So, can I get a output of what data/ server is backed up onto what disk, as opposed to what I see.
Or can I migrate a server/ volume at a time?

To see what I see....



Not very informative!
Jazzy Posted - 05/12/2011 : 06:43:36 AM
It's just an example, he demonstrates an easier way to select the disk with Ntdiskid 2. Notice that the author of the arcticle works with disks with Ntdiskid 1 and 4.
wobble_wobble Posted - 05/12/2011 : 05:35:59 AM
quote:
Originally posted by Jazzy

quote:
He's doing some magic with maths ( if my long forgotten coding is recalled correctly) hoping that the maths in his instance works right.
$source = get-dpmdisk | where {$_.ntdiskid -eq 2} - here, is he taking away 2 from the figure of the ntdiskid?

No he's not, he is filtering the list of dmpdisks where the Ntdiskid property is equal (eq) to 2. In plain English, he aks for all DPM disk with an Ntdiskid value of 2 and puts them in the $source variable. In fact, there is only one disk which has the correct value so this means that the $source variable now is filled with the name of the right disk. Now we can use the $source variable to tell the script which disk we want to use as source disk.





Why did he pick 2 above?
Jazzy Posted - 05/12/2011 : 02:53:38 AM
quote:
He's doing some magic with maths ( if my long forgotten coding is recalled correctly) hoping that the maths in his instance works right.
$source = get-dpmdisk | where {$_.ntdiskid -eq 2} - here, is he taking away 2 from the figure of the ntdiskid?

No he's not, he is filtering the list of dmpdisks where the Ntdiskid property is equal (eq) to 2. In plain English, he aks for all DPM disk with an Ntdiskid value of 2 and puts them in the $source variable. In fact, there is only one disk which has the correct value so this means that the $source variable now is filled with the name of the right disk. Now we can use the $source variable to tell the script which disk we want to use as sourc disk.

Regarding your remarks about Powershell, I agree with you that PowerShell is not always easy, nor consistent in the output to screen you're seeing. But operations with PowerShell, for example filtering, makinge a selection, working with variables, etc. ar consistent everywhere. To recognize that you need to be comfortable with the basics, also if you're familiar with the Powershell basics you better understand how cmdlets work and you no longer mind that the Active Directory Powershell cmdlets give different output than the Exchange or DPM ones.

I don't think you that you need to understand coding to work with Powershell. In fact, I don't understand coding at all but I did manage to gain working knowledge of Powershell through forcing myself to use Powershell instead of the gui, trying to make a script for a migration task and reading some blog posts about Powershell tasks. I even read a book. :)

For you, and anyone working in IT in the Microsoft world nowadays, I would recommend to learn Powershell ASAP. I don't know what works for you, maybe you should read a book, attend a class or whatever helps you to learn it. Should you be a Powershell expert? Of course not, as long as you understand how cmdlets and basic operations with cmdlets work. For example:
- finding names of cmdlets: get-cmdlet, get-help, etc.
- using tab completion to select a cmdlet or even find parameters
- piping: get-mailbox | set-mailbox -MaxSendSize 10 MB
- working with operators (-eq, -ne, -like, -gt, etc.)
- filtering: get-mailbox | where { $_.displayname -like "*john*" } or get-dpmdisk | where {$_.ntdiskid -eq 2}
- working with variables: $NYMailboxes = get-mailbox | where { $_.office -eq "New York HQ" }

If you don't get this, you will be less able to perform administrative tasks against Microsoft server products. The good news is, you only need to learn the basics. You don't need to learn all possible cmdlets by heart, we have Google and the product documentation for that.

I hope this makes sense, I think it does. If you want better explanation about a certain Powershell example, I hope the other members here van epxlain it better than I can. My lack of knowledge of the English language makes it a bit hard to choose the right words to explain things.
wobble_wobble Posted - 05/11/2011 : 6:13:52 PM
Jetze,

I did programming back in 1989, in college, in assembly and apparently was quite good at it. Now my maths has not failed, thats 22 years ago, but by god my ability to understand coding has.

But here
quote:

hile using the array index on $disk works, it relies on you correctly identifying the disk in the array. Tidier to use $source = get-dpmdisk | where {$_.ntdiskid -eq 2}. Similarly, I would then set $dest = get-dpmdisk | where {3,4 -contains $_.ntdiskid} (note that I can specify all the disks in my new storage pool). Migration command would then be ./MigrateDatasourceDataFromDPM.ps1 -DPMServerName RKW2K3-DPM -Source $source -Destination $dest



He's doing some magic with maths ( if my long forgotten coding is recalled correctly) hoping that the maths in his instance works right.
$source = get-dpmdisk | where {$_.ntdiskid -eq 2} - here, is he taking away 2 from the figure of the ntdiskid?

set $dest = get-dpmdisk | where {3,4 -contains $_.ntdiskid} - I assume again that he has set physical disk numbers to 3 and 4)

But I use powershell because I have to, not because I want to. I cannot understand the error codes or the error messages, they seem very vague for something so precise. Also, its not universal, run powershell on Server 2003 and you can get 3 different answers depending on the version of PS installed. In Exchange, 2007 and 2010 gives different outputs for the same command.

Is it simple, yes for the easy stuff
get-database
get-clientaccessserver
get-dpmdisk

But in this instance, for something that will happen a lot ( we have DPM on 5 sites and will need to do the same on each site) its not even easy to troubleshoot, unless you understand coding. And to be perfectly honest, with all that goes on, when or where do I get the chance to even attempt to understand the nuances of something that is so inconsistent?

Jazzy Posted - 05/11/2011 : 4:50:14 PM
I think you have to understand that you're putting the disks in an array ($disk) and later select one item from that array. That's basic Powershell, has nothing to do with Diskpart or Storage Manager. I understand why this is confusing though. On the other hand, the author of the article spent several paragraphs explaining about the array and the numbers...

In the comments below that article someone gives an alternative way:
quote:
while using the array index on $disk works, it relies on you correctly identifying the disk in the array. Tidier to use $source = get-dpmdisk | where {$_.ntdiskid -eq 2}. Similarly, I would then set $dest = get-dpmdisk | where {3,4 -contains $_.ntdiskid} (note that I can specify all the disks in my new storage pool). Migration command would then be ./MigrateDatasourceDataFromDPM.ps1 -DPMServerName RKW2K3-DPM -Source $source -Destination $dest

See?
wobble_wobble Posted - 05/11/2011 : 4:33:50 PM
After looking at the post again, and now seeing what the issue was, I still think its a bit pants.

Diskpart, Storage manager and get-dpmdisk -dpmservername all report the disk as number 4, yet you have to count down the number of disks, that are displayed, starting at 0.

Not really that well described, explained, error reported or understood by myself.

But sure the good lessons are the hard ones.
Jazzy Posted - 05/11/2011 : 08:47:11 AM
Ah, I see. Sorry I was slow. :)
Rambler Posted - 05/11/2011 : 07:54:33 AM
That's what I said before. There's a specific note about that in the blog, so that's why I asked :)

Nevermind, glad you got it sorted out.
wobble_wobble Posted - 05/11/2011 : 06:57:04 AM
Jetze,

you got beaten by 20 minutes by Claus.

The correct line is;
./MigrateDatasourceDataFromDPM.ps1 -DPMServerName dpm-server -Source $disk[3] -Destination $disk[1]
Jazzy Posted - 05/11/2011 : 06:12:08 AM
Okay, I see the problem. The 4 disks are stored in the array in the order you see them on the screen. They're numbered starting with zero, so if you'd pick one you don't choose the number under 'NtDiskId' but the position in the list.

So, the list is presented like this:
NETAPP LUN... Healthy 3 697 GB 12 GB Dynamic
IET VIRTUA... Healthy 4 5545 GB 5545 GB Dynamic
NETAPP LUN... Healthy 2 600 GB 0 GB Dynamic
NETAPP LUN... Healthy 1 1176 GB 2 GB Dynamic

If the first one is the source and the second the target, your line woule be like this:
./MigrateDatasourceDataFromDPM.ps1 -DPMServerName dpm-server -Source $disk[0] -Destination $disk[1]

Does this make sense?
wobble_wobble Posted - 05/10/2011 : 7:06:47 PM
Welcome to the DPM Management Shell!

Full list of cmdle
Welcome to the DPM Management Shell!

Full list of cmdlets: Get-Command
Only DPM cmdlets: Get-DPMCommand
Get general help: help
Get help for a cmdlet: help <cmdlet-name> or <cmdlet-name> -?
Get definition of a cmdlet: Get-Command <cmdlet-name> -Syntax
Sample DPM scripts: Get-DPMSampleScript

PS D:\Program Files\DPM 2007\DPM\bin> Get-DPMDisk -DPMServerName dpm-server

Name Status NtDiskId Total Capaci Unallocated Type
ty Space
---- ------ -------- ------------ ------------ ----
NETAPP LUN... Healthy 3 697 GB 12 GB Dynamic
IET VIRTUA... Healthy 4 5545 GB 5545 GB Dynamic
NETAPP LUN... Healthy 2 600 GB 0 GB Dynamic
NETAPP LUN... Healthy 1 1176 GB 2 GB Dynamic


PS D:\Program Files\DPM 2007\DPM\bin> $disk = Get-DPMDisk -DPMServerName dpm-server
PS D:\Program Files\DPM 2007\DPM\bin> $disk

Name Status NtDiskId Total Capaci Unallocated Type
ty Space
---- ------ -------- ------------ ------------ ----
NETAPP LUN... Healthy 3 697 GB 12 GB Dynamic
IET VIRTUA... Healthy 4 5545 GB 5545 GB Dynamic
NETAPP LUN... Healthy 2 600 GB 0 GB Dynamic
NETAPP LUN... Healthy 1 1176 GB 2 GB Dynamic


PS D:\Program Files\DPM 2007\DPM\bin> ./MigrateDatasourceDataFromDPM.ps1 -DPMSer
verName dpm-server -Source $disk[3] -Destination $disk[4]
D:\Program Files\DPM 2007\DPM\bin\MigrateDatasourceDataFromDPM.ps1 : Invalid input parameter specified
At line:1 char:35
+ ./MigrateDatasourceDataFromDPM.ps1 <<<< -DPMServerName dpm-server -Source $d
isk[3] -Destination $disk[4]
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,MigrateDatasourceDataFromDPM.ps1

Usage
Option1:
MigrateDatasourceDataFromDPM.ps1 [-DPMServerName] <string> [-Source] <Disk> [-De
stination] <Disk[]>
-Migrates the replica volumes and recovery point volumes from the source disk to the set of destination disks. The destination could either be a single disk or a set of disks. DPM will not use the source disk for newer protection. Use this option when migrating disks managed by DPM.

Option2:
MigrateDatasourceDataFromDPM.ps1 [-DPMServerName] <string> [-Source] <Datasource
> [-Destination] <Disk[]>
-Migrates the replica volumes and recovery point volumes of the specified data source to the set of destination disks. The destination could be either a single disk or a set of disks. Use this option to migrate data protected on a custom volume to a disk managed by DPM.

Option3:
MigrateDatasourceDataFromDPM.ps1 [-DPMServerName] <string> [-Source] <Datasource
> [-Destination] <DpmServerVolume[]>
-Migrates the replica volume and recover point volume for the specified data source to the specified pair of replica and recovery point volumes. The first element of the volume array should be the destination replica volume and second element should be the recovery point volume. Use this option to migrate any DPM data source to a custom volume.

NMDANGE Posted - 05/10/2011 : 6:57:03 PM
Before running the script did you run Get-DPMDisk to see that you are using the correct index? The index does *not* match the NT Disk ID you see in Disk Management.
wobble_wobble Posted - 05/10/2011 : 4:15:58 PM
I tried both FQDN and Netbios in case I was missing something. In the manual version it looks for the FQDN.

When you add a disk resource to DPM, it looks after the formatting for you. I'll try adding a small partition and see what happens.
Rambler Posted - 05/10/2011 : 4:00:37 PM
Can't say I recall the details, but doesn't have the disk in the pool be formatted?

Btw. I'm sure the command let doesn't want FQDN, just plain NetBIOS computer name.
wobble_wobble Posted - 05/10/2011 : 3:40:52 PM
disk[3] is one of 3 small disks, 1 to 3 and the new one is disk[4] a 8TB array.

So hopefully I have it in the right order.
DPM see's it as a 6TB approx dynamic but unformatted disk.
Rambler Posted - 05/10/2011 : 3:29:39 PM
Sorry to ask the blunt question, but are you sure your referring to the correct drives by those array indices?
I've used that blog entry to migrate DPM storage in the past and it worked fine - the only confusion was the different sorting of get-dpmdisk (compared to the NtDiskId).

wobble_wobble Posted - 05/10/2011 : 2:49:19 PM
I get the disk arrays listed as per
Get-DPMDisk -DPMServerName dpm-server
command.

I tried just using the
MigrateDatasourceDataFromDPM.ps1
command, it asks for the DPM server name, then automatic or manual, then the PServer.
I've tried several servers that we are protecting, by fqdn, but then it returns an error satting it cannot find a disk or volume that is being protected.
Jazzy Posted - 05/10/2011 : 2:00:13 PM
What happens if you type $disk followed by an enter?
wobble_wobble Posted - 05/10/2011 : 12:02:46 PM
Being trying several and all to no avail

.\MigrateDatasourceDataFromDPM.ps1 -dpmservername dpm-server.xxx.local -Source $disk[3] -Destination $disk[4]

give the same error


PS D:\Program Files\DPM 2007\DPM\bin> ./MigrateDatasourceDataFromDPM.ps1 -DPMSer
verName dpm-server -Source $disk[3] -Destination $disk[4]
D:\Program Files\DPM 2007\DPM\bin\MigrateDatasourceDataFromDPM.ps1 : Invalid in
put parameter specified
At line:1 char:35
+ ./MigrateDatasourceDataFromDPM.ps1 <<<< -DPMServerName dpm-server -Source $d
isk[3] -Destination $disk[4]
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorExcep
tion
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorExceptio
n,MigrateDatasourceDataFromDPM.ps1

FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,MigrateDatasourceDataFromDPM.ps1

This was a migration from DPM 2007 to DPM 2010, if that is of any use/ info.
Jazzy Posted - 05/10/2011 : 11:52:16 AM
I think the correct parameter is called -dpmservername, not -dpmserver. Can you try that?

Mark Minasi's Reader Forum © 2002-2011 Mark Minasi Go To Top Of Page
This page was generated in 0.19 seconds. Snitz Forums 2000