Microsoft Virtualization Discussions

Powershell NDMP Copy over non-routed network?

skiser
5,157 Views

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

7 REPLIES 7

bowie_poag
5,157 Views

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!) 

skiser
5,157 Views

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

bowie_poag
5,157 Views

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.

skiser
5,157 Views

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.

bowie_poag
5,157 Views

Please do... I'm kinda curious about this one.

bowie_poag
5,157 Views

Hey -- Just following up. How'd it work out?

skiser
5,157 Views

It didn't seem to make a difference.  I ended up changing the script to use the public interface.

Public