# # Skeleton configuration file for Shift manager. # # This file should be located in /etc/shiftrc for multi-user installs # and in ~/.shiftrc for single-user installs. # # Items that are commented out show the default value. # # A value of nodefault indicates no default value for that item. # # Items that are not commented out indicate values that must be # explicitly configured. The values given for these items are # examples only. # ######################### #### manager options #### ######################### # directory where transfer metadata will be stored # (use %u as substitution for user name) # (parent dir must be world writable with sticky bit for multi-user installs) # (multi-user example: user_dir /var/lib/shift/%u) # (single-user example: user_dir /home/%u/.shift) user_dir /home/%u/.shift # time (seconds) to store transfer metadata after last activity #data_expire 604800 # use cron to automatically restart transfers after host or process failures #default_cron 1 # log debugging information for user X in user_dir/X.debug # (may be specified multiple times for different users) # (example: debug_alice 1) #debug_X 1 # domain to which user accounts belong for email notifications # (assumes user X can receive email at X@email_domain) # (assumes localhost:25 SMTP server running on manager host) # (example: email_domain example.com) #email_domain nodefault # location of file system information database # (must be world readable for multi-user installs) # (example: mount_db /var/lib/shift/mounts) #mount_db nodefault # use hardlink-based locking (mainly for NFSv3 and below) #nfs_lock 0 # command to invoke to make host selection decisions # (must be world readable/executable for multi-user installs) # (example: select_hook /usr/local/bin/shift-select.hook) #select_hook nodefault # host to which transfer metadata should be synchronized # (assumes hostbased authentication available to host) # (example: sync_host mgr2.example.com) #sync_host nodefault ########################### #### transport options #### ########################### # supported local transports by decreasing performance/preference # (example: default_local mcp,shift,fish,fish-tcp,rsync,bbftp) #default_local shift,fish,fish-tcp # port range for remote tcp-based transports # (example: default_ports 10000:20000) #default_ports nodefault # supported remote transports by decreasing performance/preference # (example: default_remote fish-tcp,bbftp,rsync,fish,shift) #default_remote shift # supported local transports by decreasing small file performance/preference # (example: mcp,shift,fish,fish-tcp,rsync,bbftp) #local_small shift,fish,fish-tcp # behavior commands that will be used by bbftp on client hosts # (see the "behavior commands" section of bbftp man page for details) # (options must be separated by "\n" as shown in example below) # (example: opts_bbftp setnbstream 4\nsetrecvwinsize 4096\nsetsendwinsize 4096) #opts_bbftp nodefault # command-line options that will be used by mcp on client hosts # (if mcp >= 1.822.1, a --preallocate setting is recommended for DMF on CXFS) #opts_mcp --double-buffer # command-line options that will be used by msum on client hosts #opts_msum --double-buffer # command-line options that will be used by ssh on client hosts # (example: opts_ssh -c arcfour256 -m umac-64@openssh.com) #opts_ssh nodefault # command-line options that will be used by ssh on client hosts with --secure # (example: opts_ssh_secure -c aes256-ctr -m hmac-sha2-512) #opts_ssh_secure nodefault # supported remote transports by decreasing small file performance/preference # (example: remote_small fish-tcp,rsync,fish,shift,bbftp) #remote_small shift # average size under which a lan batch will be optimized for small files # (use suffix {k,m,g,t} for {KB,MB,GB,TB}) #small_size_lan 256m # average size under which a local batch will be optimized for small files # (use suffix {k,m,g,t} for {KB,MB,GB,TB}) #small_size_local 1g # average size under which a wan batch will be optimized for small files # (use suffix {k,m,g,t} for {KB,MB,GB,TB}) #small_size_wan 64m # size of chunks at which corruption is detected/rectified # (use suffix {k,m,g,t} for {KB,MB,GB,TB}) # (it is not recommended to set this below 1GB) # (changing this value voids all existing values in checksum dbs) #sum_split 1g # type of checksum to use for integrity verification # (format is TYPE_BITS, BITS required when TYPE supports multiple lengths) # (for msum, see "msum --help" --hash-type list, "_" will be ignored) # (for built-in perl sums, will use Digest::TYPE->new(BITS)) # (note built-in SHA before perl v5.19.2 can trigger coredump via double free) # (example: sum_type sha3_256) #sum_type md5 ################################ #### general tuning options #### ################################ # size of buffer to use in transports # (use suffix {k,m,g,t} for {KB,MB,GB,TB}) #default_buffer 4m # minimum number of files to transfer in each batch # (use suffix {k,m,b/g,t} for 10E{3,6,9,12}) #default_files 1k # minimum number of files to process in each initialization batch # (note use of dash instead of underscore) # (use suffix {k,m,b/g,t} for 10E{3,6,9,12}) #default_find-files 2k # approximate number of seconds that each batch should run # (note this will be adjusted upward with more clients/greater mgr overhead) #default_interval 30 # source sparsity percentage at which to preallocate destination file # (sparsity defined as 1 - (512 * allocated_blocks / size)) # (note that transports using temporary files are not supported) # (example: default_preallocate 10) #default_preallocate 0 # number of times to retry failed operations # (must be at least 1 for --sync to function) #default_retry 2 # approximate minimum amount of data to transfer in each batch # (use suffix {k,m,g,t} for {KB,MB,GB,TB}) #default_size 4g # approximate maximum size of created tar files # (note use of dash instead of underscore) # (use suffix {k,m,g,t} for {KB,MB,GB,TB}) #default_split-tar 500g # expressions by which to select lustre stripe count/size/pool # (format is same as --stripe: [CEXP][::[SEXP][::PEXP]]) # (EXP may be NUM, SIZE, or full perl expression) # (EXP may use const {DR,NM,SZ,SC,SS} for src {is_dir,name,size,scnt,ssz}) # (set to 0 to use system default striping) # (note that transports using temporary files are not supported) # (use suffix {k,m,g,t} for {KB,MB,GB,TB}) #default_stripe 1g # maximum number of files to process in each batch # (use suffix {k,m,b/g,t} for 10E{3,6,9,12}) #max_files 100k # number of status entries at which some older done transfers may be omitted #status_lines 20 ################################ #### network tuning options #### ################################ # WAN bandwidth assumed for non-organization/non-xge hosts # (use suffix {k,m,g,t} for {Kb,Mb,Gb,Tb}) #bandwidth_ind 100m # WAN bandwidth assumed when end of host FQDN matches org_domains setting # (use suffix {k,m,g,t} for {Kb,Mb,Gb,Tb}) #bandwidth_org 1g # WAN bandwidth assumed when 10GE adapter found on host via lspci # (use suffix {k,m,g,t} for {Kb,Mb,Gb,Tb}) #bandwidth_xge 10g # latency (seconds) assumed to remote LAN hosts when measurement fails #latency_lan 0.001 # seconds to wait between latency measurements #latency_wait 600 # latency (seconds) assumed to remote WAN hosts when measurement fails #latency_wan 0.05 # maximum number of streams to use in remote LAN transfers #max_streams_lan 8 # maximum number of streams to use in remote WAN transfers #max_streams_wan 16 # minimum number of streams to use in remote LAN transfers #min_streams_lan 1 # minimum number of streams to use in remote WAN transfers #min_streams_wan 4 # minimum window size to use over LAN with TCP-based transports # (use suffix {k,m,g,t} for {KB,MB,GB,TB}) #min_window_lan 1m # minimum window size to use over WAN with TCP-based transports # (use suffix {k,m,g,t} for {KB,MB,GB,TB}) #min_window_wan 4m # regular expression for determining if host may have higher bandwidth #org_domains com|edu|gov|mil|net|org ####################### #### cache options #### ####################### # estimated amount of i/o needed on clients to evict newly cached data # (use suffix {k,m,g,t} for {KB,MB,GB,TB}) #cache_size_client nodefault # estimated amount of i/o needed on file servers to evict newly cached data # (use suffix {k,m,g,t} for {KB,MB,GB,TB}) #cache_size_server nodefault # estimated number of seconds needed on clients to evict newly cached data #cache_time_client nodefault # estimated number of seconds needed on file servers to evict newly cached data #cache_time_server nodefault ################################# #### parallelization options #### ################################# # number of clients to spawn on each host #default_clients 1 # maximum number of source hosts to involve in a transfer #default_hosts 1 # amount of data at which single files will be parallelized # (use suffix {k,m,g,t} for {KB,MB,GB,TB}) #default_split 0 # number of threads to use in multi-threaded transports #default_threads 4 ################################### #### client throttling options #### ################################### # local avg. cpu usage (%) at which to throttle transfer # (example: default_cpu 75) #default_cpu nodefault # target disk usage (%) at which to suspend/resume transfer # (example: default_disk 95:85) #default_disk nodefault:nodefault # local avg. i/o usage (MB/s) at which to throttle transfer # (example: default_io 1000) #default_io nodefault # local avg. i/o reads (MB/s) at which to throttle transfer # (example: default_ior 1000) #default_ior nodefault # local avg. i/o writes (MB/s) at which to throttle transfer # (example: default_iow 1000) #default_iow nodefault # local avg. network usage (MB/s) at which to throttle transfer # (example: default_net 80) #default_net nodefault # local avg. network reads (MB/s) at which to throttle transfer # (example: default_netr 80) #default_netr nodefault # local avg. network writes (MB/s) at which to throttle transfer # (example: default_netw 80) #default_netw nodefault ################################# #### user throttling options #### ################################# # global avg. i/o usage (MB/s) at which to throttle user X's transfers # (example: throttle_io_user_alice 1000) #throttle_io_user_X nodefault # global avg. i/o reads (MB/s) at which to throttle user X's transfers # (example: throttle_ior_user_alice 1000) #throttle_ior_user_X nodefault # global avg. i/o writes (MB/s) at which to throttle user X's transfers # (example: throttle_iow_user_alice 1000) #throttle_iow_user_X nodefault # global avg. network usage (MB/s) at which to throttle user X's transfers # (example: throttle_net_user_alice 80) #throttle_net_user_X nodefault # global avg. network reads (MB/s) at which to throttle user X's transfers # (example: throttle_netr_user_alice 80) #throttle_netr_user_X nodefault # global avg. network writes (MB/s) at which to throttle user X's transfers # (example: throttle_netw_user_alice 80) #throttle_netw_user_X nodefault ######################################## #### file system throttling options #### ######################################## # disk usage (%) at which to suspend/resume transfers to file system X # (the format for each file system X is SERVERS:REMOTE, where SERVERS # and REMOTE are the values of "servers" and "remote", respectively, # listed for X when running "shift-aux mount" on a host that mounts X) # (example: throttle_disk_homenfs1.example.com:/home 95:85) #throttle_disk_X nodefault:nodefault # global avg. i/o usage (MB/s) at which to throttle transfers to file system X # (format of X is identical to disk usage above) # (example: throttle_io_fs_homenfs1.example.com:/home 1000) #throttle_io_fs_X nodefault # global avg. i/o reads (MB/s) at which to throttle transfers to file system X # (format of X is identical to disk usage above) # (example: throttle_ior_fs_homenfs1.example.com:/home 1000) #throttle_ior_fs_X nodefault # global avg. i/o writes (MB/s) at which to throttle transfers to file system X # (format of X is identical to disk usage above) # (example: throttle_iow_fs_homenfs1.example.com:/home 1000) #throttle_iow_fs_X nodefault ################################# #### host throttling options #### ################################# # global avg. i/o usage (MB/s) at which to throttle transfers on host X # (example: throttle_io_host_host1.example.com 10000) #throttle_io_host_X nodefault # global avg. i/o reads (MB/s) at which to throttle transfers on host X # (example: throttle_ior_host_host1.example.com 10000) #throttle_ior_host_X nodefault # global avg. i/o writes (MB/s) at which to throttle transfers on host X # (example: throttle_iow_host_host1.example.com 10000) #throttle_iow_host_X nodefault # global avg. network usage (MB/s) at which to throttle transfers on host X # (example: throttle_net_host_host1.example.com 10000) #throttle_net_host_X nodefault # global avg. network reads (MB/s) at which to throttle transfers on host X # (example: throttle_netr_host_host1.example.com 10000) #throttle_netr_host_X nodefault # global avg. network writes (MB/s) at which to throttle transfers on host X # (example: throttle_netw_host_host1.example.com 10000) #throttle_netw_host_X nodefault