PMES Framework package installation guide:


1. Installation

* Note:
- The following commands require root privileges and Internet connection.
- Once the packages are installed, please log out and back in again to complete the installation.

1.1 Debian-based distributions

1.1.1 Add package repository

1.1.2 Add signing key

1.1.3 Refresh repository

1.1.4 Install packages

1.1.5 Check Java environment

1.2. RedHat-based distributions

1.2.1 Add package repository

1.2.2 Refresh package list

1.2.3 Install packages

2. Configuration

2.1 Set pmes account password

2.2 Create the PMES Service keystore

Example:


keytool -genkey -alias pmes -keyalg RSA -keystore keystore

Enter keystore password: <somePassword> Re-enter new password: <somePassword>

What is your first and last name?

[Unknown]: pmes-service.bsc.es (Must be the hostname of the machine).

What is the name of your organizational unit?

[Unknown]: Computer Sciences

What is the name of your organization?

[Unknown]: Barcelona Supercomputing Center

What is the name of your City or Locality?

[Unknown]: Barcelona

What is the name of your State or Province?

[Unknown]: Spain

What is the two-letter country code for this unit?

[Unknown]: ES

Is CN=pmes-service.bsc.es, OU=Computer Sciences, O=Barcelona Supercomputing Center, L=Barcelona, ST=Spain, C=ES correct?

[no]: yes

Enter key password for pmes (RETURN if same as keystore password): [return]

Important: The key password must be the same as the keystore password.

 

2.3 Export your public certificate

Example:

keytool -export -alias pmes -keystore keystore -file pmes-cert.cer

Enter keystore password:

Certificate stored in file <pmes-cert.cer>


2.4 Setting keystore on Apache Tomcat

<Connector port="8443" SSLEnabled="true" maxThreads="150"

scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"

keystoreFile="/opt/pmes-framework/pmes-service/certs/keystore"

keystorePass="<KeystorePassword>"/>


2.5 Configuring PMES

2.5.1 Configuring the service

- The <Address> configures the service endpoint. Just replace the HOSTNAME by the actual machine name.

- The <Scheduler> points to the implementation class of the chosen scheduler. This scheduler is used to apply different policies into the jobs queue.

- The <MaxJobWallClock> refers to the maximum lifetime of a job, if it is exceeded, the job will be automatically cancelled.

- The <UpdateLogsTime> is the logs refresh frequency of a job.

- The <*ExpTime> the maximum time that a terminated job will remain on the database. If exceeded the job will be preserved into the accounting table.

Example:

    <!-- PMES Configuration -->
    <PMES>
        <Address>https://HOSTNAME:8443/pmes/factory</Address>
        
        <Scheduler>com.bsc.pmes.jobmanager.jobscheduler.SJNScheduler</Scheduler>

        <!-- Max allowed time per job (minutes) -->
        <MaxJobWallClock>300</MaxJobWallClock>

        <!-- Update logs time (minutes) -->
        <UpdateLogsTime>1</UpdateLogsTime>

        <!-- Job expiration control (minutes) -->
        <FinishedExpTime>120</FinishedExpTime>
        <CancelledExpTime>120</CancelledExpTime>
        <FailedExpTime>120</FailedExpTime>
        <ExpCheckTime>5</ExpCheckTime>

        <!-- Jobs accounting (values: true/false) -->
        <Accounting>true</Accounting>
    </PMES>

