Microsoft Virtualization Discussions
Microsoft Virtualization Discussions
Has anyone tried to use the NDMP copy commands to copy files between controllers over a non-routed network? I'm working on updating my restore script (https://communities.netapp.com/docs/DOC-23783) so that if you chose a production Filer, it will use SnapRestore and if you chose a DR Filer it will use NDMP copy. It works if I use the public IPs, but not if I use our non-routed storage network IPs (our storage network is 10GB whereas public is only 1GB, hence the desire to use the storage network).
Here is the error I receive:
Start-NaNdmpCopy : A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond <storage_IP>:10000
Here is the command I am running (see underlined section):
If (($MyFiler -eq "DRFILER1") -or ($MyFiler -eq "DRFILER2") -or ($MyFiler -eq "DRFILER3")) {
Connect-NaController $MyFiler
If (!($Source_IP)) {$MySourceIP = $Source_IP_Pub} Else {$MySourceIP = $Source_IP}
If (!($Dest_IP)) {$MyDestIP = $Dest_IP_Pub} Else {$MyDestIP = $Dest_IP}
New-PSDrive -Name "ds1" -Root \ -PSProvider VimDatastore -Datastore $vmDatastore
cd ds1:\$vm2restore
$fileList = Get-ChildItem -Name
c:
ForEach ($file in $fileList) {
If (($file -notcontains "*.log") -and ($file -ne "restore_symboltable")) {
Start-NaNdmpCopy -SrcController $MySourceIP -SrcPath "/vol/$MyVol/.snapshot/$snapshot1/$vmDatastore/$vm2restore/$file" -DstController $MyDestIP -DstPath "$ProdPath/$vm2restore/" -SrcCredential $cred -DstCredential $cred -SrcAuthType md5 -DstAuthType md5
}
Do {
Start-Sleep -Seconds 5
$ndmp = Get-NaNdmpCopy
}
While ($ndmp.State -eq "RUNNING")
}
Thanks in advance.
-Steve
Hmm.. 3 questions..
1) Is NDMP licensed in both locations? <-- I know, kind of a "duh", but..
2) Is ndmpd running on the target?
3) Is the ndmpd.access option set to accept the correct addresses/interfaces in both places?
Judging from the error output, it's saying a connection exists, but, i'd verify it anyway. A quick way of determining whether or not ndmpd is running on the target is to simply try telnetting to port 10000. If you can connect, it's safe to assume it's running and happy. SnapVault is actually communicating via NDMP under the hood, so, assuming the SnapVault portion of your script works via routed IP, but not via non-routed, then it would lead me to suspect that your ndmpd.access isn't set correctly.
Otherwise, if all of the above are yes, and you're still having problems, try changing ndmpd.authtype to something other than "challenge". For debugging purposes, you may also want to set ndmp.access to "all", but I wouldn't leave it that way--Past that, i'd start looking at whether or not a networking issue exists, or whether the target filer is having some sort of performance issue or constraint that precludes it from taking part in an NDMP session.
(BTW, hello from the fine folks here at the corner of Grant & Craycroft and thanks for the steady stream of electrons!)
Bowie,
Yes is the answer to all three of your questions. The script works just fine if I query for the Public IP of the Filer instead of the non-routed IP. NDMP copy will work from the command line when SSH'd into the Filer as well. It just won't make the connection when trying to use the non-routed network interface from PowerShell. I will have to ask our primary storage admin if I can change the ndmpd.authtype to see if that makes a difference.
-Steve
Ok.. Hmm.
What do you get back when issuing options ndmpd.access in both locations?
If not set to "all", both should reference the non-routed IP, and/or the interface name in which NDMP is allowed to communicate on.
The options ndmpd.acess is set to "all" on both Filers. I plan to test out changing the options ndmpd.preferred_interface setting to the non-routed network to see if that works. I'll let you know what I find.
Please do... I'm kinda curious about this one.
Hey -- Just following up. How'd it work out?
It didn't seem to make a difference. I ended up changing the script to use the public interface.