Difference between revisions of "HPRC:File Transfers"
Tmarkhuang (talk | contribs) m (→File Transfer on HPRC Clusters) |
Tmarkhuang (talk | contribs) (→File Transfer Software) |
||
Line 45: | Line 45: | ||
** check [http://man7.org/linux/man-pages/man1/scp.1.html scp man page] and [http://man7.org/linux/man-pages/man1/sftp.1.html sftp man page] for options and examples | ** check [http://man7.org/linux/man-pages/man1/scp.1.html scp man page] and [http://man7.org/linux/man-pages/man1/sftp.1.html sftp man page] for options and examples | ||
** Note two factor authentication has been enabled on Nov 4, 2019. Please see [[Two Factor | two factor authentication wiki page]] on how to use two factor for some software listed above. | ** Note two factor authentication has been enabled on Nov 4, 2019. Please see [[Two Factor | two factor authentication wiki page]] on how to use two factor for some software listed above. | ||
+ | |||
+ | |||
+ | === FTP === | ||
+ | |||
+ | File Transfer Protocol (FTP) protocol is used to transfer files between a client a server. FTP is not as popular as it was. [https://www.ncbi.nlm.nih.gov/pmc/tools/ftp/ NCBI] still uses FTP to transfer data. FTP protocol transfers user name, password, and data unencrypted. Users should choose FTPS, whose password is transferred over encrypted channel, whenever possible. | ||
+ | |||
+ | * ''What FTP is good at'' | ||
+ | ** FTP client offers an interactive interface (command line) to download/upload files | ||
+ | ** data stream is not encrypted, thus data transfer rate is faster than SCP/SFTP | ||
+ | |||
+ | * ''What SCP/SFTP is not good at'' | ||
+ | ** FTP protocol doesn't encrypt password and data transfer, thus less secure | ||
+ | ** require FTP server at remote server | ||
+ | |||
+ | * ''How do I use FTP'' | ||
+ | ** [https://lftp.yar.ru/lftp-man.html lftp] is available on Ada/Terra as a module. Run "module load lftp" to load the module. | ||
+ | ** On FTN nodes, you can lunch lftp via absolute path (Ada: /sw/eb/software/lftp/4.8.4-GCCcore-6.4.0/bin/lftp ; Terra: /sw/eb/sw/lftp/4.8.4-GCCcore-6.4.0/bin/lftp). To find the up-to-date path of lftp, first run "module load lftp" on Ada/Terra login nodes, then run "which lftp" to find the path of lftp. | ||
Line 99: | Line 116: | ||
** check [[SW:Portal|portal]] wiki page for additional info | ** check [[SW:Portal|portal]] wiki page for additional info | ||
** portal is CAS authenticated | ** portal is CAS authenticated | ||
− | |||
=== Other Considerations === | === Other Considerations === |
Revision as of 13:40, 3 November 2020
Contents
File Transfer on HPRC Clusters
File Transfer Software
There are several options for choosing a software to transfer files to and from HPRC clusters. The choice is largely depending on many factors, such as size, location, transfer frequency, etc. If the data size is small (transfer time is less than an hour), just pick a software convenient/familiar to you.
Globus Connect
Globus Connect is a reliable, high-performance file transfer platform allowing users to transfer large amounts of data seamlessly between systems or endpoints. Users can schedule transfer via a web interface on globus.org and receive notification after transfer is completed. The endpoint can be systems with Globus installed (like ada-ftn1) or user's personal desktop.
- What Globus Connect is good at
- transfer large amount of data (say 100+ GB)
- it's fast (utilizing up to 4 data streams); as fast as the slowest link from your server/desktop/laptop to HPRC fast transfer nodes
- transfer files between two endpoints (for example, between Ada and Terra, or between Ada and endpoint on your laptop)
- personal endpoint works behind NAT (Network Address Translation; like your desktop behind a wifi router at home)
- resume for failed transfers
- receive notification after a scheduled transfer is completed
- What Globus Connect is not good at
- your server or desktop/laptop must have Globus Connect software installed and setup as an endpoint
- by default, data stream is not encrypted
- How do I use Globus Connect
- visit Globus Connect wiki page for more information
- Globus Connect software is supported on Windows, Mac, and Linux.
- use endpoints: "TAMU ada-ftn1" or "TAMU ada-ftn2" for Ada/Curie cluster and "TAMU terra-ftn" for Terra cluster
SCP/SFTP
SCP and SFTP protocols are a means of securely transferring computer files between a local host and a remote host.
- What SCP/SFTP is good at
- ubiquitous; simple to use
- sftp offers an interactive interface (command line) to download/upload files
- data stream is encrypted
- What SCP/SFTP is not good at
- not very fast (file transfer only uses one data stream over SSH protocol)
- How do I use SCP/SFTP
- you can use command line on Linux, Mac or MobaXterm terminal to issue scp/sftp command
- use WinSCP on Windows, FileZilla (use SFTP protocol) on Windows or Mac, or use File Transfer panel on MobaXterm. See instruction on file transfer from Windows.
- use "ada-ftn1.tamu.edu" or "ada-ftn2.tamu.edu" for Ada/Curie and "terra-ftn.hprc.tamu.edu" for Terra if your data transfer to Ada or Terra login nodes (ada.tamu.edu or terra.tamu.edu) is terminated after one hour; Ada/Terra login nodes have one hour CPU limit for all user processes.
- check scp man page and sftp man page for options and examples
- Note two factor authentication has been enabled on Nov 4, 2019. Please see two factor authentication wiki page on how to use two factor for some software listed above.
FTP
File Transfer Protocol (FTP) protocol is used to transfer files between a client a server. FTP is not as popular as it was. NCBI still uses FTP to transfer data. FTP protocol transfers user name, password, and data unencrypted. Users should choose FTPS, whose password is transferred over encrypted channel, whenever possible.
- What FTP is good at
- FTP client offers an interactive interface (command line) to download/upload files
- data stream is not encrypted, thus data transfer rate is faster than SCP/SFTP
- What SCP/SFTP is not good at
- FTP protocol doesn't encrypt password and data transfer, thus less secure
- require FTP server at remote server
- How do I use FTP
- lftp is available on Ada/Terra as a module. Run "module load lftp" to load the module.
- On FTN nodes, you can lunch lftp via absolute path (Ada: /sw/eb/software/lftp/4.8.4-GCCcore-6.4.0/bin/lftp ; Terra: /sw/eb/sw/lftp/4.8.4-GCCcore-6.4.0/bin/lftp). To find the up-to-date path of lftp, first run "module load lftp" on Ada/Terra login nodes, then run "which lftp" to find the path of lftp.
rsync
rsync is a fast, versatile, remote (and local) file-copying tool and recommended when relatively few differences exist between target and source versions, because rsync copies only the differences of files that have actually changed. By default, rsync uses the SSH remote shell.
- What rsync is good at
- resume file transfer for partial transferred file
- synchronize files/dirs of two directories (local-local, local-remote, remote-local)
- by default, transfer is over SSH protocol, so data stream is encrypted
- What rsync is not good at
- by default, files transferred over SSH which uses only one data stream and not very fast
- compression option, "-z", might not shorten the transfer time
- How do I use rsync
- from command line on Linux, Mac, or MobaXterm terminal to issue rsync command
- use DeltaCopy or Grsync on Windows
- use cwRsync 5.4.1 for command line on Windows
- check rsync man page for options and examples
- Note two factor authentication has been enabled on Nov 4, 2019. Please see two factor authentication wiki page for details.
rclone
rclone is a tool for syncing files from HPRC systems to remote storage sites like Google Drive, Dropbox, Amazon's AWS and many more.
- What rclone is good at
- copy data to or from cloud (Google Drive, Dropbox, AWS, etc)
- What rclone is not good at
- transfer can be slow
- How do I use rclone
- rclone is available on ada, terra and HPRC Lab workstations. No module is required for any of them
- reference rclone wiki page for instructions and examples
portal
HPRC Portal (OnDemand) is a web platform through which users can access HPRC clusters and services with a web browser. You can download/upload file via menu "Files".
- What portal is good at
- web interface and simple to use
- you can view content (text, image, movie) via web browser
- What portal is not good at
- transfer large files >2GB
- transfer can be slow (file is transfer via single data stream)
- How do I use portal
- visit https://portal.hprc.tamu.edu, or visit https://portal-ada.hprc.tamu.edu for Ada portal and https://protal-terra.hprc.tamu.edu for Terra portal
- check portal wiki page for additional info
- portal is CAS authenticated
Other Considerations
- I am off campus or travel abroad. Can I transfer files from/to HPRC cluster?
All Ada/Terra login nodes are behind TAMU campus firewall, so TAMU VPN access is required if you are off campus. If you have personal Globus Connect endpoint setup on your laptop, you can transfer files to/from your laptop via globus.org using Globus Connect, without using TAMU VPN.
- Should I use FTN or regular Ada/Terra login nodes to transfer files?
All Terra login nodes (terra.tamu.edu) and two Ada login nodes (ada1.tamu.edu and ada2.tamu.edu) are now with 10 Gbps links to HPRC edge switches, which have dual 10 Gbps link to campus network (as Jan 6, 2020).
For short file transfer (less than one hour), either FTN or login nodes would work. For transfer time over 1 hour, please use FTN node (ada-ftn1.tamu.edu and ada-ftn2.tamu.edu for Ada/Curie cluster; terra-ftn.hprc.tamu.edu for Terra cluster), which does not have one hour CPU process time limit. Use "rsync" to counter CPU time limit, as "rsync" supports resume transfer, or use Globus Connect.
If you are on campus or transfer small files over VPN, please use Terra login nodes (terra.tamu.edu) or ada1/ada2.tamu.edu to transfer your data. If you are off campus, please consider using Globus Connect to transfer your data.
If you are using clusters at TACC, you can scp/sftp/rsync to FTN or use Globus Connect.
- Can I download files from internet (say NIH) inside a job script?
Ada/Terra compute nodes do not have access to internet, so you cannot download files from internet on the compute node. Please download necessary files on Ada/Terra login nodes or FTN nodes.
- I want to back up files to my desktop/laptop.
"rsync" or "rclone" (to cloud storage) probably the best choice.
- Can I mount my Ada/Terra home/scratch directory on my desktop/laptop to transfer files?
SSHFS is the best option.
- I have 100+ TB data to transfer.
Please contact us at help@hprc.tamu.edu. We would like to get more information first and see how we can support this.
- Why the file transfer takes so long?
This is a complicated question. The file transfer time is largely depended on data size, bandwidth of the slowest link from HPRC cluster to your desktop (bottleneck link), how congested/busy the network link is, and how fast file system can read/write. For 100 Giga Bytes data transferred over a 100 Mbps link, it will take about 170 min under the best case scenario (80% efficiency, no cross traffic and no I/O bottleneck). Often, link speed of network to your desktop/laptop (the last mile) and storage on your desktop/laptop are the slowest part for the entire file transfer.
The transfer rate of medium for storing files (spinning disk, SSD, external disk via USB) could be a limiting factor. Spinning hard drive typically has a limit of 30~50 MB/sec transfer rate. Most USB storage (like USB sticks, USB external drive) cannot transfer at max speed of USB standard (USB 2.0 of 60 MB/sec and USB 3.0 of 640 MB/sec). When assess overall data transfer rate, be aware of transfer limit from combinations of storage speed, storage to computer interface (like USB), network link speed (Wifi or Ethernet), CPU speed (CPU can process limited number of file system access requests), and internet connecting speed of your laptop/desktop. Making a few test transfers with small data set can help you make a (more) reasonable transfer time for a larger data set.
Number of data transfer streams would make a difference as well. Globus Connect utilizes up to 4 data streams to shorten the transfer time (more noticeable for large files; typically seeing 2.5x speedup).