2.5.2 Configuring the resources

        <!-- CLOUD Provider Configuration -->
           <Connectors>

                <!-- Main provider -->
                <Provider>
                          <Name>BSC</Name>
                          <Server>https://HOST:PORT/...</Server>
                          <Implementation>com.bsc.pmes.connectors.rocci.ROCCI</Implementation>

                          <!-- Main Provider will provide Master VMs -->
                          <Type>main</Type>

                          <Properties>
                                <Property>
                                        <Name>templates</Name>
                                        <Value>/opt/pmes-framework/pmes-service/templates/.../MyTEMPLATE.xml</Value>
                                        <Deploy>/home/user/certs/</Deploy>
                                </Property>

                                <Property>
                                        <Name>auth</Name>
                                        <Value>x509</Value>
                                </Property>

                                <Property>
                                       <Name>ca-path</Name>
                                        <Value>/etc/grid-security/certificates</Value>
                                </Property>

                                <Property>
                                        <Name>user-cred</Name>
                                        <Value>/opt/pmes-framework/pmes-service/certs/.../MyCERT.pem</Value>
                                        <Deploy>/home/user/certs/</Deploy>
                                </Property>

                                <Property>
                                        <Name>password</Name>
                                        <Value>MyPASSWORD</Value>
                                </Property>
                          </Properties>
                </Provider>


                <!-- Extra provider (if cloud bursting needed) -->
                <Provider>
                          <Name>MyPROVIDER</Name>
                          <Server>https://HOST:PORT/...</Server>
                          <Implementation>any.cloud.api.ImplClass</Implementation>

                          <Properties>
                              ...
                         </Properties>
                </Provider>

           </Connectors>
            <User>user</User>

            <!-- Maximum allowed VM creation time in minutes -->
            <MaxVMCreationTime>10</MaxVMCreationTime>

            <!-- Applications deploy path on provider VM -->
            <DeploymentPath>/home/user/apps</DeploymentPath>

           <!-- Working directory on virtual instances (could be shared storage) -->
           <WorkingDir>
                <Path>/sharedDisk</Path>
                <Shared>true</Shared>
           </WorkingDir> 
          <Resources>
               <!-- Defines a pool of pre-started VMs speeding up job submissions -->
               <StaticPool>
                    <Resource image="VIRTUALAPPLIANCEIMAGE">
                        <Instances>2</Instances>
                        <CPU>1</CPU>
                        <MEM>2.0</MEM>
                        <Disk>1.0</Disk>
                        <Arch>x86_64</Arch>
                    </Resource>
               </StaticPool>

               <!-- Maximum of system cores -->
               <MaxCores>44</MaxCores>
               <!-- Maximum of system memory -->
               <MaxMemory>112</MaxMemory>
          </Resources>

2.5.3 Setting COMP Superscalar configuration

    <!-- COMP Superscalar configuration --> 
    <COMPSs>
       <Location>/opt/COMPSs/Runtime</Location>

       <!-- Choose the proper COMPSs cloud connector -->
       <Connector>integratedtoolkit.connectors.rocci.ROCCI</Connector>

       <WorkingDir>/home/user/IT</WorkingDir>

       <!-- COMPSs job monitoring frequency (seconds) -->
       <MonitorFreq>3</MonitorFreq>
    </COMPSs>
       <!-- Custom definition of COMPSs Master VMs -->
       <Master>
           <CPU>4</CPU>
           <MEM>4.0</MEM>
           <Disk>1.0</Disk>
           <Arch>x86_64</Arch>
       </Master>
       <!-- COMPSs Web service resources -->
        <Services>
            <Service>
                <Name>HmmerObjects</Name>
                <WSDL>http://HOSTNAME:PORT/servicepath?wsdl</WSDL>
                <Namespace>http://hmmerobj.worker</Namespace>
                <Port>HmmerObjectsPort</Port>
                <Tasks>3</Tasks>
            </Service>
        </Services>

2.5.4 Configuring storage adaptors

    <!-- Storage adaptors protocol map -->
    <ADAPTORS>
        <Adaptor>
            <Protocol>ftp</Protocol>
            <Implementation>com.bsc.pmes.jobmanager.datastager.FTPDataStager</Implementation>      
        </Adaptor>
        <Adaptor>
            <Protocol>http</Protocol>
            <Implementation>com.bsc.pmes.jobmanager.datastager.CDMIDataStager</Implementation>  
        </Adaptor>
        <Adaptor>
            <Protocol>gcubestorage</Protocol>
            <Implementation>com.bsc.pmes.jobmanager.datastager.GStorageDataStager</Implementation>
        </Adaptor>
        ...
    </ADAPTORS>

2.5.5 Configuring cloud provider templates

    <Templates>
        <Instance>
            <Type>small</Type>
            <CPU>1</CPU>
            <Memory>2.0</Memory>
            <Disk>5.0</Disk>
            <Price>0.085</Price>    
        </Instance>

        <Instance>
            ...
        </Instance>
        ...
        <!-- Estimated VM creation time (in seconds) -->
        <EstimatedCreationTime>120</EstimatedCreationTime>
    </Templates>

2.6 Using PMES

2.6.1 Starting the service

2.6.2 Job submission

2.6.3 Managing PMES database

2.6.4 System logs

2.6.5 Job logs


3. Additional information

3.1 Using the OCCI (Open Cloud Computing Interface) connector

The OCCI connector uses the rOCCI binary client inplementation (v4.2.5 or newer) which has to be properly installed into the PMES service machine and in any virtual appliance where COMPSs will run.

To install the client follow the instructions detailed at http://appdb.egi.eu/store/software/rocci.cli


NOTE: In case of finding any issue during the installation process do not hesitate to contact us at out support mailing list. To join send an e-mail to support-compss-join@bsc.es