6. Data transfer examples: Docker environments¶
6.1. Client–Server data transfer¶
6.1.1. Step 1: Launch the server on DTN A¶
$ docker run \
-v /storage_A_host:/storage_A_container \
--net=host \
-v /etc/grid-security:/etc/grid-security \
-v `pwd`:/mdtmwork \
--cap-add=ALL --cap-add=IPC_LOCK --cap-add=SYS_NICE \
--cap-add=SYS_ADMIN --cap-add=NET_ADMIN --cap-add=SYS_RESOURCE \
--security-opt seccomp:unconfined \
publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \
/usr/local/mdtmftp/1.1.1/sbin/mdtm-ftp-server -data-interface 131.225.2.29 -password-file passfile -p 5001
6.1.2. Step 2: Launch the client on System C¶
Assuming the mdtmFTP client runs in a container.
6.1.2.1. Authentication method: username/password¶
Assuming user name/password: mdtmftp/123456.
Single file data transfer: transfer a single file from DTN A to System C.
$ sudo docker run \ -ti --rm \ --net=host \ -v `pwd`:/mdtmwork \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -p 8 \ ftp://mdtmftp:123456@10.40.130.189:5001/storage_A_container/100G/file1 \ file:///storage_C_container/data1/tmp/
Single file data transfer: transfer a single file from Sysetem C to DTN A.
$ sudo docker run \ -ti --rm \ --net=host \ -v `pwd`:/mdtmwork \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -p 8 \ file:///storage_C_container/data1/tmp/file1 \ ftp://mdtmftp:123456@10.40.130.189:5001/storage_A_container/tmp/
Folder data transfer: transfer a Linux folder from DTN A to System C.
$ sudo docker run \ -ti --rm \ --net=host \ -v `pwd`:/mdtmwork \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -p 8 \ ftp://mdtmftp:123456@10.40.130.189:5001/storage_A_container/linux-3.18.21/ \ file:///storage_C_container/data1/tmp/
Folder data transfer: transfer a Linux folder from System C to DTN A.
$ sudo docker run \ -ti --rm \ --net=host \ -v `pwd`:/mdtmwork \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -p 8 \ file:///storage_C_container/data1/tmp/linux-3.18.21/ \ ftp://mdtmftp:123456@10.40.130.189:5001/storage_A_container/tmp/
6.1.2.2. Authentication method: GSI certificate¶
Single file data transfer: transfer a single file from DTN A to System C.
$ sudo docker run \ -ti --rm \ -u mdtmftp-client \ --net=host \ -v `pwd`:/mdtmwork \ -v /etc/grid-security:/etc/grid-security \ -v /tmp:/tmp \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -p 8 \ gsiftp://10.40.130.189:5001/storage_A_container/100G/file1 \ file:///storage_C_container/data1/tmp/
Single file data transfer: transfer a single file from System C to DTN A.
$ sudo docker run \ -ti --rm \ -u mdtmftp-client \ --net=host \ -v `pwd`:/mdtmwork \ -v /etc/grid-security:/etc/grid-security \ -v /tmp:/tmp \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -p 8 \ file:///storage_C_container/data1/tmp/file1 \ gsiftp://10.40.130.189:5001/storage_A_container/tmp/
Folder data transfer: transfer a Linux folder from DTN A to System C.
$ sudo docker run \ -ti --rm \ -u mdtmftp-client \ --net=host \ -v `pwd`:/mdtmwork \ -v /etc/grid-security:/etc/grid-security \ -v /tmp:/tmp \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -p 8 \ gsiftp://10.40.130.189:5001/storage_A_container/linux-3.18.21/ \ file:///storage_C_container/data1/tmp/
Folder data transfer: transfer a Linux folder from System C to DTN A.
$ sudo docker run \ -ti --rm \ -u mdtmftp-client \ --net=host \ -v `pwd`:/mdtmwork \ -v /etc/grid-security:/etc/grid-security \ -v /tmp:/tmp \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -p 8 \ file:///storage_C_container/data1/tmp/linux-3.18.21/ \ gsiftp://10.40.130.189:5001/storage_A_container/tmp/
6.2. Third party data transfer between two remote DTNs¶
6.2.1. Step 1: Launch mdtmFTP server on DTN A¶
$ sudo docker run \
-v /storage_A_host:/storage_A_container \
--net=host \
-v /etc/grid-security:/etc/grid-security \
-v `pwd`:/mdtmwork \
--cap-add=ALL --cap-add=IPC_LOCK --cap-add=SYS_NICE \
--cap-add=SYS_ADMIN --cap-add=NET_ADMIN --cap-add=SYS_RESOURCE \
--security-opt seccomp:unconfined \
publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \
/usr/local/mdtmftp/1.1.1/sbin/mdtm-ftp-server -data-interface 131.225.2.29 -password-file passfile -p 5001
6.2.2. Step 2: Launch mdtmFTP server on DTN B¶
$ sudo docker run \
-v /storage_B_host:/storage_B_container \
--net=host \
-v /etc/grid-security:/etc/grid-security \
-v `pwd`:/mdtmwork \
--cap-add=ALL --cap-add=IPC_LOCK --cap-add=SYS_NICE \
--cap-add=SYS_ADMIN --cap-add=NET_ADMIN --cap-add=SYS_RESOURCE \
--security-opt seccomp:unconfined \
publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \
/usr/local/mdtmftp/1.1.1/sbin/mdtm-ftp-server -data-interface 131.225.2.31 -password-file passfile -p 5001
6.2.3. Step 3: Launch the client on System C¶
Assuming the mdtmFTP client runs in a container.
6.2.3.1. Authentication method: username/password¶
Assuming user name/password: mdtmftp/123456
Single file data transfer: transfer a single file from DTN A to DTN B.
$ sudo docker run \ -ti --rm \ --net=host \ -v `pwd`:/mdtmwork \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -p 8 -vb \ ftp://mdtmftp:123456@131.225.2.29:5001/storage_A_container/data1/100G/file1 \ ftp://mdtmftp:123456@131.225.2.31:5001/storage_B_container/data1/tmp/
Folder data transfer: transfer a Linux folder from DTN A to DTN B.
$ sudo docker run \ -ti --rm \ --net=host \ -v `pwd`:/mdtmwork \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -p 8 –vb \ ftp://mdtmftp:123456@131.225.2.29:5001/storage_A_container/data1/linux-3.18.21/ \ ftp://mdtmftp:123456@131.225.2.31:5001/storage_B_container/data1/tmp/
6.2.3.2. Authentication method: GSI certificate¶
Single file data transfer: transfer a single file from DTN A to DTN B.
$ sudo docker run \ -ti --rm \ -u mdtmftp-client \ --net=host \ -v `pwd`:/mdtmwork \ -v /etc/grid-security:/etc/grid-security \ -v /tmp:/tmp \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -p 8 -vb \ gsiftp://131.225.2.29:5001/storage_A_container/data1/100G/file1 \ gsiftp://131.225.2.31:5001/storage_B_container/data1/tmp/
Folder data transfer: transfer a Linux folder from DTN A to DTN B.
$ sudo docker run \ -ti --rm \ -u mdtmftp-client \ --net=host \ -v `pwd`:/mdtmwork \ -v /etc/grid-security:/etc/grid-security \ -v /tmp:/tmp \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -p 8 –vb \ gsiftp://131.225.2.29:5001/storage_A_container/data1/linux-3.18.21/ \ gsiftp://131.225.2.31:5001/storage_B_container/data1/tmp/
6.3. Client–Server data transfer (IPv6)¶
Step 1: Launch the server on DTN A:
$ sudo docker run \
-v /storage_A_host:/storage_A_container \
--net=host \
-v /etc/grid-security:/etc/grid-security \
-v `pwd`:/mdtmwork \
--cap-add=ALL --cap-add=IPC_LOCK --cap-add=SYS_NICE \
--cap-add=SYS_ADMIN --cap-add=NET_ADMIN --cap-add=SYS_RESOURCE \
--security-opt seccomp:unconfined \
publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \
/usr/local/mdtmftp/1.1.1/sbin/mdtm-ftp-server -control-interface 2620:6a:0:2::2:48 \
-password-file passfile -p 5050 -l mdtmftp.log -log-level all
Step 2: Launch the client on System C:
Single file data transfer: transfer a single file from DTN A to System C.
$ sudo docker run \ -ti --rm \ --net=host \ -v `pwd`:/mdtmwork \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -ipv6 -vb -p 16 \ ftp://mdtmftp:123456@131.225.2.29:5050/storage_A_container/data1/10G.bin \ file:///storage_C_container/data1/tmp/
Single file data transfer: transfer a single file from System C to DTN A.
$ sudo docker run \ -ti --rm \ --net=host \ -v `pwd`:/mdtmwork \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -ipv6 -vb -p 16 \ file:///storage_C_container/data1/tmp/10G.bin \ ftp://mdtmftp:123456@131.225.2.29:5050/storage_A_container/data1/
Folder data transfer: transfer a Linux folder from DTN A to System C.
$ sudo docker run -ti --rm \ --net=host \ -v `pwd`:/mdtmwork \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -ipv6 -vb -p 16 \ ftp://mdtmftp:123456@131.225.2.29:5050/storage_A_container/data1/linux-3.18.17/ \ file:///storage_C_container/data1/tmp/
Folder data transfer: transfer a Linux folder from System C to DTN A.
$ sudo docker run \ -ti --rm \ --net=host \ -v `pwd`:/mdtmwork \ publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \ /usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -ipv6 -vb -p 16 \ file:///storage_C_container/data1/linux-3.18.17/ \ ftp://mdtmftp:123456@131.225.2.29:5050/storage_A_container/data1/tmp/
6.4. Third party data transfer between two remote hosts (IPv6)¶
Step 1: Launch mdtmFTP server on remote DTN A.
$ sudo docker run \
-v /storage_A_host:/storage_A_container \
--net=host \
-v /etc/grid-security:/etc/grid-security \
-v `pwd`:/mdtmwork \
--cap-add=ALL --cap-add=IPC_LOCK --cap-add=SYS_NICE \
--cap-add=SYS_ADMIN --cap-add=NET_ADMIN --cap-add=SYS_RESOURCE \
--security-opt seccomp:unconfined \
publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \
/usr/local/mdtmftp/1.1.1/sbin/mdtm-ftp-server \
-data-interface 2620:6a:0:2::2:48 \
-password-file passfile \
-p 5050 -l mdtmftp.log -log-level all
Step 2: Launch mdtmFTP server on remote DTN B.
$ sudo docker run \
-v /storage_B_host:/storage_B_container \
--net=host \
-v /etc/grid-security:/etc/grid-security \
-v `pwd`:/mdtmwork \
--cap-add=ALL --cap-add=IPC_LOCK --cap-add=SYS_NICE \
--cap-add=SYS_ADMIN --cap-add=NET_ADMIN --cap-add=SYS_RESOURCE \
--security-opt seccomp:unconfined \
publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \
/usr/local/mdtmftp/1.1.1/sbin/mdtm-ftp-server \
-data-interface 2620:6a:0:2::2:49 \
-password-file passfile \
-p 5050 -l mdtmftp.log -log-level all
Step 3: Launch the client on System C.
For username/password authentication,
$ sudo docker run \
-ti --rm \
-u mdtmftp-client \
--net=host \
-v `pwd`:/mdtmwork \
-v /etc/grid-security:/etc/grid-security \
-v /tmp:/tmp \
publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \
/usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -ipv6 -vb -p 16 \
ftp://mdtmftp:123456@131.225.2.29:5050/storage_A_container/data1/10G.bin \
ftp://mdtmftp:123456@131.225.2.31:5050/storage_B_container/data1/tmp/
For GSI authentication,
$ sudo docker run \
-ti --rm \
-u mdtmftp-client \
--net=host \
-v `pwd`:/mdtmwork \
-v /etc/grid-security:/etc/grid-security \
-v /tmp:/tmp \
publicregistry.fnal.gov/mdtmftp/mdtmftp:1.1.1-xenial \
/usr/local/mdtmftp/1.1.1/bin/mdtm-ftp-client -ipv6 -vb -p 16 \
gsiftp://mdtmftp:123456@131.225.2.29:5050/storage_A_container/data1/10G.bin \
gsiftp://mdtmftp:123456@131.225.2.31:5050/storage_B_container/data1/tmp/