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/