|
||||||||||||||||||||||||||||||||||||
17.12 Data Staging
Moab allows sites to manage job data staging requirements so as to minimize resource inefficiencies and maximize system utilization. Without scheduler-controlled data staging, a job must handle its own data staging. This leads to inefficiencies as a job does not use its assigned compute resources while waiting for its data to be staged. Moab's data staging facilities prevent the loss of compute resources due data blocking and can significantly improve cluster performance.
This section describes the following:
17.12.1 Data Staging ModelsMoab supports, or plans to support, four different data staging models:
The DATASTAGEMODEL parameter is used to configure Moab to use one of these models. In each model, Moab handles data staging using a storage resource manager interface. This interface is configured using the RMCFG parameter. To actually drive the storage resource manager, a number of RM interface attributes must be set. The TYPE, RESOURCETYPE, and SYSTEMQUERYURL attributes must always be set. In addition, other attributes will be required depending on the data staging model used. Then, job submission resource managers can use this storage interface to stage data by specifying it with the DATARM attribute.
Moab is pre-packaged with several interface scripts that will work for many situations. These scripts are located in the tools directory (those beginning with dstage) and may be customized to fit your particular needs. To use these scripts, simply define a resource manager with the needed URL attribute pointing to the appropriate script. 17.12.2 Verified Data Staging (External)In this model, an external data server entity is responsible for staging needed job data. Moab has no control or influence over the timing or execution of data staging decisions. It can only determine that a job has data staging requirements and avoid starting the job until it can verify that these requirements are met. This data staging model eliminates the situation where a job is assigned resources it is unable to immediately use. To determine when the stage-in operation is complete, Moab uses a storage resource manager SYSTEMQUERYURL interface to retrieve information about the files being staged (see below for more information). Optionally, Moab will provide diagnostic information about the storage resource manager if the CLUSTERQUERYURL interface is specified. To take advantage of Verified Data Staging, a job must be submitted with an indication of its stage-in data requirements. The resource manager extension STAGEIN is used to indicate a job's stage-in data files. This extension can be used directly by the user or inserted via a portal or submit filter. For an example, see the TORQUE submission filter page.
Moab displays information about data staging in: Checkjob The checkjob command will report information on both input and output data stage requests. This information includes the following:
Example
Checknode The checknode command will report information on storage managers' pending, active, and completed data stage requests as well as cluster resources dedicated to these requests. This information includes the following:
Example
17.12.3 Prioritized Data Staging (Loose)In this model, Moab is assumed to have influence over the order in which data staging operations are executed. Moab still doesn't have full control over the staging, but is responsible for initiating the data staging operations for each job. Also, Moab assumes that the data server is unable to provide an accurate estimate of when a data migration request will be complete. To allow Moab to initiate a data staging operation, a storage manager must be configured with the SYSTEMMODIFYURL and the SYSTEMQUERYURL attributes set. Further, if data manager throttling is desired, the CLUSTERQUERYURL attribute should be set to allow Moab to monitor data resource usage and prevent possible data cache thrashing. If Moab detects a job with data stage-in requirements it first checks that the job's assigned resource manager has a storage manager associated with it. If this is the case and the storage manager has the SYSTEMMODIFYURL attribute set, it will attempt to stage the data by utilizing the interface defined by SYSTEMMODIFYURL. Moab will block the job until the staging operation is complete. Because this model allows Moab to explicitly request data migration actions, Moab can control when each request is made and, to some degree, have data staged according to batch system job prioritization and compute resource availability constraints. Consequently, Moab can seek to maximize the use of the data manager so as to optimize cluster performance and minimize response times for the most important jobs. As mentioned above, if the CLUSTERQUERYURL attribute is set, Moab will monitor and control the disk usage on the storage resource manager. In addition to this attribute, the $MOABHOMEDIR/dataspaces.tab file must be created/modified to include any data space areas that you would like Moab to monitor. Multiple locations on remote nodes can be monitored for availbility and disk space. (See below example for syntax.) Example 1: Prioritized Data Staging with Data Cache Constraints (w/TORQUE)
Example 2: Prioritized Data Staging with Data Cache and Transfer Agent Constraints A given site uses a hierarchical storage manager (HSM) in conjunction with a single large SMP system. Preliminary monitoring indicates that only 25% of SMP to HSM traffic is input file based and 75% is output file based. The site also currently manages data stageback using a homegrown solution which stages data back afterdata_node/cluster/users/storage/ STATE=active job completion. Consequently, in order to free up compute resources at the earliest time possible, Moab needs to intelligently prestage the data to ensure that total data stage does not exceed 25% of total SMP disk resources. In addition, the HSM system is known to perform best with 8 or fewer active data transfer agents. When this value is exceeded, some level of thrashing appears and performance is reduced. In the following configuration, the MAXDSOP attribute is used to prevent more than 8 simultaneous stagein requests and the TARGETUSAGE attribute prevent more than 25% of available disk resources to be consumed by input data staging requests.
Example 3: Grid Data Staging 17.12.4 Fully-Scheduled Data Staging (Tight)
|
||||||||||||||||||||||||||||||||||||
| Argument Number | Argument Name | Description |
| 1 | SubCommand | Describes type of query to be performed. For data staging, this argument is either filesize or stagetime. |
| 2 | User | Username under which this script's results will be calculated (usually owner of the job) |
| 3 | Source File URL | URL pointing to the source file, containing file access protocol information, etc. |
| 4 | Destination File URL (used only with stagetime subcommand) | URL pointing to the destination file, containing file access protocol information, etc. |
| 5 | TransferRate (used only with stagetime subcommand) | Approximate rate of data transfer as reported via the cluster query interface or configured within Moab. This rate is reported in KB/s and if not specified, will be reported as 0.0. |
The output of this interface depends on the given subcommand. For filesize it is a string in the format <FILESIZE>, giving the size of the file in bytes. For stagetime it is a string in the format <STAGETIME>[,<FILESIZE>]. If stagetime is unknown, the interface should return a value of -1. If filesize is unknown, no value should be reported. The Moab tools directory contains a sample data staging system query script that can be customized to meet site specific needs.
The system modify interface is used to manipulate generic compute resource objects. In the case of data staging, it is used to request that the data server initiate data staging and to clean up stale data files. If the SYSTEMMODIFYURL points to a script, the script will be passed 4 arguments as described in the table below. The script may utilize or ignore these arguments as needed according to site specific needs.
| Argument Number | Argument Name | Description |
| 1 | SubCommand | Describes type of query to be performed. For data staging, this argument will always be set to either stage or remove |
| 2 | User | Username under which this script's actions will be performed (usually owner of the job) |
| 3 | Source File URL | For the command stage, this is the URL for the source file. For the remove command, this is the URL for the file to be removed. |
| 4 | Destination File URL (used only with stage subcommand) | For the command stage, this is the URL for the destination file. |
The output of this interface is identical to the output of the system query interface. See that section for details. The Moab tools directory contains a sample data staging system modify script which can be customized to meet site specific needs.
Jobs submitted directly by end users, from grid schedulers, or via application or user portals may request intelligent data staging of input files (stage-in) by using the STAGEIN resource manager extension. This alerts Moab that the job cannot start until the input data files are staged in by the SYSTEMMODIFYURL interface.
All jobs submitted to a resource manager that has an associated storage manager may also exploit an implicitly staging-out of standard out and standard error files. If the associated storage manager is configured with a SYSTEMMODIFYURL interface, then when the job completes successfully, the standard out and error files will be transfered automatically back to the user's home directory. This feature is especially useful for disparate clusters in a grid environment. (NOTE: This implicit stage-out feature is not currently available for all resource managers.)