HOWTO15 How to configure the Federated Cloud BDII

From EGIWiki
Revision as of 17:32, 8 July 2013 by Psolagna (talk | contribs)
Jump to: navigation, search

File attached to this wiki page:

  1. script file for the LDIF (python). (single-info-system-maker-extended-v2.py) Download here.
  2. Configuration file for the LDAP server. (slapd.conf) Download here.
  3. GLUE20.schema file, containing the GLUE20 LDAP definitions. (GLUE20.schema) download here.

Note:The configuration file, slapd.conf has been tested with these openldap package:

  • openldap-2.4.23-20.el6.x86_64
  • openldap-servers-2.4.23-20.el6.x86_64
  • openldap-clients-2.4.23-20.el6.x86_64

For other openldap releases it may need to be tuned.


Once you have installed the ldap server you should be able to load the ldap data with:

$ slapadd  -f /etc/openldap/slapd.conf -l cloud-ldif.ldi

and to start the LDAP server with:

 $ slapd -f /etc/openldap/slapd.conf -h ldap://full.hostname:2170  -d 0  > file-name 2>&1 &

Refresh the data

To refresh the data contained in the LDAP server:

  1. Stop slapd process
  2. Delete in the database directory all the files (but not the DB_CONFIG file)
  3. Run again the slapadd command
  4. Start again slapd process

Data published with the current script

The following table is describing the data that must be feeded in the script.

(Please, note that the example are randomly chosen :) )

Variable name Description Examples
provider['site_name'] This is the name of the cloud site, if it was a Grid site it would have been the GOCDB name. Self explanatory
provider['www'] Address of the information web site of the resource provider, or the cloud service.
provider['Country'] Country where the cloud infrastructure is located "Italy"
provider['product_name'] The name of' the cloud middleware used to provide 'OpenNebula
provider['type'] The type of cloud service provided. The more common is Infrastructure As A Service 'IaaS'
provider['product_vers'] The version of the cloud middleware deployed '3.0'
provider['production_l'] This specify if the service is a production one. Could be production or test. 'production'
provider['capabilities'] This variable contains a list of strings "('string1','string2','string3,..)", those strings describe the capabilities provided by the cloud service. Please note that the strings are not formalized anywhere, new labels should be agreed within the Task Force, for the moment. ('cloud.managementSystem','cloud.vm.uploadImage', 'cloud.data.cdmi')
provider['total_cpus'] The total number of cores available in the cloud service Only numeric values
provider['vm_name'] The name of the virtual machine manager, it is the VM hypervisor that actually instantiate the virtual machines, underneath the cloud layer. XEN
provider['vm_version'] The version of the virtual machine manager 1.1
provider['endpoints'] List of the endpoints to reach the different cloud services. This is a list of python dictionaries. Basically the format is "({endpoint1},{endpoint2},{endpoint3}...). the structure of the single {endpoint} bits will be described in an additional table.
provider['execution_env'] List of the execution environments available in the cloud service, that is the different virtual machines images available to be instantiated by the user. It is a list of python dictionaries. Basically the format is "({execution environment1},{execution environment2},{execution environment3}...). the structure of the single {execution environment} bits will be described in an additional table.


Endpoint instance

It is a python dictionary, the format is: {'label1':'value1' , 'label2':'value2'....}.

If a cloud service provide different interfaces, such as OCCI and EC2, it should publish different endpoints with different implementation.

Label Description Examples
endpoint_url The URL to reach the service endpoint, it should contain the protocol (e.g. https://) and the port, if it is not the standard port for the protocol. https://one.cloud.gwdg.de:8443
endpoint_interface The interface implemented by the endpoint. OCCI
service_type_name/version The scripts fills this with the 'product_name' variable described above
interface_version The version of the specification of the interface implemented (for example OCCI has a 1.0 or 1.2 specification) 1.2
endpoint_technology This is the architecture implemented by the web service. Examples are SOAP and REST. REST


Execution environment instance

If a cloud service provide a list of default virtual images that can be instantiate by the user, they should be advertised with a list of execution environment. It is a python dictionary, the format is: {'label1':'value1' , 'label2':'value2'....}.

Label Description Examples
memory The maximum amount of memory that can be configured in a single VM instance (MB) 1600
os_family This is the operating system type provided in the virtual image, the currently formalized families are: linux, windows, macosx, solaris linux
os_name The name of the operating system. suse
os_version The version of the operating system 6.0.4
platform The processor architecture (i386,x86-64, sparc, powerpc) i386
max_cores the maximum number of cores that can be configured in a single VM instnace (if there are no policies in places, it should be the number of cores in the hypervisor host). In case of heterogeneous machines in the cluster it should be equal to the higher number of cores available in a single machine. 24
max_speed The maximum clock speed of the virtual CPU configurable (MHz) 3000
physical_cpu The number of real CPUs of the virtual machine, currently I am not sure about how much this information makes sense for a virtual machine. Can be left '999'. 999