Skip to content

Installation

Repository klonen und Konfigurationsdateien editieren

root@koala:~# git clone https://gitlab-ce.gwdg.de/koala/koala.git
root@koala:~# cd koala/install/compose-koala
root@koala:/root/koala/install/compose-koala# l
common.env  dias-koala/  docker-compose.yml  dsm.sys  koala.key  koala.pem  mysql_dump.sql
  • Konfigurationsdateien die angepasst werden müssen: common.env, dsm.sys
  • Sicherstellen, dass alle benötigten Pfade existieren, bspw.: /dias/workarea
  • SSL-Zertifikat erstellen

Anmelden an der Docker Registry

root@koala:~# docker login docker.gitlab-ce.gwdg.de/koala/koala
Username: user@gwdg.de
Password:
Login Succeeded

Komponenten starten

Es werden so viele loader gestartet wie CPUs vorhanden sind.

root@koala:/root/koala/install/compose-koala# export NR_OF_CPUS=$(grep -c processor /proc/cpuinfo)
root@koala:/root/koala/install/compose-koala# docker-compose up -d --scale loader=$NR_OF_CPUS

Deployment

Die koala-Komponenten werden in Docker Container gestartet und mit docker-compose orchestriert. Eine Beispiel docker-compose.yml Datei kann im Installationsverzeichnis gefunden werden. Für ein Standard Deployment müssen die folgenden Applikationen gestartet sein: web, scheduler, purger, loader, retriever, stats. Lastabhängig können weitere loader/retriever Applikationen gestartet werden.

Minimale Systemvoraussetzungen:

  • x86_64 Linux
  • Docker >= 17.03.0-ce
  • 2 CPU,
  • 4 GB RAM,
  • HDD System 20 GB
  • HDD DB 50 GB
  • HDD Workarea 200 GB,
  • HDD Downloadarea 200 GB
  • HDD Uploadarea 200 GB

Note

Die Schätzungen sind Erfahrungswerte mit SIPs < 50 GB. Für größere SIPs müssen entsprechend größere Verzeichnisse bereitgestellt werden.

Typisches Beispiel einer produktiven Installation

Hardware

- koala-test koala-prod
Beschreibung Testsystem Produktives System
Applikationen Datenbanken, MessageQueue, Cache, Koala Applikationen Datenbanken, MessageQueue, Cache, Koala Applikationen
CPU 2 4
RAM 8 GB 6 GB
HDD 1 TB 256 GB
SSD - 50 GB (uploadarea), 100 GB (workarea)
Plattform VM VM

Cluster

Variante A

Anwendbar falls die Verarbeitungszeit der loader der Flaschenhals ist.

  • Geteilter Speicher zwischen koala-1 und koala-2
  • Die Web-Applikation läuft nur auf einer Instanz
  • Die Middleware läuft nur auf einer Instanz
  • Die Ingests werden über die zwei Instanzen verteilt
  • koala-2 braucht von außen nicht erreichbar zu sein und benötigt daher auch keine öffentliche IP

cluster-a

Variante B

Anwendbar falls die Übertragung per SFTP der Flaschenhals ist.

  • Retriever und Web-Applikation laufen nur auf einer Instanz
  • Die Middleware läuft nur auf einer Instanz
  • Ingests werden über zwei Instanzen verteilt
  • Retrieves werden nur einer Instanz ausgeführt
  • Kein verteilter Speicher benötigt
  • koala-2 muss von außerhalb erreichbar sein und benötigt daher eine öffentliche IP
  • Der Purger muss auf jedem Host bereitgestellt werden
  • Die Client Appliaktion muss per /api/ftpinfo abfragen welcher Host für das Hochladen verwendet werden soll.

cluster-b

Variante C

Anwendbar in den gleichen Fällen wie A, B und bei mehreren gleichzeitigen Retrieve-Vorgängen, sowie hoher Schreib- und Leserate in Bezug auf die Middleware.

  • Gleiches wie B
  • Die HTTP- und SFTP-Schnittstellen von koala-1 und koala-2 können austauschbar verwendet werden.
  • koala-db ist ein separater Host für die Middleware
  • koala-db benötigt keine öffentliche IP

cluster-c

Software

Frontend

frontend

Backend

backend