Test sul trasporto dati di DGAS tramite Active MQ

L'installazione del testbed, la configurazione e i test sono stati effettuati seguendo il piano di test proposto da Andrea Guarise. Il testebed e' cosi' composto:

Servizio Hostname VM dom0
HLR classico dgas-test-vm01 vm domus03
HLR con ~ActiveMQ dgas-test-vm02 vm domus03
CE Cream dgas-test-vm03 vm domus03
wn dgas-test-vm04 vm domus03
wn dgas-test-vm05 vm domus03
site-bdii vgrid0 vm domus03
TOP-BDII gridit-bdii-01.cnaf.infn.it - -
WMS gridit-cert-wms.cnaf.infn.it - -
Active-MQ browser tcp://dgas-broker.to.infn.it:61616 - -

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 G: 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 F: 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.

Test H-I: Test di affidabilita' e robustezza del servizio (SSL disattivo e attivo)

- Servizi HLR accesi

Questo test si ritiene effettuato con successo contestualmente ai test precedenti.

- Servizio glite-dgas-hlrd spento

Abbiamo spento il servizio hlrd sui 2 HLR e lanciato due serie di job (utenti Cristofori e Fattibene), venerdi' 23/9. Abbiamo tenuto il sistema in questo stato per tutto il fine settimana. Lunedi' mattina abbiamo riavviato hlrd sui 2 HLR e i dati sono arrivati uguali su entrambi e non si sono persi job.

Nota: con tutti i servizi accesi abbiamo riavviato le macchine e abbiamo notato che i servizi AMQ sull'HLR (Consumer e RecordManager) non sono tornati su.

- Servizi sull'HLR AMQ spenti

Lunedi 27/9 pomeriggio abbiamo spento tutti i servizi sugli HLR (hlrd e i servizi AMQ) e lanciato altre 2 serie di job.

Mercoledi' 29/9 mattina abbiamo copiato poco piu' di 3 mesi di log da un CE del T1 (ce04-lcg.cr.cnaf.infn.it) e li abbiamo messi sul CE del testbed. Ci aspettiamo che questi log contangano circa 1,5 milioni di job. Dopo abbiamo opportunamente configurato il CE come se fosse un CE LSF. Il sistema si e' inceppato perche' i log non erano stati copiati sul CE in modo corretto, pertanto giovedi' 30/9 mattina abbiamo riprocessato i job.

Giovedi 30/9 pomeriggio alle 17.30 abbiamo avviato i servizi sui 2 HLR. Venerdi' 1/10 mattina verso le 7.00 il disco dell'HLR AMQ si e' riempito e il sistema si e' bloccato. Fino a quel momento erano stati inseriti nel database circa 16000 job (in 13 ore e mezza). Il log dgas-hlr-amq-manager.log era 6,2 GB e hlr_qmgrd.log era 7,7 GB. Dopo averli cancellati abbiamo riavviato i servizi e dopo circa 5 ore (alle 16) rileviamo che sono stati inseriti nel database del HLR AMQ circa 12000 job. Alle 16 abbiamo riconfigurato il sistema abilitando SSL e abbiamo disabilitato l'invio verso l'HLR standard, in modo da lasciare il solo HLR AMQ.

Alle 11 di mercoledi' 6 ottobre la directory /tmp/dgasamq/ era totalmente piena di record e l'HLR li processava. Non era possibile nemmeno fare il listing dei file in questa directory. L'unica soluzione estrema e' stata quella di cancellare tutti i record

rm -rfv -/tmp/dgasamq/

Sul CE la directory /opt/glite/var/dgasURBox/ e ERR risultavano essere vuote ma il solo listing dei file in dgasURBox richiedeva diversi minuti

drwxr-x--- 3 root root 33480704 Oct 6 11:40 dgasURBox

rimossa e ricreata. Anche la rimozione ha richiesto diversi minuti. Dopo aver ricostruito le directory, rimosso il file dgasCollectorBuffer.lsf e riavviato l'urcollector "nuovi" record sono comparsi nella dgasURBox e spediti con successo al broker:

AMQSTATUS=0

I record sembrano arrivare all'HLR ma sono senza contenuto:

cat -A DGASAMQ20101006145741_3973

$

L'11/10 abbiamo notato che il binario /opt/glite/libexec/glite_dgas_recordComposer era vuoto, senza riuscire a capirne il motivo. Abbiamo provato a reinstallare il pacchetto glite-dgas-hlr-activemq-producer-0.0.0-0.centos5.x86_64.rpm ma non siamo riusciti. Il problema era nel fatto che l'urcollector rimaneva acceso.

Il 19/10, dopo aver killato a mano l'urcollector, abbiamo installato con successo l'rpm, ripulito i log del collector e del manager AMQ e riavviato i servizi. I job hanno ripreso ad arrivare regolarmente al DB.

Test L: Misure di throughput (SSL disattivo e attivo, e HLR standard)

Abbiamo effettuato il test L misurando il numero di job processati dal sistema in un giorno intero in diverse configurazioni. Il set di job utilizzato e' stato lo stesso per le diverse configurazioni. Di seguito i risultati.

- HLR AMQ, SSL attivo, broker di Torino (dgas-broker.to.infn.it)

Numero di record in jobTransSummary e in trans_in: 33371

Numero di record in trans_queue: 129918

- HLR AMQ, SSL disattivo, broker di Torino (dgas-broker.to.infn.it)

Numero di record in jobTransSummary e in trans_in: 33955

Numero di record in trans_queue: 131391

- HLR standard, broker di Torino (dgas-broker.to.infn.it)

Numero di record in jobTransSummary e in trans_in: 62590

Numero di record in trans_queue: 265748

- HLR AMQ, SSL attivo, broker del CERN (gridmsg001.cern.ch)

Numero di record in jobTransSummary e in trans_in: 34609

Numero di record in trans_queue: 134244

Considerazioni finali

Durante l'installazione sono stati riscontrati dei problemi di dipendenze, derivanti soprattutto dal fatto che non sono ancora disponibili i pacchetti RPM. Riteniamo che questi problemi si risolveranno con la disponibilita' di tali pacchetti.

In generale abbiamo notato che la dimensione dei log cresce molto velocemente, tanto da raggiungere una dimensione di ~10 GB in poche ore. In particolare i file di log che abbiamo notato crescere rapidamente sono:

- sul CE: pushdAscii.log

- sull'HLR: dgas-hlr-amq-manager.log ; hlr_qmgrd.log ; hlrd.log

Riteniamo utile poter settare il livello di verbosita' di questi log e la possibilita' di attivare/disattivare la registrazione di questi log. Nel corso di questi test abbiamo dovuto ruotare i log in questione per evitare un riempimento rapido del disco. Affinche' la rotazione avesse effetto abbiamo dovuto riavviare i servizi ad ogni giro di rotate; senza riavviare i servizi infatti, il servizio continuava a puntare al vecchio file descriptor e il nuovo file creato rimane vuoto (almeno questo e' quello che crediamo sia successo).

Inoltre abbiamo notato la mancanza della informazione relativa al broker contattato sia nei log del producer che del consumer: per evitare che l'hostname del broker sia ripetuto per ogni invio/richiesta di UR, potrebbe essere un'idea quella di annotare nel log la configurazione allo start del servizio (sia nel CE che nell'HLR).

Edit | Attach | PDF | History: r14 < r13 < r12 < r11 < r10 | Backlinks | Raw View | More topic actions
Topic revision: r14 - 2010-11-16 - EnricoFattibene
 
This site is powered by the TWiki collaboration platformCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback