|
Article ID: 150
Last updated: 07 Oct, 2025
On Lou, commands that should finish quickly may occasionally take a long time. This problem is usually due to slow retrieval of files from tape to disk. When you run the ls command on Lou, the output shows all your Lou files on disk. However, most of the files are actually written to tape using the Data Migration Facility (DMF). One reason for slow file retrieval is that for some multiple file transfers—for example, if you do an scp transfer with a list of files—Linux feeds each file to DMF one at a time, and DMF does not deal well with retrieving one file at a time from a long list of files. This means that the tape(s) containing the files is constantly being loaded and unloaded, which is very slow (and is bad for the tape and tape drives). As the list of files gets longer (through the use of "*" or moving a "tree" of files), the problem grows to where it can take hours to transfer a set of files that would only take a few minutes if they were on disk. This can be particularly problematic when several people do these types of file transfers at the same time. The methods described below can help you avoid these problems. Note: For more information about the commands in this section, see Data Migration Facility (DMF) Commands. Optimizing File RetrievalYou can fetch files to disk as a group by running the dmget command before running your file transfer. dmget reads the tape once and gets all the requested files in a single pass. Run dmget on the same list of files you are about to transfer. Then, after the dmget operation completes, you can transfer the files using scp/ftp/cp as you had originally intended. Or, you can put dmget in the background and run your transfer while dmget is working. If any files are already on disk, dmget sees this and doesn't try to get them from tape. DMF also provides the dmfind command, which enables you to walk a file tree to find offline files to give to dmget. Note: Be sure you are in the correct directory before running dmfind. Use the pwd command to determine your current directory. Please check to make sure too much data isn't brought back online at once, either by using du with the --apparent-size option or by using /usr/local/bin/dmfdu. For example:
File transfer rates vary depending on the load on the system and how many users are transferring files at the same time. Typically, scp transfers between Lou and NAS compute systems on the /nobackup file system run between 30-120 MB/s for files larger than 100 MB, using the 10-gigabit network interface. Example 1:
Example 2:
You can see the state of a file by running dmls -l instead of ls -l. Maximum Amount of Data to Retrieve OnlineThe online disk space for Lou is considerably smaller than its tape storage capacity, and it is impossible to retrieve all files to online storage at the same time. Using the Shift tool for file transfers automatically ensures that files on Lou are retrieved in batches and released afterwards so there is no need to manually split up the transfer. If you do not use Shift, however, then you should confirm whether there is enough disk space before you retrieve a large amount of data. The df command shows the amount of free space in a filesystem. The Lou script dmfdu reports how much total (online and offline) data exists in a directory. To use dmfdu, simply cd into the directory you want to check, and execute the script. If you would like to know the total amount of data under your home directory on Lou, simply cd to your home directory and use dmfdu *, which will show use for each file or directory. Lou's archive filesystems are between 254 TB and 1.3 PB in size, but the available space typically floats between 10% to 30%. In Example 3, 29% of space is unused. It is best to retrieve no more than 10 TB at a time. As shown in Example 3, it is best to release the space (dmput -r) after using the retrieved files (scp, edit, compile, etc), then retrieve the next group of files, use them, and release the space again, and so on. Example 3:To retrieve one directory's data from tape, copy the data to a remote host, release the data blocks, and then retrieve more data from tape:
Also read
|