Hi,
I've been trying to get ndmpcopy to work with our BlueArc (source, aka BA) and ndmsrvr (from ndmfs) or ndmjob (in daemon mode) as the target. Has anyone been able to do this using any ndmp capable NAS as the source?
When I try to run ndmcopy from the BA to a target running ndmsrvr I get the following:
# ./ndmpcopy blue:/__VOLUME__/foo/bar ndmsrvr:/hd0/testuser -sa user:password -da user:password -sport 10000 -dport 10000 -level 0 -v
Connecting to blue.
Connecting to ndmsrvr.
init: error sending NDMP_MOVER_LISTEN message: Error: Call is not supported
at the same time the ndmsrvr reports:
# ./ndmsrvr -d
rcvd connect_open seq 1 sent reply_seq 2 NDMP_ILLEGAL_ARGS_ERR
rcvd connect_client_auth seq 2 sent reply_seq 3 NDMP_NO_ERR
rcvd req 0xa01 seq 3 sent reply_seq 4 hdr_err NDMP_NOT_SUPPORTED_ERR
When trying the same ndmpcopy command but with ndmjob running in daemon mode on the target:
# ./ndmjob -v -d 2 -L /tmp/ndmp.log -o daemon
ndmpcopy reports:
Connecting to blue.
Connecting to ndmsrvr.
blue: CONNECT: Connection established.
ndmsrvr: CONNECT: Connection established.
..and just seems to hang. The file ndmp.log shows:
SESS(6231) 0:00:00.000 Connection accepted from <ipAddressHidden>
SESS(6231) 0:00:00.000 Connection accepted to <ipAddressHidden>
SESS(6231) 0:00:00.000 op=NDMP2_MOVER_LISTEN err=NDMP9_ILLEGAL_ARGS_ERR why=mover_mode
SESS(6231) 0:00:00.002 ndmis_tcp_connect(): connect failed
SESS(6231) 0:00:00.002 op=NDMP2_DATA_START_RECOVER err=NDMP9_CONNECT_ERR why=IS DATA_CONNECT: TCP connect() failed
I've also tried using ndma (also from ndmfs) but I can't figure out how to tell the BA to start a backup to the target running ndmsrvr. These are the list of commands in ndma:
ndma> ?
backup [0|1] <pathname> [-l <level>] [-h] # send NDMP_DATA_START_BACKUP
bu_types [0|1] # send CONFIG_GET_BUTYPE_INFO
close [0|1] <fd> # send FILE_CLOSE
copy [0|1] -s <fd>,<off>,<len> [<fd>,<off>,<len> ...]
-d <fd>,<off>,<len> [<fd>,<off>,<len> ...] # send FILE_COPY
connect <host> [-t|-c <user> <password>] # connect to a server
conn_types [0|1] # get server conn types
data_connect [0|1] [<ipaddr> <port>] # send DATA_CONNECT
delete [0|1] <pathname> # send FILE_DELETE
disc [0|1] # send CONNECT_CLOSE
exit # quit ndma
file_abort [0|1] # send FILE_ABORT
file_connect [0|1] [<ipaddr> <port>] # send FILE_CONNECT
file_get_state [0|1] # send FILE_GET_STATE
file_listen [0|1] # send FILE_LISTEN
file_stop [0|1] # send FILE_STOP
fs_info [0|1] # send CONFIG_GET_FS_INFO
get_ext [0|1] # send CONFIG_GET_EXT_LIST
h [<cmd>|all] # print ndma help text
host_info [0|1] # send CONFIG_GET_HOST_INFO
last_err # print status of last cmd
ls [0|1] <pathname> [-m <max_entries>] [-o <offset>] # send FILE_LIST_DIR
mkdir [0|1] <pathname> # send FILE_MAKE_DIR
mvr_abort [0|1] # send MOVER_ABORT
mvr_close [0|1] # send MOVER_CLOSE
mvr_connect [0|1] -r|-w [<ipaddr> <port>] # send MOVER_CONNECT request
mvr_continue [0|1] # send MOVER_CONTINUE
mvr_get_state [0|1] # send MOVER_GET_STATE
mvr_listen [0|1] -r|-w # send MOVER_LISTEN request
mvr_read [0|1] <offset> <length> # send MOVER_READ
mvr_set_rec_sz [0|1] <size> # send MOVER_SET_RECORD_SIZE
mvr_set_window [0|1] <offset> <length> # send MOVER_SET_WINDOW
mvr_stop [0|1] # send MOVER_STOP
open [0|1] -rwcq <pathname> # open/create a file
quit # quit ndma
read [0|1] <fd> <len> # send FILE_READ
read_meta [0|1] <fd> <len> # send FILE_READ_META
read_stream [0|1] <len> # send FILE_READ_STREAM
receive [0|1] <fd>,<off>,<len> [<fd>,<off>,<len> ...] # send FILE_RECEIVE
recover [0|1] [-p <subdir>] <pathname> # send DATA_START_RECOVER
rename [0|1] <oldpathname> <newpathname> # send FILE_RENAME
rmdir [0|1] <pathname> # send FILE_REMOVE_DIR
seek [0|1] <fd> -s|-c|-e <offset> # send FILE_SEEK
seek_meta [0|1] <fd> -s|-c|-e <offset> # send FILE_SEEK_META
send [0|1] <fd>,<off>,<len> [<fd>,<off>,<len> ...] # send FILE_SEND
server_auth [0|1] [-t|-c] # send CONNECT_SERVER_AUTH
server_info [0|1] # send CONFIG_SERVER_INFO
set_ext [0|1] <class,vers> [<class,vers>] ... # send CONFIG_SET_EXT_LIST
status [0|1] # print ndma status
sync [0|1] <fd> # send FILE_SYNC
truncate [0|1] <fd> <size> # send FILE_TRUNCATE
truncate_meta [0|1] <fd> <size> # send FILE_TRUNCATE_META
write [0|1] <fd> <len> <string> # send FILE_WRITE
write_meta [0|1] <fd> <len> <string> # send FILE_WRITE_META
write_stream [0|1] <len> <string> # send FILE_WRITE_STREAM
? [<cmd>|all] # print ndma help text
and this is what I've tried:
ndma> connect blue -t user password
chnl 0 dma rcvd NOTIFY_CONNECTION_STATUS reason: CONNECTED vers: 4 Connected to BlueArc NDMP session 114
connected using chnl 0
ndma> connect ndmsrvr -t user password
chnl 1 dma rcvd NOTIFY_CONNECTION_STATUS reason: CONNECTED vers: 4
connected using chnl 1
ndma> status 0
pid: 4486
status for chnl 0:
dma_fd: 3
sequence: 1
dma_is_auth: 1
file_active_fd_src: -1
file_active_fd_dst: -1
file_state: 0
num_open_files: 0
ndma> status 1
pid: 4486
status for chnl 1:
dma_fd: 4
sequence: 1
dma_is_auth: 1
file_active_fd_src: -1
file_active_fd_dst: -1
file_state: 0
num_open_files: 0
ndma> mvr_get_state 0
chnl 0 mover state:
state: IDLE
mode: READ
pause_reason: NA
halt_reason: NA
record_size: 0
record_num: 0
bytes_moved: 0
seek_position: 0
bytes_left_to_read: 0
window_offset: 0
window_length: -1
addr_type: 0
ndma> mvr_get_state 1
ERROR: failed to get mover state on chnl 1
ndma> bu_types 0
chnl 0 backup type attrs:
type_name: dump
attrs: 0x5fc
environment vars:
TYPE: dump
UPDATE: y
HIST: y
EXTRACT: y
FILESYSTEM:
LEVEL: 0
EXCLUDE:
DIRECT: n
FUTURE_FILES: y
NDMP_BLUEARC_TAKE_SNAPSHOT:
NDMP_BLUEARC_SNAPSHOT_DELETE:
NDMP_BLUEARC_USE_SNAPSHOT_RULE:
NDMP_BLUEARC_FH_CHARSET: UTF8
NDMP_BLUEARC_FH_NAMETYPE: UNIX
NDMP_BLUEARC_QUOTAS: y
NDMP_BLUEARC_OVERWRITE: ALWAYS
NDMP_BLUEARC_AWAIT_IDLE: y
NDMP_BLUEARC_LINK_START:
ndma> bu_types 1
ERROR: failed to get backup types on chnl 1
ndma> open 0 -r /__VOLUME__/foo/bar
ERROR: failed to open file on chnl 0
ndma> open 0 -r /__VOLUME__/foo/bar/.cshrc
ERROR: failed to open file on chnl 0
ndma> backup 0 /__VOLUME__/foo/bar -l 0
ERROR: failed to start backup on chnl 0
Maybe there's something I'm missing like using file_listen or mvr_connect commands? I can use the fs_info command to get availability of file systems on the BA and on the ndmsrvr but I can't use "ls" on the BA like I can on the host running ndmsrvr.
As for, Freendmp it doesn't seem to compile and will take a bit of work to fix its code.
I know ndmp from the BA works because I've tried a trial version of NV backup and it was able to do an ndmp backup over the network. Any ideas about getting any of these other utilities to work?
Thanks,
Sabuj Pattanayek
