Test sul trasporto dati di DGAS tramite Active MQ
L'installazione del tesbed, la configurazione e i test sono stati effettuati seguendo il
piano di test
proposto da Andrea Guarise.
Installazione CE e HLR
Dopo aver installato il
CE gLite 3.2 SL5 x86_64 (profilo ig_CREAM_torque), seguendo la
guida
, abbiamo installato i pacchetti di DGAS indicati nel piano i test:
- rpm -Uvh glite-dgas-common-3.4.1-0.centos5.x86_64.rpm
- rpm -Uvh glite-dgas-hlr-clients-3.4.1-0.centos5.x86_64.rpm
Abbiamo installato 2
HLR (uno sara' standard e l'altro con Active MQ) seguendo la
guida
al paragrafo
3.1.2.1 New installation. I pacchetti installati sull'
HLR standard sono:
- glite-dgas-pa-clients-3.4.0-3.centos5
- glite-dgas-hlr-clients-3.4.0-12.centos5
- glite-dgas-hlr-service-3.4.0-23.centos5
- glite-dgas-common-3.4.0-4.centos5
I pacchetti installati sull'
HLR AMQ sono:
- glite-dgas-pa-clients-3.4.1-0.centos5
- glite-dgas-hlr-clients-3.4.1-0.centos5
- glite-dgas-hlr-service-3.4.1-0.centos5
- glite-dgas-common-3.4.1-0.centos5
Su
CE e
HLR AMQ, prima di installare i pacchetti delle dipendenze aggiuntive, vista la mancanza di compilatore C, abbiamo installato gcc versione 4.1.2-48.el5.
- yum install gcc.x86_64
- Il pacchetto ha installato anche le seguenti dipendenze:
- cpp.x86_64 0:4.1.2-48.el5
- glibc-devel.x86_64 0:2.5-49
- glibc-headers.x86_64 0:2.5-49
- kernel-headers.x86_64 0:2.6.18-194.11.3.el5
- libgomp.x86_64 0:4.4.0-6.el5
I pacchetti delle dipendenze aggiuntive che abbiamo installato sono i seguenti:
- APR: apr-1.3.12.tar.gz
- tar zxvf apr-1.3.12.tar.gz
- cd apr-1.3.12
- ./configure
- make
- make install
- APR-util: apr-util-1.3.9.tar.gz
- tar zxvf apr-util-1.3.9.tar.gz
- cd apr-util-1.3.9
- ./configure
- make
- make install
- ACTIVEMQ: activemq-cpp-library-3.1.0-src.tar.gz
- Abbiamo dovuto installare i seguenti pacchetti:
- yum install autoconf automake libtool cppunit-devel cppunit gcc-c++ e2fsprogs-devel expat-devel
- Poi configurato e installato activemq-cpp-library
- tar zxvf activemq-cpp-library-3.1.0-src.tar.gz
- cd activemq-cpp-library-3.1.0
- Sul CE: ./configure --prefix=/opt/activemq/lib/
- Sull' HLR AMQ: ./configure --prefix=/usr/local/lib/
- make
- make install
- ldconfig
Nota: usando una versione piu' recente di activemq-cpp-library (abbiamo testato la versione 3.2.0) si ottiene il seguente errore quando si lancia il configure:
- ./configure --prefix=/opt/activemq/lib/
- checking for pthread_create in -lpthread... no
- configure: error: libpthread not found!
Sul
CE abbiamo provato ad installare
org.glite.dgas.hlr-activemq-producer, ma falliva nel cercare le dipendenze dalle librerie di activemq, apr e aprutil, in quento non installati da rpm ma da tgz. Allora abbiamo installato con --nodeps:
- rpm -ivh --nodeps glite-dgas-hlr-activemq-producer-0.0.0-0.centos5.x86_64.rpm
Sull'
HLR AMQ abbiamo dovuto installare con --nodeps i seguenti pacchetti:
- rpm -ivh --nodeps glite-dgas-hlr-activemq-consumer-0.0.0-0.centos5
- rpm -ivh --nodeps glite-dgas-hlr-activemq-producer-0.0.0-0.centos5
Configurazione CE
Per la configurazione con SSL disattivo, nel file /opt/glite/etc/dgas_sensors.conf abbiamo aggiunti i seguenti parametri:
- printAsciiLog = "yes"
- asciiLogFilePath = "/opt/glite/var/log/pushdAscii.log"
- amqBrokerUri = "URI del broker AMQ"
- transportLayer = "legacy;amq"
- recordComposer = "/opt/glite/libexec/glite_dgas_recordComposer"
- amqProducer = "/opt/glite/libexec/glite_dgas_hlrProducer"
- dgasAMQTopic = "DGAS.TEST"
La restante parte della configurazione e' stata eseguita come di solito, per far puntare il CE all'HLR (standard).
Per attivare SSL abbiamo copiato la chiave pubblica hostcert.pem dell’ HLR AMQ sotto /etc/grid/security col nome dgas-test-vm02-cert.pem. Poi abbiamo configurato, seguendo la guida, in /opt/glite/etc/dgas_sensors.conf:
- amqProducer = "openssl smime -binary -encrypt dgas-test-vm02-cert.pem | /opt/glite/libexec/glite_dgas_hlrProducer"
Configurazione HLR AMQ
Per la configurazione con SSL disattivo, abbiamo creato il file /opt/glite/etc/dgas-activemq-consumer.conf con i seguenti parametri:
- lockFileName = "/opt/glite/var/dgas-hlr-amq-consumer.lock"
- logFileName = "/opt/glite/var/dgas-hlr-amq-consumer.log"
- amqBrokerUri = "URI del broker AMQ"
- recordsDir = "/tmp/dgasamq/"
- dgasAMQTopic = "DGAS.TEST"
- hlr_user = "root"
- dgas_var_dir = "/opt/glite/var/"
- managerLockFileName = "/opt/glite/var/dgas-hlr-amq-manager.lock"
- messageParsingCommand = "cat MESSAGEFILE"
- AMQRecordsDir = "/tmp/dgasamq/"
- managerLogFileName = "/opt/glite/var/dgas-hlr-amq-manager.log"
- #Qui seguono gl i stessi valori con cui e' configurato il corrispondente dgas_hlr.conf
- hlr_sql_server = "localhost"
- hlr_sql_user = "root"
- hlr_sql_password = "database password"
- hlr_sql_dbname = "hlr database"
- hlr_tmp_sql_dbname = "hlr_tmp database"
Per attivare SSL, in /opt/glite/etc/dgas-activemq-consumer.conf abbiamo modificato il parametro:
- messageParsingCommand = "cat MESSAGEFILE | openssl smime -decrypt -inkey /etc/grid-security/hostkey.pem -keyform PEM -recip /etc/grid-security/hostcert.pem"
Test
Per passare da SSL attivo a disattivo e viceversa, dopo aver eseguito le modifiche alle configurazioni, abbiamo fatto ripartire tutti i servizi dgas.
Test A-B: Test di comunicazione CE - HLR (senza e con SSL)
Seguendo la guida i test sono stati effettuati con successo.
Test C: Test di comunicazione cambiando valore di dgasAMQTopic (senza e con SSL)
Seguendo la guida i test sono stati effettuati con successo.
Test D-E: Test di un ciclo completo di accounting (senza e con SSL)
Seguendo la guida i test sono stati effettuati con successo.
Test F: Test di integrita' dei dati (stessi dati su HLR e HLR-AMQ) (SSL attivo)
Abbiamo lanciato 2 serie di job con 2 certificati diversi (Cristofori e Fattibene). Alla fine (dopo circa 2 giorni di servizi attivi) sui 2 DB risulta un totale di 7834 job ed esattamente gli stessi risultati aggregati, in termini di numero di job, CPU time e Wall time per entrambi i gridUser. Inoltre il numero di job presenti nei DB corrisponde esattamente al numero di job sottomessi. Per un paio di job a campione abbiamo controllato con successo nei log del CE che le informazioni prese su Wall time e CPU time fossero esatte.
Successivamente abbiamo lanciato una terza serie di job con SSL attivo (utente Cristofori) con 1410 job processati nei DB, stessi dati sui 2 DB. Dopo abbiamo spento i servizi sui 2 HLR e sul CE.
Test G: Test di integrita' dei dati (stessi dati su HLR e HLR-AMQ) (SSL disattivo)
Con i servizi spenti abbiamo configurato in modo da disattivare SSL. Dopo abbiamo fatto ripartire i servizi per continuare a processare i job di Cristofori. Abbiamo sottomesso un'altra serie di job (utente Fattibene). Il giorno successivo abbiamo controllato sui DB e risultano gli stessi dati aggregati. Inoltre il numero di job presenti nei DB corrisponde esattamente al numero di job sottomessi.
--
EnricoFattibene - 2010-09-23