technique:adminsys:backup:garage

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
technique:adminsys:backup:garage [2023/11/04 19:09] – Création limaantotechnique:adminsys:backup:garage [2023/11/04 19:53] (Version actuelle) – ajout bucket limaanto
Ligne 1: Ligne 1:
 # Garage # Garage
  
-## Concepts et rappels+[Garage](https://garagehq.deuxfleurs.fr) est un outil développé par [deuxfleurs](https://deuxfleurs.fr/) un camarade chaton français depuis quelques années. Il s'agit d'un système de stockage de données réparties permettant d'exposer une API S3 (de l'object storage, techno originalement par Amazon mais implémentée par plein d'autres acteurs depuis). 
 + 
 +Le principe est simple. `garage server` démarre un *nœud* garage à l'aide d'un simple [fichier de configuration](https://garagehq.deuxfleurs.fr/documentation/quick-start/#generating-a-first-configuration-file). Ce nœud peut communiquer avec d'autres nœuds faisant partie du même *cluster*, dont l'organisation est décrite par un *layout*. Celui-ci indique pour chaque nœud du cluster 
 + 
 +- son id (qui sera unique entre plusieurs exécutions) 
 +- où il se trouve physiquement 
 +- combien d'espace il expose (la *capacité*) 
 +- comment y accéder 
 + 
 +Lorsque des données sont ajoutées au cluster, garage duplique `n` fois la donnée (`n` configurable mais souvent 2 ou 3) puis cherche à répartir les `n` copies au travers des différents nœuds. Cela se fait proportionnellement à leur capacité annoncée en privilégiant les zones physiques différentes. 
 + 
 +On peut ensuite interagir avec le stockage du cluster par l’intermédiaire de *buckets S3*
  
-TODO 
  
 ## Implémentation à Picasoft ## Implémentation à Picasoft
Ligne 10: Ligne 20:
  
 Il s'agit d'un simple service docker compose, décrit par [ce fichier](https://gitlab.utc.fr/picasoft/projets/services/garage/-/blob/main/docker-compose.yml). Le service n'a rien de très original, si ce n'est qu'il ne passe pas par Traefik car le protocole utilisé par Garage (RPC) n'a pas l'air de supporter de passer par du HTTPS redirigé. Du moment qu'un autre service ne souhaite pas accéder au port 3901, ça ne devrait pas poser de problèmes pour autant. Il s'agit d'un simple service docker compose, décrit par [ce fichier](https://gitlab.utc.fr/picasoft/projets/services/garage/-/blob/main/docker-compose.yml). Le service n'a rien de très original, si ce n'est qu'il ne passe pas par Traefik car le protocole utilisé par Garage (RPC) n'a pas l'air de supporter de passer par du HTTPS redirigé. Du moment qu'un autre service ne souhaite pas accéder au port 3901, ça ne devrait pas poser de problèmes pour autant.
 +
 +### Création du Layout
 +
 +Lors du premier lancement du service, notre nœud se connecte au cluster à l'aide de ses `bootstrap_peers`. Dans notre cas il s'agit du nœud [g1.garage.rhizome-fait.net](https://wiki.rhizome-fai.net/bookstack/link/11#bkmrk-g1.garage.rhizome-fa).
 +
 +On peut alors faire un `garage status` pour vérifier que la connexion s'est bien faite, ce qui devrait ressembler à :
 +```
 +==== HEALTHY NODES ====
 +ID                Hostname  Address              Tags                   Zone               Capacity   DataAvail
 +xxxxxxxxxxxxxxxx  g1        xxx.xxx.xxx.xxx:xxxx [g1.rhizome]           rhz_dc             XXXXXX GB  XXXXXX GB (XXXX%)
 +... AUTRES NŒUDS ...
 +xxxxxxxxxxxxxxxx  pica02    xxx.xxx.xxx.xxx:xxxx NO ROLE ASSIGNED
 +```
 +
 +La partie `NO ROLE ASSIGNED` est normale. Il faut auparavant ajouter notre nœud au *layout*.
 +
 +Pour ce faire, on peut utiliser une commande tel que `garage layout assign xxxxxxxxxxxxxxxx -z picasoft_toulouse -c 1T -t garage.picasoft.net` où `xxxxxxxxxxxxxxxx` est l'ID de notre nœud tel qu'indiqué par la commande `garage status`.
 +Après avoir vérifié que tout as l'air ok avec `garage layout show`, on peut confirmer le nouveau layout avec la commande `garage layout apply --version XXX` avec `XXX` le numéro de la nouvelle version (qui est à incrémenter à chaque fois, mais `garage layout show` devrait indiqué le chiffre à rentrer).
 +
 +On devrait alors obtenir un status de la forme :
 +```
 +==== HEALTHY NODES ====
 +ID                Hostname  Address              Tags                   Zone               Capacity   DataAvail
 +xxxxxxxxxxxxxxxx  g1        xxx.xxx.xxx.xxx:xxxx [g1.rhizome]           rhz_dc             XXXXXX GB  XXXXXX GB (XXXX%)
 +... AUTRES NŒUDS ...
 +xxxxxxxxxxxxxxxx  pica02    xxx.xxx.xxx.xxx:xxxx [garage.picasoft.net]  picasoft_toulouse  1000.0 GB  XXXXXX GB (XXXX%)
 +```
 +
 +### Création des buckets
 +
 +Afin d'exposer notre cluster à [restic](technique:adminsys:backup:install_and_config), il faut d'abord créer un bucket et une clé associée à l'aide des commandes suivantes, tirées de la [doc garage](https://garagehq.deuxfleurs.fr/documentation/quick-start/#creating-buckets-and-keys):
 +```
 +garage bucket create picasoft-backups
 +garage key create picasoft-backups-key
 +garage bucket allow --read --write --owner picasoft-backups --key picasoft-backups-key
 +```
 +
 +Ce qui nous donne les informations nécessaires pour se connecter au bucket.
  • technique/adminsys/backup/garage.1699121355.txt.gz
  • de limaanto