Galaxy admin training 2023, Gent, Belgium

Zobraziť fotky

Táto cesta bola veľmi precízne naplánovaná a podarila sa uskutočniť úplne dokonale. Dokonca sa mi toho podarilo ešte viac, ako som plánoval. Primárnym cieľom cesty bol Galaxy admin training v meste Gent v Belgicku. To malo trvať 5 dní od pondelka do piatka. Následne som sa chcel presunúť do menšieho mestečka Landen, kde by som strávil víkend u kamaráta Jakuba a jeho snúbenice. Odtiaľ som mal cestovať do Nemecka, konkrétne mesta Düsseldorf, kde som bol pozvaný urobiť prednášku a tiež mať niečo ako pohovor. Tam som mal stráviť dve noci, a na záver sa presunúť do Heidelbergu, kde by som navštívil kamarátku a odtiaľ šiel domov.

Cesta tam (16.4.)

Cesta prebehla bez väčších problémov či meškaní. Pozostávala najprv z presunu do Prahy a následne na letisko. Tam som mal akurát čas na obed a už som aj letel do Bruselu. Teda presnejšie povedané na letisko Charleroi blízko Bruselu. Jedná sa o pomerne malé letisko, kde bol problém vôbec zohnať nejaké rozumné občerstvenie alebo sa niekde zašiť. To bolo mierne nepríjemné, keďže som musel čakať skoro dve hodiny na autobus do mesta Gent, čo bol cieľ mojej cesty.

Nakoniec som sa dočkal a autobusom spoločnosti Flibco som sa dostal priamo do Gentu. Tam som sa odviezol električkou ku svojmu hotelu. Električka jazdila po veľmi úzkych uličkách a nenechala vôbec priestor autám. Tých tu celkovo jazdilo pomenej, ľudia sa prevažne presúvali na bicykloch. Nakoniec som sa po asi 12 hodinách cesty dostal do hotela. Bol to bývalý kláštor (Monasterium Poortackere), schovaný medzi okolitými budovami. Preto bolo ťažké ho nejako rozumne odfotiť. Priestory vo vnútri boli veľmi unikátne. Aby som sa dostal do mojej izby, musel som prejsť niekoľkými podozrivo vyzerajúcimi dverami a dlhými chodbami.

monastery-hotel

Galaxy admin training (17.4. - 21.4.)

Nasledujúcich 5 dní vyzeralo veľmi podobne. Vždy ráno som mal hotelové raňajky a potom som šiel na prednášky. Tie trvali približne od desiatej do piatej večer. Plus sme mali vždy pauzu na obed.

Poznámky z prednášok (kliknutím zobraziť obsah)
setup VM

Installing Galaxy with Ansible
  • info o systeme kde pustim playbook

