Changes between Initial Version and Version 1 of InstallationGuideSingleAccount

Show
Ignore:
Timestamp:
01/31/18 14:21:18 (6 years ago)
Author:
pkopta
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • InstallationGuideSingleAccount

    v1 v1  
     1[[PageOutline]]  
     2 
     3= Introduction = 
     4QCG-Computing service  is an open source service acting as a computing provider exposing on demand access to computing resources and jobs over the HPC Basic Profile compliant Web Services interface. In addition the QCG-Computing offers remote interface for Advance Reservations management.  
     5 
     6This document describes installation of the QCG-Computing service. The service should be deployed on the machine (or virtual machine) that: 
     7* has at least 1GB of memory (recommended value: 2 GB) 
     8* has 10 GB of free disk space (most of the space will be used by the log files) 
     9* has any modern CPU (if you plan to use virtual machine you should dedicated to it one or two cores from the host machine) 
     10* is running under: 
     11  * Scientific Linux 5/6 (in most cases the provided RPMs should work with any operating system based on Redhat Enterpise Linux, e.g. CentOS ) 
     12  * Debian 6.X 
     13  * any other modern linux distribution if you are ready to install QCG from source packages 
     14 
     15 
     16= Prerequisites = 
     17We assume that you have the local resource manager/scheduler already installed. This would be typically a frontend machine (i.e. machine where for example the pbs_server Torque daemon is running). If you want to install the QCG-Computing service on a separate submit host you should read this [[InstallationOnSeparateMachine| note]].  
     18 
     19Since version 2.4 the QCG-Computing services discovers installed application using the [http://modules.sourceforge.net/ Environment Modules] package. For this reason you should install modules on the QCG-Computing host and mount directories that contain all module files used at your cluster and make sure that user `qcg-comp` can see all modules. 
     20 
     21The !QosCosGrid services do not require from you to install any QCG component on the worker nodes, however application wrapper scripts need the following software to be available on worker nodes: 
     22 * bash,  
     23 * rsync, 
     24 * zip/unzip, 
     25 * dos2unix, 
     26 * python. 
     27 
     28Which are usually available out of the box on most of the HPC systems. 
     29== Shared file system == 
     30Deployment of the QCG-Computing requires usually  two shared file systems in the cluster: 
     31 * "Users' directories" - shared between the QCG host and all worker nodes.  Used for storing jobs sandbox directories. It can be either HOME or scratch file system. You can read more about this [[ScratchOrNotToScratch| here]]. 
     32 * "Applications scripts" - shared between all worker nodes. Used for storing [[ApplicationScripts|Applications Scripts]] 
     33= Firewall configuration = 
     34In order to expose the !QosCosGrid services externally you need to open the following incoming ports in the firewall: 
     35* 19000 (TCP) - QCG-Computing 
     36* 19001 (TCP) - QCG-Notification 
     37* 2811 (TCP) - GridFTP server 
     38* 20000-25000 (TCP) - GridFTP  port-range (if you want to use different port-range adjust the `GLOBUS_TCP_PORT_RANGE` variable in the `/etc/xinetd.d/gsiftp` file) 
     39 
     40You may also want to allow SSH access from white-listed machines (for administration purpose only). 
     41 
     42The following outgoing trafic should be allowed in general: 
     43* NTP, DNS, HTTP, HTTPS services 
     44* gridftp (TCP ports: 2811 and port-ranges: 20000-25000) 
     45Also the PL-Grid QCG-Accounting publisher plugin (BAT) need access the following port and machine (PL-Grid only): 
     46*  acct.plgrid.pl 61616 (TCP) 
     47= Preparation of the environment = 
     48== Database == 
     49* Install database backend (PostgresSQL). On !ScientificLinux it can be done with: 
     50{{{ 
     51yum install postgresql postgresql-server 
     52}}} 
     53* UnixODBC and the PostgresSQL odbc driver: 
     54{{{ 
     55yum install unixODBC postgresql-odbc 
     56}}} 
     57== CA and host certificates == 
     58At first install all need trusted CA certificates ([http://apps.man.poznan.pl/trac/qcg/wiki/CA%20certificates instruction]). Moreover we assume that the X.509 host certificate (signed by your local [http://www.eugridpma.org/members/worldmap/ Certificate Authority]) and key is already installed in the following locations: 
     59* `/etc/grid-security/hostcert.pem` 
     60* `/etc/grid-security/hostkey.pem` 
     61 
     62== Other == 
     63Most of the grid services and security infrastructures are sensitive to time skews. Thus we recommended to install a Network Time Protocol daemon or use any other solution that provides accurate clock synchronization. Also disable automatic packages update as it may hurt running system. 
     64 
     65= Installation = 
     66At first you need to install appropriate [http://apps.man.poznan.pl/trac/qcg/wiki/Software%20repositories repository] or get the newest [http://grass1.man.poznan.pl/qcg-sources/qcg-comp/ source package] and use this [[InstallingFromSources| guide]] to compile it manually. 
     67=== Centos 7, Scientific Linux 5/6 === 
     68{{{ 
     69yum install qcg-comp qcg-comp-client qcg-comp-logrotate 
     70}}} 
     71=== Debian === 
     72{{{ 
     73apt-get install qcg-comp qcg-comp-client qcg-comp-doc 
     74}}} 
     75 
     76 
     77= Integration with QCG-Broker = 
     78In order to enable this QCG-Computing endpoint to be accessible by the [http://www.qoscosgrid.org/trac/qcg-broker QCG-Broker]  service you need to: 
     79 * add a `qcg-broker` user - the user that the service would be mapped to. 
     80{{{ 
     81useradd -r -d /var/log/qcg/  qcg-broker  
     82}}} 
     83 * install grid-ftp server using this [http://www.qoscosgrid.org/trac/qcg/wiki/gridftp%20server instruction]. 
     84 
     85= Database initializaiton = 
     86* setup QCG-Computing database using provided script: 
     87{{{ 
     88#!div style="font-size: 90%" 
     89{{{#!sh 
     90/usr/share/qcg-comp/tools/qcg-comp-install.sh 
     91Welcome to qcg-comp installation script! 
     92  
     93This script will guide you through process of configuring proper environment 
     94for running the QCG-Computing service. You have to answer few questions regarding 
     95parameters of your database. If you are not sure just press Enter and use the 
     96default values. 
     97   
     98Use local PostgreSQL server? (y/n) [y]: y 
     99Database [qcg-comp]:  
     100User [qcg-comp]:  
     101Password [RAND-PASSWD]: MojeTajneHaslo 
     102Create database? (y/n) [y]: y 
     103Create user? (y/n) [y]: y 
     104   
     105Checking for system user qcg-comp...OK 
     106Checking whether PostgreSQL server is installed...OK 
     107Checking whether PostgreSQL server is running...OK 
     108   
     109Performing installation 
     110* Creating user qcg-comp...OK 
     111* Creating database qcg-comp...OK 
     112* Creating database schema...OK 
     113* Checking for ODBC data source qcg-comp... 
     114* Installing ODBC data source...OK 
     115     
     116Remember to add appropriate entry to /var/lib/pgsql/data/pg_hba.conf (as the first rule!) to allow user qcg-comp to 
     117access database qcg-comp. For instance: 
     118   
     119host    qcg-comp       qcg-comp       127.0.0.1/32    md5 
     120   
     121and reload Postgres server. 
     122}}} 
     123}}} 
     124 
     125Add a new rule to the pg_hba.conf as requested: 
     126{{{ 
     127#!div style="font-size: 90%" 
     128{{{#!sh 
     129vim /var/lib/pgsql/data/pg_hba.conf  
     130/etc/init.d/postgresql reload 
     131}}} 
     132}}} 
     133= Authorization  modules= 
     134The next subsections describes the three most common modes of authorization. 
     135=== Manually created grid mapfile === 
     136For testing purpose or if your user community is small enough to maintain it manually you can use plain grid mapfile which provides static mapping between user's certificate Distinguish Name and a local account: 
     137{{{ 
     138#!div style="font-size: 90%" 
     139{{{#!default 
     140#for test purpose only add mapping for your account 
     141echo '"MyCertDN" myaccount' >> /etc/grid-security/grid-mapfile 
     142}}} 
     143}}} 
     144=== LDAP generated grid mapfile (PL-Grid only) === 
     145In PL-Grid grid-mapfiles are generated automatically, based on information available in local LDAP replicas. You need to install and configure  [http://www.qoscosgrid.org/trac/qcg/wiki/gridmap-file-generator gridmap-file-generator] 
     146 
     147At the end add mapping in the `grid-mapfile.local` for the purpose of QCG-Broker. 
     148{{{ 
     149"/C=PL/O=GRID/O=PSNC/CN=qcg-broker/qcg-broker.man.poznan.pl" qcg-broker 
     150}}} 
     151=== VOMS === 
     152Since version 3.0 of the service it is possible to authorize and map users based on their VO membership ([[VOMSIntegration| instruction]]). 
     153 
     154=  Getting the DRMAA library = 
     155The QCG-Computing service use [http://drmaa.org DRMAA] compilant interface for batch job submission. Thus you need to install library appropriate for your system: 
     156* [[PBS| Torque/PBS Professional]] 
     157* [[SLURM]] 
     158* [[GridEngine]] 
     159* [[LoadLeveler]] 
     160* [[LSF]] 
     161 
     162= Service configuration  = 
     163Edit the preinstalled service configuration file (`/etc/qcg/qcg-comp/qcg-comp`**d**`.xml`): 
     164{{{ 
     165#!div style="font-size: 90%" 
     166{{{#!xml 
     167<?xml version="1.0" encoding="UTF-8"?> 
     168<sm:QCGCore 
     169        xmlns:sm="http://schemas.qoscosgrid.org/core/2011/04/config" 
     170        xmlns="http://schemas.qoscosgrid.org/comp/2011/04/config" 
     171        xmlns:smc="http://schemas.qoscosgrid.org/comp/2011/04/config" 
     172        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
     173         
     174        <Configuration> 
     175                <sm:ModuleManager> 
     176                        <sm:Directory>/usr/lib64/qcg-core/modules/</sm:Directory> 
     177                        <sm:Directory>/usr/lib64/qcg-comp/modules/</sm:Directory> 
     178                </sm:ModuleManager> 
     179   
     180                <sm:Service xsi:type="qcg-compd" description="QCG-Computing"> 
     181                        <sm:Logger> 
     182                                <sm:Filename>/var/log/qcg/qcg-comp/qcg-compd.log</sm:Filename> 
     183                                <sm:Level>INFO</sm:Level> 
     184                        </sm:Logger> 
     185   
     186                        <sm:Transport> 
     187                        <sm:Module xsi:type="sm:ecm_gsoap.service"> 
     188                           <sm:Host>frontend.example.com</sm:Host> 
     189                           <sm:Port>19000</sm:Port> 
     190                           <sm:KeepAlive>false</sm:KeepAlive> 
     191                           <sm:Authentication> 
     192                                   <sm:Module xsi:type="sm:atc_transport_gsi.service"> 
     193                                           <sm:X509CertFile>/etc/grid-security/hostcert.pem</sm:X509CertFile> 
     194                                           <sm:X509KeyFile>/etc/grid-security/hostkey.pem</sm:X509KeyFile> 
     195                                   </sm:Module> 
     196                           </sm:Authentication> 
     197                           <sm:Authorization> 
     198                                   <sm:Module xsi:type="sm:atz_mapfile"> 
     199                                           <sm:Mapfile>/etc/grid-security/grid-mapfile</sm:Mapfile> 
     200                                   </sm:Module> 
     201                           </sm:Authorization> 
     202                        </sm:Module> 
     203                            <sm:Module xsi:type="smc:qcg-comp-service"/> 
     204                        </sm:Transport> 
     205                         
     206                        <sm:Module xsi:type="pbs_jsdl_filter"/> 
     207                        <sm:Module xsi:type="atz_ardl_filter"/> 
     208                        <sm:Module xsi:type="sm:general_python" path="/usr/lib64/qcg-comp/modules/python/monitoring.py"/> 
     209                        <!--sm:Module xsi:type="sm:general_python" path="/opt/qcg/lib/qcg-comp/modules/python/plgrid_info.py"/ this module is Mandatory in  PL-Grid--> 
     210                        <sm:Module xsi:type="sm:general_python" path="/usr/lib64/qcg-comp/modules/python/modules_info.py"/> 
     211 
     212                        <sm:Module xsi:type="submission_drmaa" path="/usr/local/lib/libdrmaa.so"/> 
     213                        <sm:Module xsi:type="reservation_python" path="/usr/lib64/qcg-comp/modules/python/reservation_maui.py"/> 
     214                         
     215                        <sm:Module xsi:type="notification_wsn"> 
     216                               <PublishedBrokerURL>https://frontend.example.com:19011/</PublishedBrokerURL> 
     217                                <sm:Module xsi:type="sm:ecm_gsoap.client"> 
     218                                                <sm:ServiceURL>http://localhost:19001/</sm:ServiceURL> 
     219                                                        <sm:Authentication> 
     220                                                                <sm:Module xsi:type="sm:atc_transport_http.client"/> 
     221                                                        </sm:Authentication> 
     222                                                <sm:Module xsi:type="sm:ntf_client"/> 
     223                                </sm:Module> 
     224                        </sm:Module> 
     225                                 
     226                        <sm:Module xsi:type="application_mapper"> 
     227                                <ApplicationMapFile>/etc/qcg/qcg-comp/application_mapfile</ApplicationMapFile> 
     228                        </sm:Module> 
     229   
     230                        <Database> 
     231                                <DSN>qcg-comp</DSN> 
     232                                <User>qcg-comp</User> 
     233                                <Password>qcg-comp</Password> 
     234                        </Database> 
     235   
     236                        <UnprivilegedUser>qcg-comp</UnprivilegedUser> 
     237                        <!--UseScratch>true</UseScratch> uncomment this if scratch is the only file system shared between the worker nodes and this machine --> 
     238   
     239                        <FactoryAttributes> 
     240                                <CommonName>hpc.mydomain.org</CommonName> 
     241                                <LongDescription>Cluster description</LongDescription> 
     242                        </FactoryAttributes> 
     243                </sm:Service> 
     244   
     245        </Configuration> 
     246</sm:QCGCore> 
     247}}} 
     248}}} 
     249== Common == 
     250In most cases it should be enough to change only following elements: 
     251 `Transport/Module/Host` :: 
     252   the hostname of the machine where the service is deployed. You can put here `0.0.0.0` if you want to listen on all interfaces. 
     253 `Transport/Module/Authentication/Module/X509CertFile`  and  `Transport/Module/Authentication/Module/X509KeyFile` ::  
     254  If you installed cert and key file in the recommended location you do not need to edit these fields. 
     255 `Module[type="smc:notification_wsn"]/PublishedBrokerURL` ::  
     256  the external URL of the QCG-Notification service (You can do it later, i.e. after [http://www.qoscosgrid.org/trac/qcg-notification/wiki/installation_in_PL-Grid installing the QCG-Notification service]) 
     257 `Module[type="smc:notification_wsn"]/Module/ServiceURL` ::  
     258  the localhost URL of the QCG-Notification service (You can do it later, i.e. after [http://www.qoscosgrid.org/trac/qcg-notification/wiki/installation_in_PL-Grid installing the QCG-Notification service]) 
     259 `Module[type="submission_drmaa"]/@path` :: 
     260  path to the DRMAA library (the `libdrmaa.so`).  
     261 `Module[type="reservation_python"]/@path` :: 
     262  path to the reservation module. Change this if you are using different scheduler than Maui (e.g. use `reservation_moab.py` for Moab, `reservation_pbs.py` for PBS Pro) 
     263 `Database/Password` ::  
     264  the `qcg-comp` database password   
     265  `UseScratch` :: 
     266  set this to `true` if you set QCG_SCRATCH_DIR_ROOT in `sysconfig` so any job will be started from scratch directory (instead of default home directory) 
     267 `FactoryAttributes/CommonName` ::  
     268  a common name of the cluster (e.g. reef.man.poznan.pl). You can use any name that is unique among all systems (e.g. cluster name + domain name of your institution) 
     269 `FactoryAttributes/LongDescription` ::  
     270  a human readable description of the cluster 
     271== Torque == 
     272 `Module[type="reservation_python"]/@path` :: 
     273  path to the reservation module. Change this if you are using different scheduler than Maui (e.g. use `reservation_moab.py` for Moab) 
     274== PBS Professional == 
     275 `Module[type="reservation_python"]/@path` :: 
     276  path to the reservation module. Change this to `reservation_pbs.py`. 
     277== SLURM == 
     278* at first replace: 
     279{{{ 
     280                         <sm:Module xsi:type="pbs_jsdl_filter"/> 
     281}}} 
     282* with: 
     283{{{ 
     284                        <sm:Module xsi:type="slurm_jsdl_filter"/> 
     285}}} 
     286 
     287* also if you want to offer advance reservation interface you need to: 
     288   `Module[type="reservation_python"]/@path` :: 
     289  path to the reservation module. Change this to `reservation_slurm.py`. 
     290 
     291* finally make sure that the `qcg-comp` user exist on the service node and that it can list all nodes: 
     292{{{ 
     293scontrol show node -o | wc -l 
     294}}} 
     295 
     296= Configuring QCG-Accounting = 
     297Please use [http://www.qoscosgrid.org/trac/qcg-computing/wiki/QCG-Accounting QCG-Accounting] agent.  
     298 
     299= Creating applications' script space  = 
     300A common case for the QCG-Computing service is that an application is accessed using abstract app name rather than specifying absolute executable path. The application name/version to executbale path mappings are stored in the file `/etc/qcg/qcg-comp/application_mapfile`: 
     301 
     302{{{ 
     303cat /etc/qcg/qcg-comp/application_mapfile 
     304# ApplicationName ApplicationVersion Executable 
     305 
     306bash * /opt/exp_soft/qcg/qcg-app-scripts/app-scripts/bash.qcg 
     307 
     308}}} 
     309 
     310It is also common to provide here  wrapper scripts rather than target executables. The wrapper script can handle such aspects of the application lifetime like: environment initialization,  copying files from/to scratch storage and application monitoring. It is recommended to create separate directory for those wrapper scripts (e.g. the application partition) for an applications. This directory must be readable by all users and from every worker node (the application partition usually fullfils those requirements). Please read more on [ApplicationScripts Application Scripts]. You **must** provide at least mapping for the 'bash' application. 
     311 
     312= Starting the service = 
     313As root type: 
     314{{{ 
     315/etc/init.d/qcg-compd start 
     316}}} 
     317 
     318The service logs can be found in: 
     319{{{ 
     320/var/log/qcg/qcg-comp/qcg-compd.log 
     321}}} 
     322 
     323**Note:** In current version, whenever you restart the PosgreSQL server you need also restart the QCG-Computing and QCG-Notification service: 
     324 
     325{{{ 
     326/etc/init.d/qcg-compd restart 
     327/etc/init.d/qcg-ntfd restart 
     328}}} 
     329= Stopping the service = 
     330The service can be stopped using the following command: 
     331{{{ 
     332/etc/init.d/qcg-compd stop 
     333}}} 
     334 
     335= Verifying the installation = 
     336 
     337*  Edit the QCG-Computing client configuration file (`/etc/qcg/qcg-comp/qcg-comp.xml`): 
     338 *  set the `Host` and `Port` to reflects the changes in the service configuration file (`qcg-compd.xml`). 
     339{{{ 
     340<?xml version="1.0" encoding="UTF-8"?> 
     341<sm:QCGCore 
     342       xmlns:sm="http://schemas.qoscosgrid.org/core/2011/04/config" 
     343       xmlns="http://schemas.qoscosgrid.org/comp/2011/04/config" 
     344       xmlns:smc="http://schemas.qoscosgrid.org/comp/2011/04/config" 
     345       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
     346   
     347       <Configuration> 
     348               <sm:ModuleManager> 
     349                       <sm:Directory>/usr/lib64/qcg-core/modules/</sm:Directory> 
     350                       <sm:Directory>/usr/lib64/qcg-comp/modules/</sm:Directory> 
     351               </sm:ModuleManager> 
     352  
     353               <sm:Client xsi:type="qcg-comp" description="QCG-Computing client"> 
     354                       <sm:Transport> 
     355                               <sm:Module xsi:type="sm:ecm_gsoap.client"> 
     356                                       <sm:ServiceURL>httpg://frontend.example.com:19000/</sm:ServiceURL> 
     357                                       <sm:Authentication> 
     358                                               <sm:Module xsi:type="sm:atc_transport_gsi.client"/> 
     359                                       </sm:Authentication> 
     360                                       <sm:Module xsi:type="smc:qcg-comp-client"/> 
     361                               </sm:Module> 
     362                       </sm:Transport> 
     363               </sm:Client> 
     364       </Configuration> 
     365</sm:QCGCore> 
     366}}} 
     367* Initialize your credentials: 
     368{{{ 
     369grid-proxy-init -rfc 
     370Your identity: /C=PL/O=GRID/O=PSNC/CN=Mariusz Mamonski 
     371Enter GRID pass phrase for this identity: 
     372Creating proxy .................................................................. Done 
     373Your proxy is valid until: Wed Apr  6 05:01:02 2012 
     374}}} 
     375* Query the QCG-Computing service: 
     376{{{ 
     377qcg-comp -G | xmllint --format - # the xmllint is used only to present the result in more pleasant way 
     378   
     379<bes-factory:FactoryResourceAttributesDocument xmlns:bes-factory="http://schemas.ggf.org/bes/2006/08/bes-factory"> 
     380    <bes-factory:IsAcceptingNewActivities>true</bes-factory:IsAcceptingNewActivities> 
     381    <bes-factory:CommonName>IT cluster</bes-factory:CommonName> 
     382    <bes-factory:LongDescription>IT department cluster for public   use</bes-factory:LongDescription> 
     383    <bes-factory:TotalNumberOfActivities>0</bes-factory:TotalNumberOfActivities> 
     384    <bes-factory:TotalNumberOfContainedResources>1</bes-factory:TotalNumberOfContainedResources> 
     385    <bes-factory:ContainedResource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="bes-factory:BasicResourceAttributesDocumentType"> 
     386        <bes-factory:ResourceName>worker.example.com</bes-factory:ResourceName> 
     387        <bes-factory:CPUArchitecture> 
     388            <jsdl:CPUArchitectureName xmlns:jsdl="http://schemas.ggf.org/jsdl/2005/11/jsdl">x86_32</jsdl:CPUArchitectureName> 
     389        </bes-factory:CPUArchitecture> 
     390        <bes-factory:CPUCount>4</bes-factory:CPUCount><bes-factory:PhysicalMemory>1073741824</bes-factory:PhysicalMemory> 
     391    </bes-factory:ContainedResource> 
     392    <bes-factory:NamingProfile>http://schemas.ggf.org/bes/2006/08/bes/naming/BasicWSAddressing</bes-factory:NamingProfile>  
     393    <bes-factory:BESExtension>http://schemas.ogf.org/hpcp/2007/01/bp/BasicFilter</bes-  factory:BESExtension> 
     394    <bes-factory:BESExtension>http://schemas.qoscosgrid.org/comp/2011/04</bes-factory:BESExtension> 
     395    <bes-factory:LocalResourceManagerType>http://example.com/SunGridEngine</bes-factory:LocalResourceManagerType> 
     396    <smcf:NotificationProviderURL xmlns:smcf="http://schemas.qoscosgrid.org/comp/2011/04/factory">http://localhost:2211/</smcf:NotificationProviderURL> 
     397</bes-factory:FactoryResourceAttributesDocument> 
     398}}} 
     399* Submit a sample job: 
     400{{{ 
     401qcg-comp -c -J /usr/share/qcg-comp/doc/examples/jsdl/sleep.xml 
     402Activity Id: ccb6b04a-887b-4027-633f-412375559d73 
     403}}} 
     404* Query it status: 
     405{{{ 
     406qcg-comp -s -a ccb6b04a-887b-4027-633f-412375559d73 
     407status = Executing 
     408qcg-comp -s -a ccb6b04a-887b-4027-633f-412375559d73 
     409status = Executing 
     410qcg-comp -s -a ccb6b04a-887b-4027-633f-412375559d73 
     411status = Finished 
     412exit status = 0 
     413}}} 
     414* Submit a job which produces some output: 
     415{{{ 
     416$ qcg-comp -c -J /usr/share/qcg-comp/doc/examples/jsdl/date.xml  
     417Activity Id: 591effa9-143d-4cae-9dd9-02e40f760448 
     418$ qcg-comp -s -a 591effa9-143d-4cae-9dd9-02e40f760448 
     419status = Queued 
     420$ qcg-comp -s -a 591effa9-143d-4cae-9dd9-02e40f760448 
     421status = Finished (exit status = 0) 
     422$ qcg-comp -o -J /usr/share/qcg-comp/doc/examples/jsdl/date.xml 
     423File /tmp/date.staged.out staged out. 
     424All files staged out. 
     425$ cat /tmp/date.staged.out  
     426Mon Jul 29 02:23:33 HST 2013 
     427}}} 
     428 
     429If possible perform a "reboot test", i.e. reboot the machine and check if all services are operational without manual intervention. 
     430You can also run extended [[UMDVerification| UMD Verification Procedure]]. 
     431= Maintenance = 
     432The historic usage information is stored in two relations of the QCG-Computing database: `jobs_acc` and `reservations_acc`. You can always archive old usage data to a file  and delete it from the database using the psql client: 
     433{{{ 
     434#!div style="font-size: 90%" 
     435{{{#!sh 
     436psql -h localhost qcg-comp qcg-comp  
     437Password for user qcg-comp:  
     438Welcome to psql 8.1.23, the PostgreSQL interactive terminal. 
     439   
     440Type:  \copyright for distribution terms 
     441     \h for help with SQL commands 
     442     \? for help with psql commands 
     443     \g or terminate with semicolon to execute query 
     444     \q to quit 
     445 
     446qcg-comp=> \o jobs.acc 
     447qcg-comp=> SELECT * FROM jobs_acc where end_time < date '2010-01-10'; 
     448qcg-comp=> \o reservations.acc 
     449qcg-comp=> SELECT * FROM reservations_acc where end_time < date '2010-01-10'; 
     450qcg-comp=> \o 
     451qcg-comp=> DELETE FROM jobs_acc where end_time < date '2010-01-10'; 
     452qcg-comp=> DELETE FROM reservation_acc where end_time < date '2010-01-10'; 
     453}}} 
     454}}} 
     455 
     456you should also install logrotate configuration for QCG-Computing: 
     457{{{ 
     458#!div style="font-size: 90%" 
     459{{{#!sh 
     460yum install  qcg-comp-logrotate 
     461}}} 
     462}}} 
     463**Important**: On any update/restart of the PostgreSQL database you must restart also the qcg-compd and qcg-ntfd services. 
     464{{{ 
     465/etc/init.d/qcg-compd restart 
     466/etc/init.d/qcg-ntfd restart 
     467}}} 
     468On scheduled downtimes we recommend to disable submission in the service configuration file: 
     469{{{ 
     470... 
     471   <AcceptingNewActivities>false</AcceptingNewActivities> 
     472<FactoryAttributes> 
     473}}} 
     474 
     475= GOCDB = 
     476Please remember to register the QCG-Computing and QCG-Notification services in the GOCDB using the QCG.Computing and QCG.Notification services types respectively.