ARC Middleware ============== The Advanced Resource Connector (ARC) middleware, developed by the NorduGrid Collaboration (www.nordugrid.org), is an open source software solution enabling computing grid infrastructures with emphasis on processing of large data volumes. ARC is being used to enable national and international e-infrastructures since its first release in 2002. Dependencies ============ The core part of middleware is written in C/C++. Building the software from source or installing a pre-compiled binary requires different external packages, furthermore the client and server packages have different dependencies too. Below a list of the explicit requirements is shown: Mandatory dependencies ---------------------- Build: o GNU make, autotools (autoconf>=2.56) (automake>=1.8) o CVS o m4 o GNU gettext o C++ compiler and library o libtool o pkg-config o doxygen Build & runtime: o e2fsprogs o gthread-2.0 version 2.4.7 or later o glibmm-2.4 version 2.4.7 or later o libxml-2.0 version 2.4.0 or later o openssl version 0.9.7a or later If you are using LDAP based infosys: o open-ldap server o bdii version 5 or later o glue-schema Optional dependencies --------------------- Build: o CppUnit for unit testing o Grid Packaging Tools (GPT) (compute client) o swig version 1.3.28 or later (bindings) Build & runtime: o open-ldap client (LDAP DMC) o python 2.4 or higher (bindings, APEL publisher by Jura, ACIX) o java sdk 1.4 or later (bindings) o globus-common 4 (compute client) o globus-gssapi-gsi 4 (compute client) o globus-ftp-client 4 (compute client) o globus-ftp-control 4 (compute client) o globus-io 4 (compute client) o globus-openssl (compute client) o xrootd (xrootd DMC) o GFAL 2 (GFAL DMC) o Berkeley DB C++ interface (Delegation) o xmlsec1 1.2.4 or higher (Security) o NSS 3 (credential) Runtime dependencies: o Perl, libxml-simple-perl, perl-Digest-SHA1 (A-rex) o Perl, perl-SOAP-Lite, perl-Crypt-OpenSSL-X509 (nordugridmap) o perl-DBI (Boinc backend) o GNU time (A-rex) o VOMS o Stomppy, m2Crypto (APEL publisher by Jura) o pyOpenSSL, python-twisted-web, python-twisted-core, python-simplejson, (Python 2.4 only) python-hashlib (ACIX) Please note that depending on operating system distribution to build ARC you may need to install development versions of mentioned packages. Getting the software ==================== The middleware is free to deploy anywhere by anybody. Binary packages are available from Ubuntu, Fedora and EPEL repositories, as well as from NorduGrid's own repositories, as described at http://download.nordugrid.org The software code is released under the Apache 2.0 License (see the LICENSE file). It is available from the NorduGrid's Subversion repository, see http://svn.nordugrid.org for more details. The necessary 3rd party libraries are usually available in standard Linux distributions; in rare cases NorduGrid repositories offer them. There are also nightly code snapshots and package builds available at http://download.nordugrid.org/nightlies/packages/nordugrid-arc/trunk/ . Building & Installation ======================= The recommended way to install ARC is from repositories. If you want to build it yourself and downloaded the tarball, unpack it and cd into the created directory (below, replace 1.0.0 with the desired tag): tar -zxvf nordugrid-arc-1.0.0.tar.gz cd nordugrid-arc-1.0.0 If you obtained the code from the Subversion repository, use the 'tags/1.0.0' directory. svn co http://svn.nordugrid.org/repos/nordugrid/arc1/tags/1.0.0 nordugrid-arc cd nordugrid-arc Now configure the obtained code with ./autogen.sh ./configure --prefix=PLACE_TO_INSTALL_ARC Choose the installation prefix wisely and according to the requirements of your OS and personal preferences. ARC should function properly from any location. By default installation goes into /usr/local if you omit the '--prefix' option. If you install into another directory than /usr/local you may need to set up an environment variable after installation: export ARC_LOCATION=PLACE_TO_INSTALL_ARC On some systems 'autogen.sh' may produce few warnings. Ignore them as long as 'configure' passes without errors. But in case of problems during configure or compilation, collect them and present while reporting problems. If the previous commands finish without errors, do touch src/doxygen/*.pdf in order to get around an issue with timestamps and then compile and install ARC: make make install If you have already installed ARC libraries in the system default location such as /usr/lib you may need to use the following installation command instead in order to override installed pkgconfig files and/or libtool archives which contain -L/usr/lib: make LDFLAGS="-L<PLACE_TO_INSTALL_ARC>/lib" install On some systems you may need to use gmake instead of make. Depending on the chosen installation location you may need to run the last command from a root account. That should install the following components: sbin/arched - server executable etc/init.d - daemon init scripts bin/ - user tools and command line clients lib/ - common libraries used by clients, server and plugins lib/arc/ - plugins implementing Message Chain, Service and Security components include/arc/ - C++ headers for application development libexec/ - additional modules used by ARC services - currently only A-REX share/arc - configuration examples, templates etc share/doc/nordugrid-arc-* - documentation share/locale - internationalization files - curently very limited support share/man - manual pages for various utilities X509 Certificates ================= All ARC services use HTTPS or GridFTP as transport protocol so they require proper setup of an X509 security infrastructure. Minimal requirements are: * Host certificate aka public key in PEM format * Corresponding private key * Certificate of the Certification Authority (CA) which was used to sign the host certificate * Certificates of CAs of clients which are going to send requests to services, unless of course clients use the same CA as the server. More information about X509 certificates and their usage in Grid environment can be found on http://www.nordugrid.org/documents/certificate_howto.html and http://www.nordugrid.org/documents/arc-server-install.html#security For testing purposes you can use pre-generated certificates and keys available at: http://svn.nordugrid.org/trac/nordugrid/browser/doc/trunk/tech_doc/sec/TestCA Alternatively, you may choose to use KnowARC Instant CA service available at https://arc-emi.grid.upjs.sk/instantCA/instantCA . It is especially useful when testing installations consisting of multiple hosts. Please remember that it is not safe to use such instant keys in publicly accessible installations of ARC. Make sure that even the generated CA certificate is removed before making your services available to the outside world. You can put host certificates and private keys anywhere. Common locations for servers running from root account are /etc/grid-security/hostcert.pem and /etc/grid-security/hostkey.pem, respectively. The content of the private key must not be encrypted nor protected by a password since a service has no way to ask a password. Therefore it must be properly protected by means of file system permissions (some services enforce that the private key is only readable by the user running the service). It is possible to configure the ARC server to accept either a single CA certificate or multiple CA certificates located in the specified directory. The latter option is recommended. The common location is /etc/grid-security/certificates/ . In that case the names of the certificate files have to follow the hash values of the certificates. These are obtainable by running the command openssl x509 -hash -noout -in path_to_certificate The corresponding file name for the certificate should be <hash_value>.0 . The value for the pre-generated CA certificate is 4457e417. For the ARC client tools you may use the pre-generated user certificate and key located at the same place above. Generally the key and certificate are not used directly but a passphraseless proxy certificate is generated and used instead. ARC comes with a proxy generation utility arcproxy - see 'man arcproxy' for usage and options. Locations of the credentials are provided to the client tools via the client configuration file. The set of pre-generated keys and certificates also includes a user certificate in PKCS12 format which you can import into your browser for accessing ARC services capable of producing HTML output. IMPORTANT: If during the configuration stage you see a message "OpenSSL contains no support for proxy credentials" that means you won't be able to use proxy credentials generated by utilities like grid-proxy-init, voms-proxy-init or arcproxy. Because of that all user private keys must be kept unencrypted. ARC Server Setup & Configuration ================================ The configuration of the ARC server is specified in a file which by default is at /etc/arc.conf. A different location can be specified by the ARC_CONFIG environment variable. For configuration details and examples please refer to the reference in share/arc/arc.conf.reference or the service manual of the particular services you wish to run. The A-REX Service ================= ARC comes with an OGSA BES compliant Grid job management service called A-REX. To deploy A-REX refer to "ARC Computing Element: System Administrator Guide" (NORDUGRID-MANUAL-20) which contains extensive information on set up and configuration of A-REX. Testing and Using A-REX (clients) ================================= Instructions below refer to the Web Service interface; similar tests can be done for the original GridFTP-based interface (gsiftp:// protocol). Now you may use the command line utility 'arcinfo' to obtain a service description. You can do something like arcinfo -c https://localhost:60000/arex -l This should produce a description list of the resources A-REX represents. Below you can see a truncated example of proper output. --- Cluster: localhost Health State: ok Location information: Domain information: Service information: Service Name: MINIMAL Computing Element Service Type: org.nordugrid.execution.arex Endpoint information: URL: https://localhost:60000/arex Capabilities: executionmanagement.jobexecution Technology: webservice Interface Name: OGSA-BES Supported Profiles: WS-I 1.0 HPC-BP Implementor: NorduGrid Implementation Name: A-REX Implementation Version: 0.9 QualityLevel: development Health State: ok Serving State: production Issuer CA: /O=Grid/O=NorduGrid/CN=NorduGrid Certification Authority Trusted CAs: /C=BE/O=BELNET/OU=BEGrid/CN=BEGrid CA/emailAddress=gridca@belnet.be /C=FR/O=CNRS/CN=CNRS2-Projets /DC=org/DC=ugrid/CN=UGRID CA [...] Staging: staginginout Job Descriptions: ogf:jsdl:1.0 Queue information: Mapping Queue: default Max Total Jobs: 100 Max Running Jobs: 10 Max Waiting Jobs: 99 Max Pre LRMS Waiting Jobs: 0 Max User Running Jobs: 5 Max Slots Per Job: 1 Doesn't Support Preemption Total Jobs: 0 Running Jobs: 0 Waiting Jobs: 0 Suspended Jobs: 0 Staging Jobs: 0 Pre-LRMS Waiting Jobs: 0 Free Slots: 10 Free Slots With Duration: P68Y1M5DT3H14M7S: 10 Used Slots: 0 Requested Slots: 0 Manager information: Resource Manager: torque Doesn't Support Advance Reservations Doesn't Support Bulk Submission Total Physical CPUs: 10 Total Logical CPUs: 10 Total Slots: 10 Non-homogeneous Resource Working area is nor shared among jobs Working Area Total Size: 15 Working Area Free Size: 4 Working Area Life Time: P7D Cache Area Total Size: 15 Cache Area Free Size: 4 Execution Environment information: Execution environment is a physical machine Execution environment does not support inbound connections Execution environment does not support outbound connections --- A-REX accepts jobs described in XRSL, which is described in "Extended Resource Specification Language: Reference Manual for ARC versions 0.8 and above" (NORDUGRID-MANUAL-4). To submit a job to the A-REX service one may use the 'arcsub' command: arcsub -c https://localhost:60000/arex -f simple.xrsl If everything goes fine, somewhere in its output there should be a message "Job submitted", and a job identifier is obtained which will be stored locally in a client job store. One can then query job state with the 'arcstat' utility: arcstat <job id> State: Running arcstat <job id> State: Finished For more information on these and other arc* job and data management commands please see the man pages of those utilities or "ARC Clients: User Manual for ARC 11.05 (client versions 1.0.0) and above" (NORDUGRID-MANUAL-13). Contributing ============ The open source development of the ARC middleware is coordinated by the NorduGrid Collaboration which is always open to new members. Contributions from the community to the software and the documentation is welcomed. Sources can be downloaded from the software repository at download.nordugrid.org or the Subversion code repository at svn.nordugrid.org. The technical coordination group defines outstanding issues that have to be addressed in the framework of ARC development. Feature requests and enhancement proposals are recorded in the Bugzilla bug tracking system at bugzilla.nordugrid.org. For a more detailed description, write access to the code repository and further questions, write to the nordugrid-discuss mailing list (see www.nordugrid.org for details). Ongoing and completed Grid research projects and student assignments related to the middleware are listed on the NorduGrid web site as well. Support, documentation, mailing lists, contact ============================================== User support and site installation assistance is provided via the request tracking system available at nordugrid-support@nordugrid.org. In addition, the NorduGrid runs several mailing lists, among which the nordugrid-discuss mailing list is a general forum for all kind of issues related to the ARC middleware. The Bugzilla problem tracking system (bugzilla.nordugrid.org) accepts requests for features or enhancements, and is the prime medium to track and report problems. Research papers, overview talks, reference manuals, user guides, installation instructions, conference presentations, FAQ and even tutorial materials can be fetched from the documentation section of www.nordugrid.org Contact information is kept updated on the www.nordugrid.org web site.
Forked from
nordugrid / arc
3345 commits behind the upstream repository.
Aleksandr Konstantinov
authored