ansible -i hosts -m setup my_hosts | less

  • good practive to close jinja formatting withing double quotes (because otherwise yaml parser can have issues)
  • ansible is not great about undoing changes
  • its okay to make a copy of a role and make local changes (e.g. usegalaxy.eu does that too)
  • galaxy-ansible role of certain version can only install Galaxy up to a certain version
  • ak pocas prvej instalacie sa mi zosype terminal (napr. broken pipe), tak sa Galaxy a vsetky potrebne services nespustia spravne !
  • prve prihlasenie, resp. registracia vytvori admin usera
    • requests certificate failed sa moze stat - treba zbehnut znova
    • usegalaxy.cz vo vyvoji

    Server Maintenance

    Customization
    • je mozne menit logo, nadpis, farby a hlavne uvodnu html stranku
    • doporucene pouzit iFrame

    TUS
    • umoznuje bezat upload async mimo samotneho Galaxy
    • command systemctl status tusd-main nefunguje
      • outdated - treba urobit sudo systemctl start galaxy-tusd

    Data Managers
    • toto by slo mozno vyuzit na napr. storage velkych DB, ktore sa pouzivaju v tooloch

    CVMFS
    • Cern virtual machine file system
    • sharing huge datasets
    • it uses AutoFS, downloads files and repositories only on-demand, cache available

    Apptainer
    • umoznuje pouzivat singularity containery
    • Singularity is an open source container platform designed to be simple, fast, and secure. Unlike Docker containers which requires root privileges to run containers, Singularity is designed for ease-of-use on shared multiuser systems and in high performance computing (HPC) environments.
    • v admin -> manage dependencies mozeme najst info o stiahnutych containeroch
    • novy paper o planemo: The Planemo toolkit for developing, deploying, and executing scientific data analyses in Galaxy and beyond

    Ephemeris
    • ephemeris poskytuje vela uzitovnych toolov
    • mozeme instalovat tools na nasej instancii pomocou shed-tools
      • shed-tools install -g https://galaxy.example.org -a <api-key> -t workflow_tools.yml
    • k tomu pouzit napr. list toolov extrahovanych z workflow
      • workflow-to-tools -w mapping.ga -o workflow_tools.yml -l Mapping
    • tiez umoznuje testovat tooly - tu je vlastne moznost spustit realne testy specifikovane v tool configu
      • toto vytvori test_history na danom Galaxy
    • ziskanie vsetkych toolov na nejakej instancii
    • neexistuje uninstall https://github.com/galaxyproject/ephemeris/issues/83
    • usegalaxy.eu ma napr. list toolov, cize clovek moze pull requestom poziadat o automaticku instalaciu

    Data Libraries
    • umoznuje pouzitie data libraries
      • Before we can import local data, we need to configure Galaxy to permit this
    • Datasets in libraries do not count against user quotas
    • ephemeris moze byt pouzite na vytvaranie libraries (setup-data-libraries)

    Scripting Galaxy with BioBlend
    • idea - galaxy sa da pouzivat ako fancy vypocetny server, ktoremu posielam vypoctove ulohy zo skriptov
    • novsie Galaxy maju automaticky pristupnu dokumentaciu API na suffixe api/docs
    • bioblend poskytuje API wrapper
      • vytvaranie, editovanie, mazanie historii
    • prekryv medzi BioBlend a Ephemeris?
      • jedno je command line tool a druhe python library

    User, Groups, and Quotas management
    • expose_dataset_path - Users to see the full path of datasets via the "View Details" option in the history
    • quotas should be definitely set for anonymous users !!!
    • galaxyeu ma system, kde na poziadanie sa cloveku zvysi quota

    Cluster
    • there is also user limit - maybe that's why we often wait for some jobs on UMSA?
    • even running Slurm on the same machine is useful, because it allows to e.g. restart Galaxy without interrupting the jobs
    • destinations were renamed to environments
      • which plugin (slurm/pulsar/...)
      • on docker? what container?
      • queue, cores, memory
      • env variables
    • handlers/runners have specified workers - number of jobs that can run at the same time using the same handler
    • job plugins usually require shared filesystem (except Pulsar)
    • dynamic job runner
      • total perspective vortex or arbitrary python function to choose appropriate environment for a job
    • Slurm
      • config generator
      • v logu je uzitocne si vsimnut:
        • submitting file /srv/galaxy/server/database/jobs/000/2/galaxy_2.sh: This is the path to the script that is submitted to Slurm
        • (1) queued as 4: Galaxy job id 1 is Slurm job id 4
        • we can see then details using scontrol show job 4If job id ended is reached, the job should show as done in the UI
    • Job Metrics
      • e.g. what is max memory my job used?
      • can be gathered using galaxy_job_metrics_plugins, we can specify what we want to collect

    Job Destinations
    • allows to control resources we assign to a job
    • k tomu je uzitocne pouzit TPV
    • DB toolov a ich vhodnych nastaveni resourcov - chceme tam dat nase?
    • Configuring TPV to process resource parameters
      • aby sme pre tool testing umoznili zadanie resources ako parameter
      • treba este pridat do group_vars/galaxyservers.yml pod galaxy_job_config - tools toto:
        - id: testing
          environment: tpv_dispatcher
          resources: testing
    
    • kde id je ID toolu, do ktoreho chceme pridat takuto moznost - i ked v realite to asi nie je take jednoduche
      • mozno by to slo nastavit v default: []
      • co sa teda stane, ak zmazem tool? co ak ho este nemam?

    Pulsar
    • umoznuje spustat joby na strojoch, ktore nezdielaju suborovy system
    • na komunikaciu sa pouziva RabbitMQ
    • After running the playbook, after RabbitMQ restarts:
      • On the oz/Pulsar VM: sudo systemctl restart pulsar
      • On the eu/Galaxy VM: sudo galaxyctl restart

    Celery
    • can do some async IO tasks processing
    • useful for huge Galaxy servers with high load

    Reports
    • can provide overview of jobs and users etc, but not secured, can break GDPR etc

    gxadmin
    • gxadmin query jobs (ako galaxy user)
      • zoznam jobov, ktory handler, destination, user, ID
    • gxadmin report job-info <ID>
      • napr. Tool Parameters
    • gxadmin query latest-users
      • when joined, disk usage
    • gxadmin query queue-overview

    Telegraf and Grafana
    • galaxy_url/grafana
    • je celkom jednoduche rozbehat Grafanu na svojom serveri a potom importovat JSON config napr. z galaxyeu
    • kedze vsetko je (v teorii) nakonfigurovane rovnako, tak to funguje
    • je mozne si aj nastavit notifikacie, ked napr. hodnota niecoho sa dostane nad prahovu hodnotu

    Sentry
    • tutorial nefunguje, treba este
      • pridat sentry_domain: "gat.\{\{ groups['galaxyservers'][0] \}\}" do group_vars/all.yml
      • In group_vars/secrets.yml, adjust the sentry URL from https:// to http://
      • a v nejakom random momente spustit ako root:
    cd /srv/sentry
    docker-compose down -v
    docker volume rm sentry-clickhouse sentry-data sentry-kafka sentry-postgres sentry-redis sentry-symbolicator sentry-zookeeper
    rm -rf /srv/sentry
    
    • ale inak tool moze automaticky zbierat errory jednak na Galaxy urovni a Pulsar serverov, ale aj z toolov
      • a prezentuje ich v peknej a prehladnej forme (aka. netreba sa hrabat v logoch)
      • mozeme odhalit error este predtym, ako si ho user vsimne
    • ked sa error opakuje, tak sa zgroupnu dokopy

    Galaxy troubleshooting
    • mala by byt nahravka tejto prezentacie
    • start with logs - there are many of them! (many sub-services)
      • go to /var/log and run ls -lrt to see recently updated logs
    • e.g. startup issues
      • database migration - should be covered by ansible, but...
      • stuck in restart loop
        • go to end of log using journalctl -e -u 'galaxy-*' and see log just before last start attempt
    • atop - ako htop ale detailnejsie a uklada si historiu?
    • load average v htop - should be lower than number of cores
    • profiling
      • py-spy dump/top --pid <process PID> (ako root)
      • ps -axf | grep galaxy
    • in /srv/galaxy/var/configs we have bunch of configs related to tools
      • in /srv/galaxy/var/shed_tools installed tools
      • je fajn si nastavit, aby defaultne joby, ktory failnu sa nezmazali ich logy
        • cleanup_job to onsuccess (kde?)
      • srun --pty bash - spusti terminal na VM kde ma job bezat (aj v spravnom env?)
        • potom sbatch galaxy_<job ID>.sh (slurm)
    • "gray" queued jobs
      • depends on job handler configuration
      • gxadmin query jobs --nonterminal


    group-photo

    Okrem účasti na tejto udalosti som mal aj trochu času na voľnočasové aktivity. Takmer každé ráno som sa šiel prejsť do mesta, keďže sme s prednáškami začínali až trochu neskôr. Rovnako sme mali večer často stretnutie na večeru, buď neoficiálne mimo hotelu, alebo oficiálne ako súčasť programu. Čas predtým som tiež často využil na potulky po meste a okolí. Zatiaľ čo obedy boli prevažne studené v podobe obložených bagiet, večera boli výrazne chutnejšie a zaujímavejšie. Všetko bolo navyše obohatené nekonečným množstvom hranoliek a majonézy, čo je veľmi typické pre Belgicko.

    Okrem toho som stihol absolvovať komentovaný výlet loďou po miestnych kanáloch. Tie sa kľukatia cez centrum mesta a poskytujú tak unikátny pohľad na mesto. Bolo vidieť najkrajšie časti mesta a sprievodca nám povedal aj nejaké historické detaily či zaujímavosti o rôznych budovách, ktoré sme cestou videli. Zaujímavé bolo, že voda bola v niektorých ramenách, ktorými sme sa plavili, prakticky nehybná, či dokonca sme sa plavili ramenami, ktoré sú mŕtve.

    boat-trip

    Vo štvrtok som vynechal časť prednášok, pretože som mal online pohovor. Toto nebolo naplánované úplne dopredu, dozvedel som sa to vlastne len pár dní dopredu. Jednalo sa o pohovor do medzinárodnej spoločnosti EMBL.

    Posledný deň sa mi ešte podarilo dostať na hrad Gravensteen v centre mesta. Bola to skôr pevnosť, bolo možné sa prejsť po hradbách a po točitých schodoch sa dostať do vnútorných priestrov. Na spríjemnenie zážitku slúžil audiosprievodca, ktorého som dostal pri vstupe.

    Gravensteen

    Landen (21.4. - 23.4.)

    V piatok ku večeru som sa zbalil a vybral na vlak. Ten ma za necelé dve hodiny doviezol priamo do menšieho mesta Landen, kde býva môj kamarát s jeho snúbenicou. Jakub ma čakal na stanici a spoločne sme šli ku nemu domov. Tam som sa zložil a dali sme si spoločnú večeru. Pôvodný plán bol vziať bicykle a ísť do neďalekej dediny na výlet, ale prišla búrka, tak sme sa ostali hrať spoločenské hry. K domu mali malú záhradku, na ktorej pomaly pracovali. Dom tiež okupovali dve čierne mačky, no boli veľmi bojazlivé, začali sa osmeľovať až ku koncu môjho pobytu.

    V sobotu ráno sme išli vlakom do mesta Leuven, kde Jakub pracuje. Bol upršaný deň vhodný tak akurát na prácu a jedlo. U neho na pracovisku sme diskutovali detaily jeho práce a ukázal mi skleníky, v ktorých robieva experimenty s pestovaním paradajok. Okrem toho tam boli napríklad aj banány budúcnosti, pretože údajne aktuálne najbežnejšia odroda banánov vymiera. Potom sme sa ešte prešli cez park a autobusom odviezli do centra mesta, kde sa išli na obed. Okrem toho sme ešte stihli navštíviť botanickú záhradu a ísť na zákusok.

    botanic-garden

    Na druhý deň som okolo obeda odcestoval do Düsseldorfu v Nemecku. Cesta príjemná a jednoduchá sa zmenila v momente, keď som pri čakaní na vlak v Bruseli zistil, že vlak nepôjde. Ukázalo sa, že nemecký vlak z Frankfurtu nepríde až do Bruselu, ale o pár zastávok ďalej. Bohužiaľ táto informácia bola veľmi vágna a prišla neskoro, nebolo jasné čo treba robiť. Poslali nás na iný vlak (tým nás myslím plno ľudí, ktorí chceli ísť do Nemecka), ktorý nás mal dostať na údajnú zastávku. Nakoniec som sa na vlak naozaj dostal, ale bol to celkom zázrak. Navyše všetko meškalo a bol to chaos. Potom už šlo všetko ako malo a do Düsseldorfu som sa večer dostal.

    Düsseldorf (23.4. - 25.4.)

    Medzičasom som sa dozvedel, že z EMBL som pozvaný na ďalšie kolo pohovoru, tentokrát osobne. Zhodou okolností to malo byť v Heidelbergu, kam som mal namierené. Preto sa mi podarilo dohodnúť termín práve keď tam budem. Jeden z ľudí čo ma chceli stretnúť vtedy ale nemohol, takže sme v pondelok ráno mali ešte videohovor. Potom som sa pred obedom vybral na Heinrich Heine univerzitu. Tam som sa mal stretnúť s Ilkou Axmann, ktorá mi ukázala ich laboratória a ostatné priestory. Mali sme zaujímavé diskusie, ktoré pokračovali na spoločnom obede.

    Po obede som mal prednášku, na ktorú som bol pozvaný. Vďaka tomu mi aj preplatili hotel a stravu, čo bola veľmi príjemná záležitosť. Prezentácia sa mi myslím že celkom vydarila. Začiatok bol slabší, ale potom sa obecenstvo chytilo a začalo rozumieť o čo sa jedná. Boli veľmi interaktívni a milí, mali veľa trefných otázok. Po prezentácii som mal ešte diskusiu s Ilkou o prípadnej spolupráci, dohodli sme sa že uvidíme čo prinesie budúcnosť. Odtiaľ som sa ešte šiel prejsť po promenáde popri rieke.

    promenada

    Heidelberg (25.4. - 28.4.)

    V utorok na obed som sa presunul Flixbusom do Heidelbergu tiež v Nemecku. Tam po mňa prišla kamarátka Lula a šli sme ku nej domov, kde som dostal vlastnú izbu na celý pobyt. Dali sme si večeru a pozerali jednu online prednášku.

    Na druhý deň som mal dohodnuté druhé kolo pohovoru v EMBL. Tento výskumný ústav bol trochu skrytý a ťažko dostupný v lesoch, ale jazdí tam raz za čas autobus. Na mieste som mal som diskusie s troma skupinami ľudí, s ktorými by som na ponúkanej pozícii viac či menej spolupracoval. Všetci boli veľmi milí, dozvedel som sa mnoho užitočných informácií, plus ma vzali na obed. Ten bol v ich vlastnej jedálni, kde si všetci pochvaľovali cenu a kvalitu jedla (chodia tam ľudia z ostatných ústavov dookola). Pohovor ale nemal nejaký jasný koncept ani smer, takže som úplne nevedel aký výsledok si z toho odniesť, bolo to viac zamerané asi na to, aby ma spoznali. Hovoril som aj s riaditeľom ústavu, mali sme podľa mňa veľmi podobné názory.

    EMBL

    Po obede som sa stretol s Lulou, ktorá sa vyskytovala niekde v okolí. Zašli sme na kávu na strechu jednej futuristickej budovy, ktorá bola súčasť areálu. Ona tam potom ostala a ja som sa vrátil na jej byt, kde som pracoval. Večer sa vrátila a išli sme na pivo a večeru najprv s jej kolegami a potom kamarátmi

    Posledný deň sme išli spoločne do jej práce (HITS), kde sme mali celý deň diskusie prevažne okolo jej dizertačnej práce a pracovali sme. Stretol som aj jej šéfa a mali sme aj spoločnú diskusiu. Na obed som mal zase raz pozvaný, Lula nejako vybavila, že som tam bol oficiálne a dostal som preto obed. Večer sme sa prešli domov a odtiaľ sme šli na večeru do talianskej reštaurácie, potom už spať.

    Nakoniec som zmenil svoje pôvodné plány ísť preč až v piatok večer, lebo už na mňa doľahla únava z dlhého cestovania. Preto som šiel na ranný FlixBus do Prahy s prestupom v Nürnbergu. Cesta trvala nekonečne dlho, do Brna som prišiel až neskoro v noci.