Tags:
, view all tags

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: Test di affidabilita' e robustezza del servizio (SSL disattivo)

- 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.

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