Konzept zur Integration in D-MON

Werbung
 ErweiterungderD‐GridBasisfürdie
kommerzielleNutzung
KonzeptfürdasInformationssystem
Koordination Andreas Eberhart ([email protected]) Datum 04. Juli 2011 Version 1.00 Status Final Referenz http://www.irf.tu‐dortmund.de/cms/de/IT/Projekte/D‐Grid_IaaS/D‐
Grid_IaaS_Informationssystem_Konzept.pdf Konzept für das Informationssystem 4 Juli 2011 Autoren: Stefan Freitag (Technische Universität Dortmund) Das diesem Bericht zugrunde liegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 01IS10019B gefördert. Die Verantwortung für den Inhalt die‐
ser Veröffentlichung liegt bei den Autoren. Seite2
Konzept für das Informationssystem 4 Juli 2011 Inhaltsverzeichnis
Informationsdienst ............................................................................................................................................ 5 Informationsdienst des eCloudManagers ..................................................................................................... 5 Installation von CLI .................................................................................................................................... 5 Abfrage von Informationen ....................................................................................................................... 6 GLUE 2.0 ...................................................................................................................................................... 11 Aufbau des Schemas ................................................................................................................................ 11 Admin ...................................................................................................................................................... 11 Computing ............................................................................................................................................... 14 Der geoMaint‐Sensor .................................................................................................................................. 21 Erweiterung der Datei site.conf .............................................................................................................. 22 Adapter‐Architektur .................................................................................................................................... 23 Extraktion ................................................................................................................................................ 23 Transformation ........................................................................................................................................ 24 Load ......................................................................................................................................................... 25 Abbildung von Attributen ............................................................................................................................ 26 AdminDomain .......................................................................................................................................... 26 AdminDomainLocation ............................................................................................................................ 26 AdminDomainContact ............................................................................................................................. 27 ComputingService .................................................................................................................................... 27 ComputingManager ................................................................................................................................. 28 ComputingShare ...................................................................................................................................... 29 Endpoint .................................................................................................................................................. 31 Weitere Arbeiten ............................................................................................................................................. 32 D‐MON Installation in eine virtuelle Maschine ........................................................................................... 32 Installation des Basisbetriebssystem ....................................................................................................... 32 Installation der Java‐Umgebung .............................................................................................................. 32 Installation von Apache Ant .................................................................................................................... 33 Installation von MySQL Cluster ............................................................................................................... 33 Installation der GLUE 2.0 Datenbanken in MySQL .................................................................................. 34 Installation des eCloudManager Proxy WebServices ...................................................................................... 34 Ausführen des Webservice .......................................................................................................................... 35 Installationsanleitung des WebService Clients ................................................................................................ 36 Integration des Clients als D‐MON Adapter ................................................................................................ 37 Seite3
Konzept für das Informationssystem 4 Juli 2011 Extraktion ................................................................................................................................................ 37 Transformation ........................................................................................................................................ 38 Auslesen der Datei monlist.txt ................................................................................................................ 38 Seite4
Konzept für r das Informaationssystem
m 4 Juli 2011
Informa
ationsdienst
Im D‐Grid stellt der D‐M
MON‐Dienst den zentraleen Informationsdienst da
ar. Die bisheer im D‐Grid vertretenen
n olkit sowie U
UNICORE verfügen mit d
dem BDII, M DS und CIS über jeweilss Grid Middleewares gLitee, Globus Too
eigene Informationsdienste, die D‐M
MON durch ssog. Adapterr (je einer pro
o Middlewarre) periodiscch abgefragt.. er SQL‐Datennbank ab. Die Ergebnisse dieser Abfragen speichert D‐MO N im Hinterggrund in eine
ndes Portal (http://d‐mon.d‐grid.de
e/gridsphere//gridsphere)) sind diesee Über ein aauf GridSpheere‐basieren
Daten für in
nteressierte V
VO‐Mitgliede
er visuell darrstellbar. Für die Einbindung einer neuen Grrid oder Clooud Middlew
ware in den D‐Grid Softw
warestack ist neben derr waltung ebeenso eine Inttegration in d
den D‐MON Information
nsdienst not‐‐
Integration in die D‐Grid Nutzerverw
dingt durch die interne A
Architektur vvon D‐MON ist dies am besten durcch die Entwiccklung einess wendig. Bed
weiteren Ad
dapters realisierbar. Vor der Enttwicklung eines neuen D
D‐MON Adappters wurden verschiede
ene Komponnenten unterrsucht. Dazu
u gehörten deer Informatio
onsdienst de
es eCloudMaanagers, das zu verwendende GLUE 22.0‐Informattionsschemaa und der geo
oMaint‐Sensor wie er in G
Globus Toolkkit 4 eingese
etzt wird. Informattionsdien
nstdeseClloudMana
agers
Der Informaationsdienst des eCloudM
Managers sttellt nach außen eine Me
enge von Infformationen (z. B. Daten
n über die virtuelle Mascchinen, physsische System
me und den
n gesamten Cluster) zur Verfügung, die auf derr Kommando
ozeile angezzeigt oder später übber das D‐MON‐Werkzzeug abgeruufen werde
en können.. Diese im o
object store des eCloud
dManagers bbefindlichen Daten sind
d über das CLI‐Werkzeu
ug als XML‐‐
formatiertee Information
nen abgreifb
bar. Das Weerkzeug selbst befindet sich unterhaalb des eClo
oudManagerr Installationssverzeichnissses eCloudM
Manager/feccm und heißt cli. Installatio
onvonCLI
Das CLI wird bei der Insstallation de
es eCloudMaanagers mitin
nstalliert. Fü
ür die Verweendung mit D
D‐MON wird
d udManager llauffähige Veersion des C
CLI benötigt. Diese verbinndet sich du
u den einzel‐‐
eine separaat vom eClou
nen eCloudManager Ressourcen und fragt dort die Informattionen ab. Nachfolgend ist ein bash‐Skript geze
eigt, welche zur Ausführu
ung des CLI g
genutzt werdden kann #!/bin/bash
Seite5
Konzept für das Informationssystem 4 Juli 2011 BASE_DIR=`pwd`"/"
function setClassPath() {
CLASSPATH=${BASE_DIR}"lib/vim/vim25.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/axis/commons-discovery-0.2.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/axis/jaxrpc.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/axis/commons-logging-1.0.4.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/axis/axis.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/fcoremgmt.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/query/JoSQL-1.9.jar;:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/fbase.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/fiwbcom.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/sesame/openrdf-sesame-2.3.2-onejar.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/commons/commons-cli-1.0.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/json/json.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/groovy/groovy-all-1.5.7.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/groovy/jline-0.9.94.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/log4j/log4j-1.2.16.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/xml/xstream-1.2.2.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/xml/xpp3_min-1.1.3.4.O.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/fecm.jar:$CLASSPATH"
export CLASSPATH
}
setClassPath
java -Dcom.fluidops.api.Parse=com.fluidops.iwb.api.CliParser Dcom.fluidops.api.Bootstrap=com.fluidops.api.EndpointImpl -cp $
CLASSPATH com.fluidops.api.Cli2 --login <USER><PASSWORD> --host <HOST_IP>
AbfragevonInformationen
Abhängig von der mit dem Werkzeug auszuführenden Operation kann eine Autorisierung erforderlich sein. Diese erfolgt durch die Angabe des Nutzers sowie seines Passwortes hinter dem Schalter ‐‐l. myMethod kennzeichnet hierbei die auszuführende Operation. cli --l user pass myMethod
Die Abfrage der Informationen bzgl. eines einzelnen Hosts erfolgt unter der Angabe des Enclosures bzw. des Masters sowie des Hostnamens. cli lookup -pojo
{class:com.fluidops.coremgmt.common.model.Host,enclosure:'http://129.217.162.11',name:'bd
ii01'}
Als Ergebnis bekommt man folgende Ausgabe <com.fluidops.coremgmt.common.model.Host>
<name>bdii01</name>
<uuid>003090f2-17f0-8a65-d0e3-fec2457cf585</uuid>
<memory>1073741824</memory>
<numCpus>1</numCpus>
Seite6
Konzept für das Informationssystem 4 Juli 2011 <lunUuids>
<string>1d9f693a-b866-4e01-819f-c88a70fc184f</string>
</lunUuids>
<vmHost>host-001</vmHost>
<hostType>VM</hostType>
<power>poweredOn</power>
<os>bdii01</os>
<enclosure>http://129.217.162.11</enclosure>
Enclosure

Abfrage der Informationen über ein Enclosure lookup -pojo
{class:com.fluidops.coremgmt.common.model.Enclosure,address:'http://129.217.162.11'}

Antwort <com.fluidops.coremgmt.common.model.Enclosure>
<address>http://129.217.162.11</address>
#Adresse
<type>Xen</type>
#Virtualisierungssoftware (Xen, VMware)
<computeCpu/>
<computeMem/>
<computeCpuUsed/>
<computeMemUsed/>
<createdBy>
<string>grid.tu-dortmund.de-1</string>
#Provider
</createdBy>
<finalID>Enclosure/byAddress/http%3A%2F%2F129.217.162.11</finalID>
<tags>
<string>xen.gif</string>
</tags>
<userEdits/>
<managementURL>http://129.217.162.11</managementURL>
#Management URL
<lastUpdateTime>2011-01-07 09:51:22.782 CET</lastUpdateTime>
#Zeitpunkt der
letzten Aktualisierung
<lastUpdateDuration>7145</lastUpdateDuration>
</com.fluidops.coremgmt.common.model.Enclosure>
VirtuelleMaschine

Abfrage der Informationen lookup -pojo
{class:com.fluidops.coremgmt.common.model.Host,enclosure:'http://129.217.162.11',name:'bd
ii01'}

Antwort <com.fluidops.coremgmt.common.model.Host>
<name>bdii01</name>
<uuid>003090f2-17f0-8a65-d0e3-fec2457cf585</uuid>
<memory>1073741824</memory>
<numCpus>1</numCpus>
Seite7
#Name der virtuellen Maschine
#Zugewiesener Hauptspeicher
#Anzahl CPUs
Konzept für das Informationssystem 4 Juli 2011 <lunUuids>
<string>1d9f693a-b866-4e01-819f-c88a70fc184f</string>
</lunUuids>
<vmHost>host-001</vmHost>
<hostType>VM</hostType>
<power>poweredOn</power>
<os>bdii01</os>
<enclosure>http://129.217.162.11</enclosure>
<freezeStates/>
<pool>/xen/grid.tu-dortmund.de/Virtual Machines</pool>
<configname>bdii01</configname>
<description></description>
<cpuPerf/>
<memPerf/>
<isTemplate>false</isTemplate>
<networkdevices>
<com.fluidops.coremgmt.common.model.Host_-NetworkDevice>
<mac>62:59:d7:bd:34:ef</mac>
<connectionstate>true</connectionstate>
</com.fluidops.coremgmt.common.model.Host_-NetworkDevice>
</networkdevices>
<moref>003090f2-17f0-8a65-d0e3-fec2457cf585</moref>
<computeMemorySizePromisedToRunningVms/>
<createdBy>
<string>grid.tu-dortmund.de-1</string>
</createdBy>
<finalID>Host/byName/http%3A%2F%2F129.217.162.11/bdii01</finalID>
<tags>
<string>vm.jpg</string>
</tags>
<userEdits/>
<lastUpdateTime>2011-01-07 10:01:25.67 CET</lastUpdateTime>
letzten Aktualisierung
<lastUpdateDuration>7316</lastUpdateDuration>
</com.fluidops.coremgmt.common.model.Host>
#Execution Host
#Host Typ
#Provider
#Zeitpunkt der
PhysischerHost

Abfrage lookup -pojo
{class:com.fluidops.coremgmt.common.model.Host,enclosure:'http://129.217.162.11',name:'ho
st-001'}

Antwort: <com.fluidops.coremgmt.common.model.Host>
<name>host-001</name>
<uuid>fb4b67ea-c2e3-49dd-ae53-5016f30d8ff2</uuid>
<manufacturer>XenServer 5.6.0</manufacturer>
Seite8
Konzept für das Informationssystem 4 Juli 2011 <model>{product_version=5.6.0, build_number=31188p, hostname=cheesy-2,
hg_id=0192acf270bd, date=2010-05-20, linux=2.6.
27.42-0.1.1.xs5.6.0.44.111158xen, xencenter_max=1.7, xencenter_min=1.7, xs:xenservertransfer-vm=XenServer Transfer VM,
version 5.6.0, build 31188p, xen=3.4.2, product_brand=XenServer, xapi=1.3, xs:main=Base
Pack, version 5.6.0, build 31188
p, dbv=2010.0521}</model>
<memory>4294410240</memory>
<memoryUsed>3704016896</memoryUsed>
<numCpus>4</numCpus>
<numCpusUsed>0.0</numCpusUsed>
<hostType>VMHOST</hostType>
<hostname>localhost.localdomain(host-001)</hostname>
<power>true</power>
<enclosure>http://129.217.162.11</enclosure>
<freezeStates/>
<cpuSpeed>1995</cpuSpeed>
<description>Default install of XenServer</description>
<cpuPerf/>
<memPerf/>
<networkdevices>
<com.fluidops.coremgmt.common.model.Host_-NetworkDevice>
<mac>00:16:36:a2:33:56</mac>
<ipAddress>
<string>129.217.162.1</string>
</ipAddress>
<mask>255.255.255.0</mask>
<vlan>-1</vlan>
<connectionstate>true</connectionstate>
</com.fluidops.coremgmt.common.model.Host_-NetworkDevice>
<com.fluidops.coremgmt.common.model.Host_-NetworkDevice>
<mac>00:16:36:a2:33:58</mac>
<ipAddress>
<string></string>
</ipAddress>
<mask></mask>
<vlan>-1</vlan>
<connectionstate>true</connectionstate>
</com.fluidops.coremgmt.common.model.Host_-NetworkDevice>
</networkdevices>
<ipAddress>129.217.162.1</ipAddress>
<moref>fb4b67ea-c2e3-49dd-ae53-5016f30d8ff2</moref>
<computeMemorySizePromisedToRunningVms/>
<hbas>
<com.fluidops.coremgmt.common.model.hba.HbaISCSI>
<iScsiIqn>iqn.2010-10.com.example:83a3c521</iScsiIqn>
<bindings/>
Seite9
Konzept für das Informationssystem 4 Juli 2011 <sendTargets/>
</com.fluidops.coremgmt.common.model.hba.HbaISCSI>
</hbas>
<createdBy>
<string>grid.tu-dortmund.de-1</string>
</createdBy>
<finalID>Host/byName/http%3A%2F%2F129.217.162.11/host-001</finalID>
<tags>
<string>vmhost.jpg</string>
</tags>
<userEdits/>
<lastUpdateTime>2011-01-07 10:21:26.937 CET</lastUpdateTime>
<lastUpdateDuration>7254</lastUpdateDuration>
</com.fluidops.coremgmt.common.model.Host>
Seite
10
Konzept für r das Informaationssystem
m 4 Juli 2011
GLUE2.0
0
Die GLUE‐Spezifikation beschreibt e
ein Informattionsmodell, welches spe
eziell für Enttitäten aus d
dem Bereich
h des Grid‐Computing entworfen e
wurde. w
Die derzeitige Version derr Spezifikatiion ist unte
er der URLL http://schhemas.ogf.org/glue/2
2008/05/speec_2.0_d42_
_r01 abrufb
bar. Der CIS‐‐Information
nsdienst von
n UNICORE 6 verwendet b
bereits diese
es Schema. deten Tabellen aus dem Schema besschrieben. Nachfolgend sind der Aufbau des Scchemas bzw.. die verwend
AufbaudesSchemas
Abbildung 1 A
Aufbau des GLU
UE 2.0 Schemass, Quelle: www
w.gridforum.org
g/documents/G
GFD.147.pdf Admin
den einzelne n Tabellen sttammen auss dem OGF‐D
Dokument zu
u GLUE 2.0. Die nachfolggenden Erkläärungen zu d
AdminDom
main
The AdminD
Domain classs is introduce
ed to model a collection of actors that manage aa number of services. An
n AdminDomain MAY be associated tto both Conttact and Locaation class in
nstances in oorder to provide contactt n and geograaphical locattion respectivvely. An Adm
minDomain MAY be com
mposed by other Admin‐‐
information
Domains in a hierarchical structure. ID
name
description
varchar (255) not null,# UNIQ
QUE ID
varchar (255),
# Huma
an-readable name
varchar (255),
# Desc
cription of the domain (free for-
Seite
11
Konzept für das Informationssystem 4 Juli 2011 mat)
distributed
integer (1),
# True if the services managed by the
AdminDomain are considered geographically distributed by the administrators themselves.
adminDomainID
varchar (255),
# The ID of another AdminDomain entry
to express the participation of this entry into the higher level one.
informationProvider
varchar (10) not null, #
sourceAddr
varchar (39) not null, #
insertTime
timestamp not null,
#
constraint pk_AdminDomain primary key (ID,informationProvider)
BeispielfürdasAusfüllenderAdminDomain
INSERT INTO
GLUE20.AdminDomain(ID,name,description,distributed,adminDomainID,informationProvider,sour
ceAddr ,insertTime) VALUES (
"gt4.gwdg.de",
"Globus GRID at GWDG",
"Globus GRID services at GWDG",
"0",
"gt4.gwdg.de",
"MDS4",
"gt4.gwdg.de",
CURRENT_TIMESTAMP)
ON DUPLICATE KEY UPDATE
ID = VALUES(ID),
name = VALUES(name),
description = VALUES(description),
distributed = VALUES(distributed),
adminDomainID = VALUES (adminDomainID),
informationProvider = VALUES(informationProvider),
sourceAddr = VALUES(sourceAddr),
insertTime
= VALUES(insertTime);
AdminDomainLocation
The Location class is introduced to model geographical locations where a certain Domain or Service are placed. The aim is to provide a simple way to express geographical information, and it is not intended to be used in complex geographical information systems. Due to different requirements, the granularity is not strictly defined and is left to the information producers depending on their needs. Hence the extent of a geographical location can vary from an exact position to a region spanning several different countries, not necessarily adjacent. adminDomainID
localID
name
address
place
country
postcode
longitude
varchar(255) not null, # The ID of the parent entry
varchar(128) not null, # UID
varchar(255) not null, # Human-readable name
varchar(128),
# Street address (free format)
varchar(64),
# Name of town/ city
varchar(32),
# Name of the country
varchar(16),
# Postal Code
float,
# Longitude
Seite
12
Konzept für das Informationssystem 4 Juli 2011 latitude
float,
# Latitude
informationProvider
varchar(10) not null, # Information Provider (e.g. MDS4,
BDII)
sourceAddr
varchar(39) not null, #
insertTime
timestamp not null,
# CURRENT_TIMESTAMP
constraint pk_AdminDomainLocation primary key (adminDomainID,localID,informationProvider)
BeispielfürdasAusfüllenderAdminDomainLocation
INSERT INTO GLUE20.AdminDomainLocation (adminDomainID,name,place,country,address,postcode,longitude,latitude,informationProvider,sourceA
ddr,insertTime) VALUES (
"gt4.gwdg.de",
"Globus GRID at GWDG",
"Goettingen",
"Goettingen",
"Goettingen",
"Goettingen",
"9.97116",
"51.562742",
"MDS4",
"gt4.gwdg.de",
CURRENT_TIMESTAMP)
ON DUPLICATE KEY UPDATE
adminDomainID = VALUES(adminDomainID),
name = VALUES(name),
place = VALUES(place),
country = VALUES(country),
address = VALUES(address),
postcode = VALUES(postcode),
longitude = VALUES(longitude),
latitude = VALUES(latitude),
informationProvider = VALUES(informationProvider),
sourceAddr = VALUES(sourceAddr),
insertTime = VALUES(insertTime);
AdminContact
The Contact class is introduced to represent contact information for different groups or expert roles re‐
sponsible for aspects of the operation of services and domains (e.g., user support, security or sysadmin). The various types of contact are identified by the Type attribute. adminDomainID
localID
url
type
informationProvider
sourceAddr
varchar(255) not null,
varchar(128) not null,
varchar(255) not null,
varchar(50) not null,
varchar(10) not null,
varchar(39) not null,
Seite
13
# LocalID_t
#
# Type of contact (ContactType_t)
#
#
Konzept für das Informationssystem 4 Juli 2011 insertTime
timestamp not null,
#
constraint pk_AdminContact primary key (adminDomainID,localID,informationProvider)
BeispielfürdasAusfülleneinesAdminContact
INSERT INTO GLUE20.AdminContact (adminDomainID,localID,url,type,informationProvider,sourceAddr,insertTime)
VALUES (
"gt4.gwdg.de",
"sysadmin",
"gt4admin [at] gwdg.de",
"sysadmin",
"MDS4",
"gt4.gwdg.de",
CURRENT_TIMESTAMP)
ON DUPLICATE KEY UPDATE
adminDomainID = VALUES(adminDomainID),
localID = VALUES(localID),
url = VALUES(url),
informationProvider = VALUES(informationProvider),
sourceAddr = VALUES(sourceAddr),
insertTime
= VALUES(insertTime);
Computing
ComputingService
The ComputingService class is a specialization of the Service class for a service offering computational ca‐
pacity. The ComputingService entity is the main logical unit, and aggregation point for several entities to‐
gether modeling a computing capability in a Grid system. A ComputingService is capable of executing Com‐
putingActivities on its associated resources. The resources behind the ComputingService are described via the ComputingManager, ExecutionEnvironment, ApplicationEnvironment, ApplicationHandle and Bench‐
mark entities. The governing policies and status of the resources are given by the ComputingShare ele‐
ments. The ComputingActivities of a ComputingService are submitted and controlled via a Compu‐
tingEndpoint. ID
name
type
qualityLevel
complexity
totalJobs
runningJobs
waitingJobs
stagingJobs
suspendedJobs
preLRMSWaitingJobs
domainID
minDomain
varchar (255) not null,
varchar (255),
varchar(128) not null,
varchar (32) not null,
varchar (64),
integer,
integer,
integer,
integer,
integer,
integer,
varchar (255) not null,
Seite
14
-- A system wide uniqueID
-- ServiceType_t
-- QualityLevel_t
--------
[job]
[job]
[job]
[job]
[job]
[job]
The (foreign) key to its Ad-
Konzept für das Informationssystem 4 Juli 2011 informationProvider
varchar (10) not null,
sourceAddr
varchar (39) not null,
insertTime
timestamp not null,
constraint pk_ComputingService primary key (ID,informationProvider)
BeispielfürdasAusfülleneinesComputingService
INSERT INTO GLUE20.ComputingService
(ID,name,type,runningJobs,waitingJobs,totalJobs,domainID,informationProvider,sourceAddr,i
nsertTime) VALUES (
"gt4.gwdg.de",
"gt4.gwdg.de",
"org.teragrid.ws-gram",
"0",
"0",
"0",
"gt4.gwdg.de",
"MDS4",
"gt4.gwdg.de",
CURRENT_TIMESTAMP)
ON DUPLICATE KEY UPDATE
ID = VALUES(ID),
runningJobs = VALUES(runningJobs),
waitingJobs =VALUES(WaitingJobs),
totalJobs = VALUES(totalJobs),
name = VALUES(ID),
insertTime
= VALUES(insertTime);
ComputingManager
The ComputingManager class is a specialization of the Manager class for the computational capability. The ComputingManager is responsible for the local control of resources, and this layer is not exposed directly to external clients. The operating system might be the simplest case of a Computing Manager, but the Compu‐
tingManager is often realized by means of a Local Resource Management (LRMS) “batch” system. A Com‐
puting Service will usually only have one Computing Manager, but MAY have more. The class provides ag‐
gregated information on controlled resources, and also describes local storage extents accessible to jobs. serviceID
ID
name
type
version
reservation
bulkSubmission
totalPhysicalCPU
totalLogicalCPUs
totalSlots
slotsUsedByLocalJobs
slotsUsedByGridJobs
homogeneity
varchar (255) not null,
varchar (255) not null,
varchar (128),
varchar (64) not null,
varchar (16),
integer (1),
integer (1),
integer,
integer,
integer,
integer,
integer,
integer,
Seite
15
-- The service it belongs to
-- ComputingManagerType_t
-- Boolean
-- Boolean
-----
[slot]
[slot]
[slot]
Boolean
Konzept für das Informationssystem 4 Juli 2011 networkInfo
varchar (255),
-- NetworkInfo_t
localCpuDistribution
varchar (255),
workingAreaShared
integer (1),
-- Boolean
workingAreaTotal
integer,
-- [GB]
workingAreaFree
integer,
-- [GB]
workingAreaLifeTime
integer,
-- [sec]
cacheTotal
integer,
-- [GB]
cacheFree
integer,
-- [GB]
tmpDir
varchar (255),
scratchDir
varchar (255),
applicationDir
varchar (255),
envLocalID
varchar (128) not null,
-- LocalID_t
applicationEnvID
integer not null,
-- The application environment ID
informationProvider
varchar (10) not null,
sourceAddr
varchar (39) not null,
insertTime
timestamp not null,
constraint pk_ComputingManager primary key (ID,informationProvider)
BeispielfürdasAusfülleneinesComputingManager‐Eintrags
INSERT INTO GLUE20.ComputingManager
(ID,name,type,version,totalPhysicalCPU,serviceID,informationProvider,sourceAddr,insertTim
e) VALUES (
"gt4.gwdg.de",
"gt4.gwdg.de",
"PBS",
"2.1.6",
"14",
"gt4.gwdg.de",
"MDS4",
"gt4.gwdg.de",
CURRENT_TIMESTAMP)
ON DUPLICATE KEY UPDATE
ID = VALUES(ID),
name = VALUES(name),
type = VALUES(type),
version = VALUES(version),
totalPhysicalCPU = VALUES(totalPhysicalCPU),
serviceID = VALUES(serviceID),
informationProvider = VALUES(informationProvider),
sourceAddr = VALUES(sourceAddr),
insertTime
= VALUES(insertTime);
ComputingShare
The ComputingShare class is the specialization of the main Share class for computational services. A Com‐
puting Share is a high‐level concept introduced to model a utilization target for a set of Execution Environ‐
ments defined by a set of configuration parameters and characterized by status information. A Compu‐
Seite
16
Konzept für das Informationssystem 4 Juli 2011 tingShare carries information about “policies” (limits) defined over all or a subset of resources and de‐
scribes their dynamic status (load). In clusters managed by a batch system (LRMS), the simplest way to set up a Computing Share is to config‐
ure a batch queue. Nevertheless, the same Computing Share may be implemented using different batch system configuration strategies. In complex batch systems, a batch queue may be configured with different sets of policies for different sets of users. This implies that each set of users obtains a different utilization target. Such a scenario MAY be represented by different Computing Shares. In general, given a number of shares to be set up, it is possible to adopt different configuration strategies in the underlying system. Re‐
gardless of the selected approach, the external behavior does not change. The main goal of the Computing Share concept is to abstract from such implementation choices and to represent the externally observable behavior. serviceID
longs to
localID
in the scope of the service
name
description
mappingQueue
maxWallTime
maxTotalWallTime
minWallTime
defaultWallTime
maxCPUTime
maxTotalCPUTim
minCPUTime
defaultCPUtime
maxTotalJobs
maxRunningJobs
maxWaitingJobs
maxPreLRMSWaitingJobs
maxUserRunningJobs
maxSlotsPerJobs
maxStageInStreams
maxStageOutStreams
schedulingPolicy
maxMemory
maxDiskSpace
preemption
servingstate
totalJobs
runningJobs
localRunningJobs
waitingJobs
localWaitingJobs
stagingJobs
suspendedJobs
varchar (255) not null,
-- The ID of the Service it be-
varchar (128) not null,
-- LocalID_t, A local identifier
varchar (255),
varchar(255),
varchar(128),
integer,
-- [sec]
integer,
-- [sec]
integer,
-- [sec]
integer,
-- [sec]
integer,
-- [sec]
integer,
-- [sec]
integer,
-- [sec]
integer,
-- [sec]
integer,
-- [job]
integer,
-- [job]
integer,
-- [job]
integer,
-- [job]
integer,
-- [job]
integer,
-- [job]
integer,
-- [stream]
integer,
-- [stream]
varchar (32),
-- schedulingPolicy_t
integer,
-- [MB]
integer,
-- [GB]
integer (1),
-- Boolean
varchar (32) not null,
-- servingState_t
integer,
-- [job]
integer,
-- [job]
integer,
-- [job]
integer,
-- [job]
integer,
-- [job]
integer,
-- [job]
integer,
-- [job]
Seite
17
Konzept für das Informationssystem 4 Juli 2011 preLRMSWaitingJobs
integer,
-- [job]
estimatedAverageWaitingTime integer, -- [sec]
estimatedWorstWaitingTime integer,
-- [sec]
freeSlots
integer , -- [slot]
freeSlotsWithDuration
integer,
-- [slot]
usedSlots
integer,
-- [slot]
requestedSlots
integer,
-- [slot]
reservationPolicy
varchar (64),
-- ReservationPolicy_t
defaultSService
varchar (255),
-- The ID of the default Storage Service
to use
informationProvider
varchar (10) not null,
sourceAddr
varchar (39) not null,
insertTime
timestamp not null,
check
(reservationpolicy in ('none', 'mandatory', 'optional')),
constraint pk_ComputingShare primary key (serviceID,localID,informationProvider)
BeispielfürdasAusfülleneinesComputingShare‐Eintrags
INSERT INTO GLUE20.ComputingShare (serviceID,localID,mappingQueue,runningJobs,totalJobs,waitingJobs,informationProvider,sourceA
ddr,insertTime) VALUES (
"gt4.gwdg.de",
"dgiseq",
"dgiseq",
"40",
"40",
"0",
"MDS4",
"gt4.gwdg.de",
CURRENT_TIMESTAMP)
ON DUPLICATE KEY UPDATE
serviceID = VALUES(serviceID),
localID = VALUES(localID),
mappingQueue = VALUES(mappingQueue),
runningJobs = VALUES(runningJobs),
totalJobs = VALUES(totalJobs),
waitingJobs = VALUES(waitingJobs),
informationProvider = VALUES(informationProvider),
sourceAddr = VALUES(sourceAddr),
insertTime
= VALUES(insertTime)
ApplicationEnvironment
The ApplicationEnvironment class describes the software environment in which a job will run, i.e. what pre‐
installed software will be available to it. Each Application is identified by a name (the AppName attribute); these names are not defined within the schema, but SHOULD be assigned in a way which allows applica‐
tions to be uniquely identified. In some deployment scenarios, the definition of namespace‐based Ap‐
pNames or guidelines for the generation of unique application names MAY be specified, and application repository services relying on those application names MAY be provided. This aspect is considered out of Seite
18
Konzept für das Informationssystem 4 Juli 2011 scope for the GLUE schema specification, but MAY be included in a profile document for a specific produc‐
tion Grid. The Application Environment can be used to describe installed application software or special environment setups in terms of a simple tag string. In this case, the AppName attribute should be used to publish this tag; other attributes are optional. The properties of installed software may vary substantially, but the at‐
tributes of the class cover the most common cases, in particular for licensed software. If necessary, addi‐
tional information MAY be added using the OtherInfo attribute and the Extension class. serviceID
varchar (255) not null,
-- The ID of the service this ApplicationEnvironment belongs to
localID
varchar (255) not null,
-- LocalID_t, A local identifier
in the scope of the service
name
varchar (255) not null,
version
varchar (16),
repository
varchar (255),
state
varchar (100),
-- AppEnvState_t
removalDate
datetime,
-- DateTime_t
license
varchar (128),
-- License_t
description
varchar (255),
parallelSupport
varchar (16),
maxSlots
integer,
-- [slot]
maxJobs
integer,
-- [job]
maxUserSeats
integer,
-- [user seat]
freeSlots
integer,
-- [slot]
freeJobs
integer,
-- [job]
freeUserSeats
integer,
-- [user seat]
cManagerID
varchar (255) not null,
-- The ID of the computing manager where this application environment belongs to (and may be used by)
informationProvider
varchar (10) not null,
sourceAddr
varchar (39) not null,
insertTime
timestamp not null,
check
(license in ('opensource', 'commercial', 'other',
'unknown')),
constraint pk_ApplicationEnvironment primary key (serviceID,localID,informationProvider)
Endpoint
The Endpoint class models a network location that can be contacted to access certain functionalities based on a well‐defined interface. The defined attributes refer to aspects such as the network location, the ex‐
posed interface name and version, the details of the implementation, the functional state and the sched‐
uled downtime. serviceID
service it belongs to
ID
name
the Endpoint
varchar (255) not null,
-- The ID of the
varchar (255) not null,
varchar (255),
-- The name of
Seite
19
Konzept für das Informationssystem 4 Juli 2011 url
varchar (255) not null,
-- The Endpoint
URL
technology
varchar (255) not null,
-- EndpointTechnology_t
interface
varchar (255) not null,
implementor
varchar (255),
implementationName
varchar (255),
implementationVersion
varchar (255),
qualityLevel
varchar (32) not null,
healthState
varchar (32) not null,
-- The state of
the Endpoint
healthStateInfo
varchar (255),
-- EndpointState
servingState
varchar (255) not null,
-- ServingState_t
startTime
timestamp default "0000-00-00 00:00:00",
-- DateTime_t,
The timestamp for the start time of the endpoint
issuerCA
varchar (255) not null,
-- DN_t
downTimeAnnounce
timestamp default "0000-00-00 00:00:00",
-- DateTime_t,
The timestamp for the announcement of the next scheduled downtime
downTimeStart
timestamp default "0000-00-00 00:00:00",
-- DateTime_t,
The starting timestamp of the next scheduled downtime
downTimeEnd
timestamp default "0000-00-00 00:00:00",
-- DateTime_t,
The ending timestamp of the next scheduled downtime
downTimeInfo
varchar (255),
-- Description of
the next scheduled downtime
informationProvider
varchar (10) not null,
sourceAddr
varchar (39) not null,
insertTime
timestamp not null default CURRENT_TIMESTAMP,
check
(qualitylevel in ( 'development', 'testing', 'preproduction', 'production')),
check
(healthstate in ('ok', 'warning', 'critical', 'unknown',
'other')),
check
(servingstate in ('production', 'draining', 'queueing',
'closed')),
constraint pk_Endpoint primary key (ID,informationProvider)
BeispielfürdasAusfüllen
INSERT INTO GLUE20.Endpoint (ID, serviceID, informationProvider, sourceAddr, insertTime)
VALUES (
"https://gt4.gwdg.de:8443/wsrf/services/ManagedJobFactoryService",
"gt4.gwdg.de",
"MDS4",
"gt4.gwdg.de",
CURRENT_TIMESTAMP)
ON DUPLICATE KEY UPDATE
ID = VALUES(ID),
serviceID = VALUES(serviceID),
Seite
20
Konzept für das Informationssystem 4 Juli 2011 informationProvider = VALUES(informationProvider),
sourceAddr = VALUES(sourceAddr),
insertTime
= VALUES(insertTime);
ComputingEndpoint
The ComputingEndpoint is a specialization of the Endpoint class for a service possessing computational capability. The class represents an endpoint which is used to create, control and monitor computational activities. The computational‐specific information concerns service load related parameters, staging capa‐
bilities and supported types of job description. This class provides attributes that MAY be used to publish summary information about jobs submitted via a particular Endpoint. Such attributes are optional and may not always be measurable (e.g., in the case of a stateless Endpoint which does not keep information about the jobs submitted through it). endpointID
varchar (255) not null, -- The ID of the Endpoint entry
cServiceID
varchar (255) not null, -- The ID of the computing service
staging
varchar (32),
-- Staging_t
informationProvider
varchar (10) not null,
sourceAddr
varchar (39) not null,
insertTime
timestamp not null,
constraint pk_ComputingEndpoint primary key (endpointID,cServiceID,informationProvider)
BeispielfürdasAusfüllendesComputingEndpoint‐Eintrags
INSERT INTO GLUE20.ComputingEndpoint (endpointID, cServiceID, informationProvider,
sourceAddr, insertTime) VALUES (
"https://gt4.gwdg.de:8443/wsrf/services/ManagedJobFactoryService",
"gt4.gwdg.de",
"MDS4",
"gt4.gwdg.de",
CURRENT_TIMESTAMP)
ON DUPLICATE KEY UPDATE
endpointID = VALUES(endpointID),
cServiceID = VALUES(cServiceID),
informationProvider = VALUES(informationProvider),
sourceAddr = VALUES(sourceAddr),
insertTime
= VALUES(insertTime);
DergeoMaint‐Sensor
Der geoMaint Sensor wird für die Publikation von Positionsdaten sowie weiteren Informationen (z. B. War‐
tungsinformationen) in den Globus MDS4‐basierten Informationsdienst eingesetzt werden. Die Ausgabe von geoMaint hat folgende Gestalt <?xml version="1.0" encoding="UTF-8"?>
<Site UniqueID="my.site.net"
xmlns="http://infnforge.cnaf.infn.it/glueinfomodel/Spec/V12/R2">
<Description>D-Grid Services at mysite</Description>
<Latitude>79.74</Latitude>
<Location>unknown</Location>
Seite
21
Konzept für das Informationssystem 4 Juli 2011 <Longitude>-71.78</Longitude>
<Name>UnconfiguredSite</Name>
<OtherInfo>3unconfigured site sensor</OtherInfo>
<SecurityContact>[email protected]</SecurityContact>
<Sponsor></Sponsor>
<SysAdminContact>[email protected]</SysAdminContact>
<UserSupportContact>[email protected]</UserSupportContact>
<Web>http://www.my.site.net</Web>
</Site>
Diese Informationen werden aus der Konfigurationsdatei site.conf ausgelesen und in die zuvor gezeigte XML‐Form umgewandelt. Nach einer Analyse der API des eCloudManagers steht fest, dass diese nicht alle für eine Publikation in das D‐MON‐Werkzeug notwendigen Informationen bereitstellt. Dies trifft unter anderem auf die Angaben zu, welche die Globus Toolkit‐Middleware aufgrund der Integration des geoMaint‐Sensors publiziert. Als eine mögliche Lösung dieses Problems bietet sich für den eCloudManager ebenfalls die Verwendung des geo‐
Maint‐Sensors, genauer der dort verwendeten Konfigurationsdatei an. Diese Konfigurationsdatei site.conf besteht aus einer Menge von Schlüssel‐Wert‐Paaren. Nachfolgend ein Beispiel: site.uniqueid=Globus4.0.7 Pre Production@TU_Dortmund
site.name=grid.tu-dortmund.de
site.description=D-Grid Services at TU Dortmund (GT4.0.7),udo-gt02.grid.tu-dortmund.de
[email protected]
[email protected]
[email protected]
site.location=Dortmund
site.latitude=51.483434
site.longitude=7.410308
site.web=http://www.tu-dortmund.de
site.sponsor=http://www.tu-dortmund.de
site.maintenance=0up and running
ErweiterungderDateisite.conf
Eine mögliche Abbildung der bereits in der Datei site.conf vorhandenen Attribute auf die GLUE 2.0‐
Schema vorhandenen könnte so aussehen: site.conf site.uniqueid site.description site.location site.longitude site.latitude site.securitycontact site.sysadmincontact site.usersupportcontact GLUE 2.0‐Schema AdminDomain.ID AdminDomain.Name AdminDomainLocation.Address AdminDomainLocation.Longitude AdminDomainLocation.Latitude AdminDomainContact AdminDomainContact AdminDomainContact Seite
22
Konzept für r das Informaationssystem
m 4 Juli 2011
Des Weitereen wird die D
Datei site.c
conf um weiitere Variablen ergänzt:
site.conf GLUE 2.0‐Schema site.placce AddminDomain
nLocation.pla
ace site.cou
untry AddminDomain
nLocation.country site.posstalcode AddminDomain
nLocation.po
ostalcode
Adapter‐‐Architek
ktur
Eine Übersicht über die allgemeine Architektur iist in der folggenden Abbiildung dargeestellt: udManagers ist ein Webbservice impllementiert, d
der die für D
D‐MON notw
wendigen In‐‐
Auf der Seitte des eClou
formationen aus zwei Q
Quellen aggre
egiert. Die errste Quelle isst der eCloud
dManager seelbst. Er wird
d über einen
n esprochen um
m relevante Informationen über z. BB. die verfügb
baren physi‐‐
so genannteen BackendSService ange
schen Resso
ourcen oderr derzeit lauffenden virtu ellen Maschinen zu erha
alten. Das inn Information
nsdienst dess eCloudMan
nagers vorgesstellte Comm
mand Line Intterface verw
wendet einen
n analogen M
Mechanismuss. Die zweitee Information
nsquelle ist die d erweiterrte Version dder Datei site.conf. Diie aus diesenn Quellen ge
esammelten
n Information
nen sind übeer einen Web
bservice‐Cliennt, der in den eCloudManager‐Adaptter für D‐MO
ON integriertt ist, abrufbaar. Einzelne EErweiterunge
en an den inn D‐MON be
ereitgestellte
en Skripten ssind nachfolggend für diee einzelnen B
Bereiche der Extraktion, T
Transformatiion und des persistenten
n Speichers bbeschrieben. Extraktion
n
Die Extraktiion der notw
wendigen Daten aus dem
m eCloudMan
nager erfolgtt unter Verw
wendung eine
es in Groovyy geschrieben
nen Clients. Dieser bin
ndet die Bibbliotheken des d eCloudM
Managers eiin und kontaktiert dass eCloudMan
nager Fronten
nd. Die Kommunikation zwischen de
em Client und
d dem Front end ist SSL‐vverschlüsseltt o muss der Client sich perr Nutzernam
me und Passw
wort am Fron
ntend authenntisieren. und ebenso
Innerhalb d
des Clients werden w
die vom v
eCloudM
Manager erh
haltenen Datten in das eerforderliche Format dess GLUE 2.0‐Schemas geb
bracht. Dabe
ei sind folge nde Abbildu
ungen bzgl. der Computte‐Ressource
en getroffen
n worden: 
mputingManager –> BackkendService:: Com
Derr ComputingManager istt verantworttlich für die lokale Kontrrolle der Resssourcen und entsprichtt im K
Kontext des Grid Compu
uting oftmalss einem LRM
MS. Des Weitteren stellt dder Managerr aggregiertee Info
ormationen über die kontrollierte
k
n Ressource
en bereit. Bezogen auuf den eClo
oudManagerr entsspricht der eeCloudManagger‐interne B
BackendServvice einen Co
omputingMaanager. 
Com
mputingEndp
point –> URLL des eCloudM
Manager‐Fro
ontends: Übeer den Comp
putingEndpoint können ssog. ComputtingActivitiess gestartet, kkontrolliert o
oder einfach
h nur beobachtett werden. Bezogen auf deen eCloudManager entsp
pricht ein CoomputingEnd
dpoint daherr dem
m Zugangspu
unkt zum eCloudManage r, also der URL zu dem eCloudManagger‐Frontend
d. Seite
23
Konzept für das Informationssystem 4 Juli 2011 
ComputingShares –> Cluster des eCloudManagers: Innerhalb eines LRMS kann ein ComputingShare durch die Abbildung auf eine Queue des LRMS realisiert werden. Um dies analog auf Cloud‐Ressourcen nachzubilden, sind die einzelnen an die Cloud angeschlossenen Cluster (repräsentiert durch die URL des jeweiligen Management‐Knotens) als ComputingShares definiert. 
ComputingService –> Management‐Knoten der verschiedenen Cluster/ Enclosure: Der ComputingService stellt eine Aggregation verschiedener Entitäten dar. Einzelne ComputingActivities können dem ComputingService über den ComputingEndpoint übergeben werden. Die dem ComputingService angegliederten Ressourcen sind durch folgende Komponenten beschrieben: 
ComputingManager, 
ComputingShare‐Elemente, 
ExecutionEnvironment, 
ApplicationEnvironment, 
ApplicationHandle und 
Benchmark Transformation
Die vom Web Service‐Client erhaltenen Daten liegen im XML‐Format vor und müssen auf der Seite des D‐
MON Adapters noch in das notwendige Format gewandelt werden. Das notwendige Format ist hier gege‐
ben durch die für D‐MON verwendeten Datenbanken, deren Erzeugung in der Datei Glue20Schema_v41_DMON.sql geregelt ist. Die Transformation der Daten aus dem XML‐Format in SQL‐Statements erfolgt mittels XSLT. Der Einsatz von XSLT erfolgt analog zu dem Vorgehen bei den anderen drei Grid Middlewares. Inner‐
halb der derzeit verfügbaren D‐MON‐Distribution existieren für die Grid Middlewares gLite, Globus Toolkit und UNICORE 6 folgende XSLT‐Dateien: 
gLite 3.x: bdii.xslt 
Globus Toolkit 4.x: mds4.xslt 
UNICORE 6.x: cis.xsl Softwareanforderungen
Die minimal notwendige Software zur Durchführung der Transformationen variiert in Abhängigkeit von der Grid Middleware. In allen Fällen ist jedoch das xsltproc‐Paket notwendig. Je nach Middleware sind wei‐
terhin benötigt 
Globus Toolkit 4.x: wsrf-query 
gLite 3.2: Perl 
UNICORE 6: ucc Datentransformationperxsltproc
Die eigentliche Transformation der Daten erfolgt für alle drei Grid Middlewares analog. Das xsltproc‐
Kommando wird mit einem Parameter $info_provider_hostname aufgerufen, der während des Trans‐
formationsvorgangs als sourceAddress‐Variable zur Verfügung steht. Als weiterer Parameter wird dem Kommando die zu verwendende XSLT‐Datei in der Variablen $transformer übergeben. Seite
24
Konzept für das Informationssystem 4 Juli 2011 xsltproc --stringparam sourceAddress $info_provider_hostname $transformer - 2>> $LOG_FILENAME
Die Ausgabe des xsltproc‐Befehls ist ein SQL‐Statement, welches als Eingabe für das mysql‐Kommando verwendet wird. Nachfolgend ist der gesamte Ablauf gezeigt: xsltproc --stringparam sourceAddress $info_provider_hostname $transformer - 2>> $LOG_FILENAME |
mysql $DATA
BASE --user=$USER --password=$PASSWORD --host=$HOST --force 2>> $LOG_FILENAME
Load
Das Laden entspricht dem Einfügen der extrahierten und transformierten Daten in eine MySQL‐Datenbank. Durch die Transformation mittels XSLT (siehe Transformation) sind die Daten bereits in mehrere SQL‐
Statements codiert. Nachfolgend ein Beispiel für SQL‐Statements, die aus dem MDS4 der Globus Toolkit Middleware gewonnen wurden: INSERT INTO
GLUE20.AdminDomain(ID,name,description,distributed,adminDomainID,informationProvider,sour
ceAddr,insertTime) VALUES (
"gt4.gwdg.de",
"Globus GRID at GWDG",
"Globus GRID services at GWDG",
"0",
"gt4.gwdg.de",
"MDS4",
"gt4.gwdg.de",
CURRENT_TIMESTAMP)
ON DUPLICATE KEY UPDATE
ID = VALUES(ID),
name = VALUES(name),
description = VALUES(description),
distributed = VALUES(distributed),
adminDomainID = VALUES (adminDomainID),
informationProvider = VALUES(informationProvider),
sourceAddr = VALUES(sourceAddr),
insertTime
= VALUES(insertTime)
Dieses SQL‐Statement wurde mit Hilfe folgenden Aussschnitts der XSLT‐Datei für den MDS4 gewonnen: <xsl:template match="//ns:Site">
INSERT INTO
GLUE20.AdminDomain(ID,name,description,distributed,adminDomainID,informationProvider,sourceAddr,
insertTime) VALUES (
"<xsl:value-of select="./@UniqueID"/>",
"<xsl:value-of select="ns:Name/text()"/>",
"<xsl:value-of select="ns:Description/text()"/>",
"0",
"<xsl:value-of select="./@UniqueID"/>",
"<xsl:value-of select="$informationProvider"/>",
"<xsl:value-of select="$sourceAddress"/>",
<xsl:value-of select="$insertTime"/>)
Seite
25
Konzept für das Informationssystem 4 Juli 2011 ON DUPLICATE KEY UPDATE
ID = VALUES(ID),
name = VALUES(name),
description = VALUES(description),
distributed = VALUES(distributed),
adminDomainID = VALUES (adminDomainID),
informationProvider = VALUES(informationProvider),
sourceAddr = VALUES(sourceAddr),
insertTime
= VALUES(insertTime);
...
</xsl:template>
Ein wesentlicher Punkt bei der Transformation der Informationen des eCloudManagers ist die Abbildung dergleichen auf das GLUE 2.0‐Format bzw. die hier verwendeten Attribute. AbbildungvonAttributen
AdminDomain
AdminDomain‐Attribut Beispiel für GTK 4.0.8 eCloudManager‐Attribut Zuführung ID “gt4.gwdg.de” ‐ site.uniqueid Name “Globus GRID at GWDG” ‐ site.name Description “Globus GRID services at GWDG” ‐ site.description
WWW ‐ ‐ site.web Distributed 0 ‐ 0 (fix) AdminDomainLocation
AdminDomainLocation‐Attribut Beispiel für GTK 4.0.8 eCloudManager‐Attribut Zuführung ID ‐ Name “Globus GRID at GWDG” ‐ site.name Address “Goettingen” ‐ site.location Place “Goettingen” ‐ site.place Country “Goettingen” ‐ site.country Postcode “Goettingen” ‐ site.postcode
Longitude “9.97116” ‐ site.longitude
‐ Seite
26
? Konzept für das Informationssystem 4 Juli 2011 Latitude “51.562742” ‐ site.latitude AdminDomainContact
AdminDomainContact‐
Attribute Beispiel für GTK 4.0.8 eCloudManager‐
Attribute Zuführung ID “sysadmin” ‐ site.conf OtherInfo ‐ ‐ Working hours: 8‐17 (fix) Detail “gt4admin [at] gwdg.de” ‐ site.{admin, user, securi‐
ty}contact Type “sysadmin” ‐ {general, security, sysadmin, usersupport} ComputingService
ComputingService‐
Attribute Beispiel für GTK 4.0.8 eCloudManager‐
Attribute Zuführung ID “gt4.gwdg.de” Adresse des Enclosures enclosure.address Name “gt4.gwdg.de” Adresse des Enclosures enclosure.address OtherInfo ‐ ‐ None (fix) Capability ‐ ‐ Execution.jobmanagement (fix) Type “org.teragrid.ws‐
gram” Enclosure‐Typ enclosure.type QualityLevel ‐ ‐ {production, development, pre‐
production, testing} Complexity ‐ ‐ ‐ TotalJobs “42” # laufender & angehal‐ Anzahl isPoweredOn bzw. isSus‐
tener VMs pended VMs RunningJobs “40” # laufender VMs Anzahl isPoweredOn VMs WaitingJobs “2” 0 0 (fix) StagingJobs ‐ ‐ ‐ Seite
27
Konzept für das Informationssystem 4 Juli 2011 SuspendedJobs ‐ Anzahl angehaltener VMs Anzahl isSuspended VMs preLRMSWaitingJobs ‐ ‐ ‐ ComputingManager
ComputingManager‐
Attribut Beispiel für GTK eCloudManager‐Attribute
4.0.8 Zuführung ID “gt4.gwdg.de” eCloudManager Name “gt4.gwdg.de” eCloudManager ‐ ‐ eCloudManager Reservation Undefined BulkSubmission Undefined Type “PBS” ‐ ‐ Version “2.1.6” BackendService.version() getAPIVersion() TotalPhysicalCPU “14” Summe über Host.numCpus getTotalNumberOfPhysicalCpus()
TotalLogicalCPU ‐ TotalSlots ‐ ‐ ‐ SlotsUsedByLocalJobs ‐ ‐ ‐ SlotsUsedByGridJobs ‐ ‐ ‐ Homogeneity ‐ ‐ ‐ NetworkInfo ‐ ‐ ‐ LocalCpuDistribution ‐ ‐ ‐ WorkingAreaShared ‐ ‐ undefined WorkingAreaTotal ‐ ‐ ‐ WorkingAreaFree ‐ ‐ ‐ WorkingAreaLifeTime ‐ ‐ ‐ ProductName Seite
28
Konzept für das Informationssystem 4 Juli 2011 CacheTotal ‐ ‐ ‐ cacheFree ‐ ‐ ‐ tmpDir ‐ ‐ ‐ scratchDir ‐ ‐ ‐ applicationDir ‐ ‐ ‐ envLocalID ‐ ‐ applicationEnvID ‐ ‐ ComputingShare
Ein ComputingShare entspricht einer Queue im PBS. Für den eCloudManager werden alle angeschlossenen Ressourcen zu einem einzigen ComputingShare zusammengefasst. In einer späteren Version kann sich dies ändern, in dem ein ComputingShare dann einer Zone des eCloudManagers entspricht. ComputingShare‐Attribut Beispiel für GTK eCloudManager‐
4.0.8 Attribute Zuführung serviceID “gt4.gwdg.de” localID “dgipar” name ‐ description ‐ mappingQueue “dgipar” maxWallTime ‐ ‐ ‐ maxTotalWallTime ‐ ‐ ‐ minWallTime ‐ ‐ ‐ defaultWallTime ‐ ‐ ‐ maxCPUTime ‐ ‐ ‐ maxTotalCPUTim ‐ ‐ ‐ MinCPUTime ‐ ‐ ‐ DefaultCPUtime ‐ ‐ ‐ Seite
29
Konzept für das Informationssystem 4 Juli 2011 DefaultCPUtime ‐ ‐ MaxTotalJobs ‐ MaxRunningJobs ‐ MaxWaitingJobs ‐ ‐ ‐ MaxPreLRMSWaitingJobs ‐ ‐ ‐ maxUserRunningJobs ‐ maxSlotsPerJobs ‐ maxStageInStreams ‐ ‐ ‐ maxStageOutStreams ‐ ‐ ‐ schedulingPolicy ‐ ‐ ‐ maxMemory ‐ host.memory ‐ host‐ getMaximumAmountOfRamForVms()
memoryUsed maxDiskSpace ‐ preemption ‐ ‐ undefined servingstate ‐ ‐ production totalJobs 2 # laufender & ange‐ isPoweredOn or isSuspended haltener VMs runningJobs 0 # laufender VMs isPoweredOn localRunningJobs ‐ ‐ ‐ waitingJobs 2 ‐ ‐ localWaitingJobs ‐ ‐ ‐ stagingJobs ‐ ‐ ‐ suspendedJobs ‐ # angehaltener VMs isSuspended preLRMSWaitingJobs ‐ ‐ ‐ estimatedAverageWaitingTime ‐ ‐ ‐ Seite
30
‐ Konzept für das Informationssystem 4 Juli 2011 estimatedWorstWaitingTime ‐ ‐ ‐ freeSlots ‐ ‐ ‐ freeSlotsWithDuration ‐ ‐ ‐ usedSlots ‐ requestedSlots ‐ reservationPolicy ‐ defaultSService ‐ mappingQueue unklar Endpoint
Endpoint‐Attribut Beispiel für GTK 4.0.8 eCloudMana‐ Zufüh‐
ger‐Attribute rung serviceID “gt4.gwdg.de” ID “https://gt4.gwdg.de:8443/wsrf/services/ManagedJobFactor yService” name url ‐ technology ‐ interface ‐ implementor ‐ implementation‐
Name ‐ implementationVer‐ ‐ sion qualityLevel ‐ healthState ‐ healthStateInfo ‐ servingState ‐ Seite
31
Konzept für das Informationssystem 4 Juli 2011 startTime ‐ ‐ ‐ issuerCA ‐ ‐ ‐ downTimeAn‐
nounce ‐ ‐ ‐ downTimeStart ‐ ‐ ‐ downTimeEnd ‐ ‐ ‐ downTimeInfo ‐ ‐ ‐ WeitereArbeiten
Für Tests wurden lokal notwendige Komponenten von D‐MON in einer virtuellen Maschine installiert. D‐MONInstallationineinevirtuelleMaschine
InstallationdesBasisbetriebssystem
Als Basisbetriebssystem wurde ein Ubuntu Linux in der Variante Server 10.04 32‐Bit gewählt. Die Installati‐
on des Betriebssystems erfolgt händisch unter der Verwendung folgender Eigenschaften 








English
United States
Keyboard de:nodeadkeys
Timezone: Europe/Berlin
Hostname: dmon
Use entire disk (LVM)
max for guided partitioning
openssh server
NAT network
InstallationderJava‐Umgebung
Für D‐MON wird die Installation einer Java Standard Edition (SE) vorausgesetzt. Hinweis: Da vom Einsatz von Java SE 1.6 aufgrund einer Inkompatibilität zu OGSA‐DAI abgeraten wird, wird hier Java SE Version 1.5 verwendet. 1. Download des Java SE 1.5 in der zuletzt verfügbaren Version jdk-1_5_0_22-linux-i586.bin über die Webseite http://www.oracle.com/technetwork/indexes/downloads/index.html bzw. http://java.sun.com/javase/downloads/5u22/jdk in das Verzeichnis /opt. 2. Die Installation des JAVA SE Version 1.5 erfolgt über cd /opt/
sudo sh jdk-1_5_0_22-linux-i586.bin
Akzeptieren der Lizenzbedingungen
3. Erzeugen einer Datei in /etc/profiles.d/, die für das Setzen der Java Umgebungsvariablen zu‐
ständig ist. Seite
32
Konzept für das Informationssystem 4 Juli 2011 sudo vi /etc/profile.d/sun_java.sh
export
export
export
export
export
JAVA_HOME=/opt/jdk1.5.0_22
JAVA_ROOT=/opt/jdk1.5.0_22
JAVA_JRE=/opt/jdk1.5.0_22/jre
JAVA_BINDIR=/opt/jdk1.5.0_22/bin
PATH=${JAVA_BINDIR}:$PATH
InstallationvonApacheAnt
Für D‐MON wird eine Installation von Apache Ant in der Version 1.8.0 vorausgesetzt. Die Tests erfolgen mit Apache Ant Version 1.8.1. 1. Herunterladen der Datei http://mirror.netcologne.de/apache.org//ant/binaries/apache‐ant‐1.8.1‐
bin.tar.gz in das Verzeichnis /opt 2. Entpacken der Datei apache-ant-1.8.1-bin.tar.gz cd /opt/
sudo tar xzf apache-ant-1.8.1-bin.tar.gz
3. Erzeugen einer Datei in /etc/profiles.d/, die für das Setzen der Ant Umgebungsvariablen zuständig ist. sudo vi /etc/profile.d/ant.sh
export ANT_HOME=/opt/apache-ant-1.8.1
export PATH=${ANT_HOME}/bin:$PATH
InstallationvonMySQLCluster
Die notwendigen RPMs für MySQL Cluster sind Bestandteil des Ubuntu Software Repositories. Die Installa‐
tion erfolgt mittels sudo apt-get install mysql-cluster-server
root Passwort für MySQL setzen
Die initiale Konfiguration von MySQL wird durch folgende Befehle gestartet /etc/init.d/mysql start
/usr/bin/mysql_secure_installation
Eingabe des neuen root Passworts
Remove anonymous users -> yes
Disallow root login remotely -> yes
Remove test database and access to it -> yes
Reload privileges table now -> yes
postfix -> no configuration
Kopieren und Anpassen der von D‐MON bereitgestellten MySQL‐Konfigurationsdatei sudo cp ./sampleConfiguration/my.cnf /etc/mysql/my.cnf
sed in /etc/mysql/mysql.cnf /tmp/mysql.sock -> /var/run/mysqld/mysqld.sock
Neustart von MySQL /etc/init.d/mysql restart
Seite
33
Konzept für das Informationssystem 4 Juli 2011 cd install
sh ./install.sh
InstallationderGLUE2.0DatenbankeninMySQL
1. Entpacken des dmon‐db.tar.gz‐Archivs nach /tmp tar xzf dmon-db.tar.gz –C /tmp
2. Wechseln in das Verzeichnis /tmp/dmon-db/install cd ./dmon-db/install
Dasinstall.shSkripteditierenunddieZugangsdatenfürdieMySQLDatenbankeintragen
user='XXXX'
password='YYYY'
target='localhost'
3. Ob die im install.sh Skript eingetragenen Werte passend sind, kann durch einen manuellen Ver‐
bindungsaufbau zum MySQL Server erfolgen mysql -uXXXX -pYYYY -hlocalhost
4. Ist der Verbindungsaufbau erfolgreich gewesen, kann das install.sh Skript ausgeführt werden ./install.sh
Nach dem Durchlaufen des Skripts sollten in MySQL mehrere Datenbanken vorliegen, u.a. eine GLUE20‐Datenbank. 5. Entfernen des temporären Verzeichnisses /tmp/dmon‐db InstallationdeseCloudManagerProxyWebServices
Diese Anleitung beschreibt die Installation des Webservice‐Servers. Dieser kann auf dem eCloudManager‐
Frontend oder auch einem separaten Knoten mit dem Betriebssystem Linux installiert werden. Nachfolgend ist die Installation auf einem System mit Ubuntu‐Linux 10.10 mit Bash Version 4.x beschrieben. 1.
Installation von Groovy sudo apt-get install groovy groovy-doc
2.
Installation von GroovyWS http://snapshots.repository.codehaus.org/org/codehaus/groovy/modules/groovyws/ aus cd ~
wget http://snapshots.repository.codehaus.org/org/codehaus/groovy/modules/groovyws/0.5.3SNAPSHOT/groovyws-0.5.3-20100521.071409-5.jar
mkdir -p .groovy/lib
mv groovyws-0.5.3-20100521.071409-5.jar .groovy/lib
3.
Installation Apache CXF JARs wget http://apache.openmirror.de//cxf/2.4.0/apache-cxf-2.4.0.tar.gz -P ~
tar xzf apache-cxf-2.4.0.tar.gz
cp -r apache-cxf-2.4.0/lib ~/.groovy
rm -rf apache-cxf-2.4.0.tar.gz apache-cxf-2.4.0/
Seite
34
Konzept für das Informationssystem 4 Juli 2011 4.
Herunterladen der Datei webServiceServer.jar in das Zielverzeichnis cd <TARGET_DIR>
wget http://<SOME_URL>/webServiceServer.jar
5.
Extraktion der JAR‐Archivinhalte in den Zielordner jar xf webServiceServer.jar
6.
Es sollten in dem Zielverzeichnis folgende Unterordner existieren: META-INF, lib, src, txt, xsd sowie xslt. Des Weiteren sollte ein Shell‐Skript runServer.sh im Zielverzeichnis liegen. 7.
Der Inhalt der Datei site.conf.example ist anzupassen. Dies gilt für die Werte folgender Variablen: site.name, site.description, site.usercontact, site.admincontact, site.securitycontact, site.location, site.latitude, site.longitude, site.web, site.sponsor, site.maintenance, site.address, site.place, site.country, site.postalcode, site.otherinfo. 8.
Kopieren der Datei site.conf.example zu site.conf cp src/server/site.conf.example src/server/site.conf
9.
In der Datei Client.groovy ist der Kontaktstring unter dem der eCloudManager erreichbar ist abzuändern. Je nach Firewall‐
Konfiguration muss noch der passende Port in der Firewall geöffnet werden. sed -i 's/CHANGE_ECLOUDMANAGER_URL/129.217.162.159/g' src/server/Client.groovy
der Name des User Accounts und das Passwort zu setzen mit denen sich der Webservice beim eCloudManager Informationen abholen kann. sed -i 's/CHANGE_ECLOUDMANAGER_USERNAME/admin/g' src/server/Client.groovy
sed -i 's/CHANGE_ECLOUDMANAGER_PASSWORD/iw2brau1/g' src/server/Client.groovy
10.
Der Kontaktstring, unter dem der Webserver später erreichbar sein soll, ist in der runServer.groovy durch das Setzen von Werten für die Optionen -u und -p zu spezifizieren. Zum Beispiel: groovy WebServer.groovy -u localhost -p 6980
11.
Löschen des JAR‐Archivs rm -f webServiceServer.jar
AusführendesWebservice
1.
Wechseln in das Zielverzeichnis cd <TARGET_DIR>
2.
Es ist zu beachten, dass während der Ausführung auf die Dateien fluidops.ca zugegriffen wird. Diese sollten sich im Verzeichnis src/server befinden. 3.
Ausführen den Shell‐Skripts runServer.sh sh runServer.sh
#!/bin/sh
BASE_DIR=`pwd`"/"
Seite
35
Konzept für das Informationssystem 4 Juli 2011 function setClassPath() {
CLASSPATH=${BASE_DIR}"lib/vim/vim25.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/axis/commons-discovery-0.2.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/axis/jaxrpc.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/axis/commons-logging-1.0.4.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/axis/axis.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/fcoremgmt.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/query/JoSQL-1.9.jar;:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/fbase.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/fiwbcom.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/sesame/openrdf-sesame-2.3.2-onejar.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/commons/commons-cli-1.0.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/json/json.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/groovy/groovy-all-1.5.7.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/groovy/jline-0.9.94.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/log4j/log4j-1.2.16.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/xml/xstream-1.2.2.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/xml/xpp3_min-1.1.3.4.O.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/fecm.jar:$CLASSPATH"
CLASSPATH=${BASE_DIR}"lib/groovy/groovyws-0.5.3-20100521.062225-1.jar:$CLASSPATH"
export CLASSPATH
}
cd ./src/server/
groovy WebServer.groovy -u localhost -p 6980
InstallationsanleitungdesWebServiceClients
Diese Anleitung beschreibt die Installation des Webservice‐Clients. Dieser kann auf dem D‐MON Host oder auch einem separaten Knoten mit dem Betriebssystem Linux installiert werden. Nachfolgend ist die Instal‐
lation auf einem System mit Ubuntu‐Linux 10.10 mit Bash Version 4.x beschrieben. 1. Installation von Groovy und xmllint sudo apt-get install groovy groovy-doc libxml2-utils
2. Installation von GroovyWS http://snapshots.repository.codehaus.org/org/codehaus/groovy/modules/groovyws/ aus cd ~
wget http://snapshots.repository.codehaus.org/org/codehaus/groovy/modules/groovyws/0.5.3SNAPSHOT/groovyws-0.5.3-20100521.071409-5.jar
mkdir -p .groovy/lib
mv groovyws-0.5.3-20100521.071409-5.jar .groovy/lib
3. Installation Apache CXF JARs wget http://apache.openmirror.de//cxf/2.4.0/apache-cxf-2.4.0.tar.gz -P ~
tar xzf apache-cxf-2.4.0.tar.gz
cp -r apache-cxf-2.4.0/lib ~/.groovy
Seite
36
Konzept für das Informationssystem 4 Juli 2011 rm -rf apache-cxf-2.4.0.tar.gz apache-cxf-2.4.0/
4. Herunterladen der Datei ecm_dmon_webServiceClient.jar in das Zielverzeichnis mkdir -p <TARGET_DIR>
cd <TARGET_DIR>
wget http://www.irf.tu-dortmund.de/cms/de/IT/Projekte/DGrid_IaaS/ecm_dmon_webServiceClient.jar
5. Extraktion der JAR‐Archivinhalte in den Zielordner jar xf ecm_dmon_webServiceClient.jar
6. Es sollten in dem Zielverzeichnis folgende Unterordner existieren: META-INF, lib, src, xsd sowie xslt. Des Weiteren sollte ein Shell‐Skript runClient.sh im Zielverzeichnis liegen. 7. Ändern der Rechte an der Datei runClient.sh chmod u+x ./runClient.sh
8. Aufruf des Clients, zum Beispiel: ./runClient.sh localhost 6980
9. Löschen des JAR‐Archivs rm -f ecm_dmon_webServiceClient.jar
IntegrationdesClientsalsD‐MONAdapter
Extraktion
Die Konfiguration für die Extraktion ist in der Datei zentral.sh festgehalten. Die aktuellen Einträge für die drei Grid Middlewares Globus Toolkit, gLite und UNICORE sind nachfolgend aufgeführt. #
# Extractors
#
# Extractor for Globus Toolkit 4 MDS4
GLOBUS_LOCATION=/usr/local/globus
export GLOBUS_LOCATION
PATH=/usr/local/java/bin:${GLOBUS_LOCATION}/bin::${GLOBUS_LOCATION}/sbin:"${PATH}"
export PATH
GLOBUS_OPTIONS=-Xmx128M
export GLOBUS_OPTIONS
MDS4_EXTRACTOR="wsrf-query -a -z none -s "
# Extractor for BDII
BDII_EXTRACTOR="$DMON_HOME/extractors/ldapxml.pl "
# Extractor for CIS
PATH=/home/globus/ucc-1.2.0/bin:"${PATH}"
CIS_EXTRACTOR="ucc cis-showdoc -u "
Die Extraktion von Informationen aus dem eCloudManager erfolgt anhand eines neuen Adapters, der in das zentral.sh‐Skript zu integrieren ist. Die Integration erfordert zwei Schritte: 1.
Die Erzeugung einer neuen Umgebungsvariable ECM_EXTRACTOR analog zu CIS_EXTRACTOR, Seite
37
Konzept für das Informationssystem 4 Juli 2011 BDII_EXTRACTOR und MDS4_EXTRACTOR. 1.
Die Belegung der Variablen ECM_EXTRACTOR mit dem notwendigen Aufruf des WebService‐Clients zur Kontaktierung des WebService‐Servers. # Extractor for ECM
ECM_EXTRACTOR=${DMON_HOME}/transformer/ecm/runClient.sh
Transformation
Die Konfiguration für die Transformation ist ‐ ebenso wie die Einstellungen für die Extraktion ‐ in der Datei etl.sh gespeichert. # Transformers
MDS4_TRANSFORMER="$DMON_HOME/transformers/mds4.xslt"
BDII_TRANSFORMER="$DMON_HOME/transformers/bdii.xslt"
CIS_TRANSFORMER="$DMON_HOME/transformers/cis.xslt"
Die Erweiterung um einen neuen Transformer erfordert an dieser Stelle einen neuen Eintrag. # Transformers
ECM_TRANSFORMER="$DMON_HOME/transformers/ecm/xslt/ecm.xslt"
AuslesenderDateimonlist.txt
Während der Abarbeitung des zentral.sh‐Skripts wird die Datei monlist.txt zeilenweise ausgelesen. Die Datei besteht aus Schlüssel‐Wert‐Paaren wie BDII: ldap://udo-bdii01.grid.tu-dortmund.de:2170/mds-vo-name=UNI-DORTMUND,o=grid
CIS: https://dmon-unic.fz-juelich.de:9113/services/CISRegistry?res=cis_registry
und wird um einen Eintrag für die in Dortmund betriebene eCloudManager‐Instanz erweitert ECM: http://129.217.184.110:6980/Client
Des Weiteren wird eine Abfrage innerhalb des Skripts ergänzt um ECM)
echo "ECM Information provider"
out=$(timeout $QUERY_TIMEOUT $ECM_EXTRACTOR 129.217.184.110 6980 2>&1)
rcode=$?
if [ -n "$(echo $out | grep -i exception)" ]; then
rcode=1
fi
transformer=$ECM_TRANSFORMER
;;
Seite
38
Herunterladen