When Moab is used to manage resources across multiple clusters, there is a greater need to track and enforce the resource sharing agreements between the resource principals.
The Gold Allocation Manager is an open source accounting system that tracks resource usage on High Performance Computers. It acts much like a bank in which accounts are established to pre-allocate which users and projects can use resources on which machines and over which timeframes. Gold supports familiar operations such as deposits, withdrawals, transfers, and refunds. It provides balance and usage feedback to users, managers, and system administrators.
Gold can be used as a real-time debiting system in which jobs are charged at the moment of completion. When used in a multi-site (grid) environment, Gold facilitates trust by allowing lending organizations to manage what the costing rules are for usage of their resources and job submitters to determine how much their job is going to cost them before they start, ensuring all parties can agree to the transaction and giving each party a first-hand accounting record.
If the clusters are within a common administrative domain and have a common user space, then a single Gold Allocation Manager will suffice to manage the project allocation and accounting. This works best in Master/Slave grids.
The following steps provides an example of setting up the Gold Allocation Manager to manage the allocation and accounting for a multiple cluster grid within a single administrative domain.
First you will need to install Gold and its database on one or more head nodes.
# Install Prerequisites (Perl with suidperl, PostgreSQL, libxml2, ...) [root] yum install perl perl-suidperl postgresql postgresql-libs postgresql-devel postgresql-server libxml2 # Unpack the tarball [root] passwd gold [gold] mkdir ~/src [gold] cd ~/src [gold] gzip -cd gold-184.108.40.206.tar.gz | tar xvf - [gold] cd gold-220.127.116.11 # Install [gold] ./configure [gold] make [root] make deps [root] make install [root] make auth_key # Configure, create and bootstrap the database [postgres] /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data [postgres] echo "host all all 192.168.1.1 255.255.255.255 trust" >>usr/local/pgsql/data/pg_hba.conf [postgres] /usr/local/pgsql/bin/postmaster -i -D /usr/local/pgsql/data >var/log/pgsql 2>&1 & [postgres] createuser gold [gold] /usr/local/pgsql/bin/createdb gold [gold] /usr/local/pgsql/bin/psql gold < bank.sql # Startup the gold server daemon [root] cp etc/gold.d /etc/init.d/gold [root] chmod +x /etc/init.d/gold [root] service gold start