10.9.2. Storage Engine

Nom de l’image docker : storage-engine

Dans cette image sont déployés :

  • le moteur de stockage (storage-engine)
  • l’implémentation du driver correspondant à l’offre de stockage par défaut (storage-offer-default)

10.9.2.1. Configuration du moteur de stockage

Dans /vitam/conf :

  1. storage-engine.conf : Fichier Yaml de configuration du server storage-engine. Il possède une propriété :
  1. driver-location.conf : Fichier Yaml de configuration du DriverManager, Il permet de définir l’emplacement où sont stockés les fichiers JAR contenant les implémentations des différents drivers pour les différentes offres. Il possède une seule propriété :
  • driverLocation : emplacement des jars (chemin absolu de préférence)
  1. driver-mapping.conf : Fichier Yaml de configuration du DriverMapper (persistance de l’association driver / offre). Pour le moment, ce fichier de configuration contient le chemin d’accès aux fichiers qui définissent le mapping driver<->offre, plus tard il évoluera sans doute pour prendre en compte des données en base et donc contenir la configuration d’accès à la base. Il contient deux propriétés :
  • driverMappingPath : Définit l’emplacement des fichiers de persistance (au jourd’hui on a 1 seul driver/offre, donc 1 seul fichier de persistence sera présent). La propriété doit finir par “/”.
  • delimiter : Définit le “délimiteur” (CSV style) des fichiers.
  1. static-offer.json : Contient la description de l’offre ‘default’ au format JSON (un jour sera sans doute dans une base de données). En PJ un exemple de ce fichier. La propriété baseUrl et parameters nécessitent d’être templaté. Et la propriété parameters doit contenir keystore, trustore et leur mot de passe que le storage driver va utiliser pour la vérification de l’authentication. Il s’agit de l’URL d’accès à l’offre de stockage ‘default’. Exemple :
{
  "id" : "default",
  "baseUrl" : "https://localhost:8088",
  "parameters" : {
    "user" : "bob"
    "keyStore-keyPath": "src/test/resources/storage-test/tls/client/client.p12",
    "keyStore-keyPassword": "vitam2016",
    "trustStore-keyPath": "src/test/resources/storage-test/tls/server/truststore.jks",
    "trustStore-keyPassword": "tazerty",
    "referent": "true"
  }
}

To remove TLS support:

  • change “https” to “http” in baseUrl
{
  "id" : "default",
  "baseUrl" : "http://localhost:8088",
  "parameters" : {
    "user" : "bob"
  }
}

To define “referent” offer:

  • choose exactly one offer by adding parameter referent
[
  {
    "id" : "default",
    "baseUrl" : "http://localhost:8088",
    "parameters" : {
      "user" : "bob",
      "referent": "true"
    }
  },
  {
    "id" : "offer2",
    "baseUrl" : "http://localhost:8089",
    "parameters" : {
      "user" : "bob"
    }
  }
]
  • change storage-default-offer.json to disable authentication
jettyConfig: jetty-config-nossl.xml
authentication : false
  • change the jetty-config-nossl.xml of the offer (CAS Manager) to not include any TLS configuration
  1. static-strategy.json : Contient les informations de la stratégie de stockage (1 seule pour le moment). Ce fichier n’est pas à modifier.
{
 "id" : "default",
 "hot" : {
   "copy" : 1,
   "offers" : [
     {"id" : "default"}
   ]
 }
}
  1. server-identity.conf : identification du serveur
  2. logback.xml : configuration des logs

10.9.2.2. Configuration du driver de l’offre de stockage par défaut

Dans /vitam/data :

  1. fr.gouv.vitam.storage.offers.workspace.driver.DriverImpl : Il s’agit du fichier de persistence. Il contient l’identifiant de l’offre associée au driver (plus tard potentiellement DES offres associées) : “default”. Il DOIT être placé dans le répertoire défini dans le fichier driver-mapping.conf.

Dans /vitam/lib :

  1. storage-driver-default.jar : Il s’agit d’un jar contenant l’implémentation du Driver vitam pour l’offre “storage-offer-default”. Ce jar DOIT être placé dans le dossier défini dans la propriété driverLocation du fichier driver-location.conf. Par défaut il est chargé en tant que dépendance du projet.

10.9.2.3. Supervision du service

Contrôler le retour HTTP 200 et identité du serveur (cf server-identity.conf) sur l’URL <protocole web https ou https>://<host>:<port>/storage/v1/status