begindocument
PARA'04 State-of-the-Art
in Scientific Computing
June 20-23, 2004 (Home page)
Updated: February 1, 2004
Erik Elmroth and Peter Gardfjäll
Department of Computing Science and HPC2N,
Umeå University
Umeå, Sweden
email: {elmroth,peterg}@cs.umu.se
This contribution presents the architecture and implementation of a bank service, constituting a key component in a grid accounting system. A grid accounting system maintains a grid-wide view of the resources consumed by members of a virtual organization. The information gathered by the accounting system can serve several interesting purposes, such as to allow enforcement of project quotas or to provide a basis for grid resource brokering decisions.
The bank service presented here is one of the main components of a complete accounting system solution for SweGrid, recently developed in a joint project with PDC, KTH. SweGrid includes 6 Linux clusters with a total of 600 CPUs dedicated for grid usage 24 hours a day. Two thirds of the SweGrid capacity is dedicated for researchers in different disciplines and one third is reserved for high energy physics computations.
In SweGrid, user projects are allocated a certain amount of computer time per month after a peer-reviewed application process. These <i>node hour</i> allocations may be used by one or several of the project members on some or all of the SweGrid resources, in any combination. The accounting system's grid-wide view enables, e.g., strict enforcement of project allocations.
The bank is designed as an online service, handling the accounts of SweGrid projects. Each grid job submission is transparently intercepted by the accounting system, which acquires a reservation on a portion of the project account prior to job execution. On job completion, the project account is charged for the consumed resources and the reservation is released. Complexity is added to the problem by the distributed resource administration, the fact that different resources use different mappings from grid user accounts to local user accounts, and that no other global control or monitoring facility is available.
The bank is general with respect to what resources and type of quantities it can handle, i.e., its design is not restricted to accounts for node hours on computers. Additional resource types can easily be accounted for. Different kinds of resources can either be converted into a single currency (Grid credits), or separate accounts can be kept for a project's computer usage, storage utilization, etc. It also allows for alternative policies on how strict the enforcement on project quotas should be. If a strict enforcement policy is not used, the user can still chose to perform "safe" withdrawals that do not exceed the funds of the project account.
This contribution presents the overall bank design and technical details of its major components, as well as some illustrative examples of relevant grid service interactions. The system design is based on the Open Grid Services Architecture (OGSA) and implemented using Globus Toolkit 3. The complete bank system provides a range of services for bank administrators and bank users. The bank is composed of three tightly integrated, OGSI-compliant grid services. A <i>bank service</i>, extending the OGSI:Factory portType, instantiates new <i>account services</i>, which maintain account state and transaction history that can be queried by trusted users. Account holders can request the instantiation of an <i>account hold</i> service, representing a time-limited reservation on a portion of the account allocation. An account hold can be cashed in at a later time to charge for resource usage.
Finally, scalability and fault tolerance issues are addressed
by extending the bank architecture into a distributed and
replicated system.
Home page