wiki/HowtoMinIO.md
2022-11-10 18:11:17 +01:00

94 lines
3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
categories: sysadmin
title: Howto MinIO
...
- Documentation : <https://min.io/docs/minio/kubernetes/upstream/>
- Code : <https://github.com/minio/minio>
- Licence : [GNU AFFERO GENERAL PUBLIC LICENSE v3.0](https://github.com/minio/minio/blob/master/LICENSE)
- Language : Go
[MinIO](https://min.io/) est un système de stockage écrit en Go qui
fournit une API compatible avec [Amazon S3](/HowtoAmazon/Amazon-S3).
Comme Amazon S3, cest de lobject storage : chaque fichier inclus est
un objet.
Les objets sont alors stockés dans un seau (*bucket*).
Larchitecture est séparée en serveur, client (`mc`) et client SDK (qui
fournit lAPI) disponible en divers langages (Java, Go, Node.js, Python,
.NET, Haskel).
## Requis
Les [requis](https://min.io/docs/minio/kubernetes/upstream/operations/checklists/hardware.html) du système selon la documentation officielle :
- Assez de processeurs pour le hachage ;
- Assez de mémoire vive pour le cache disque (au moins 128 Go par nœud pour haute performance) ;
- Au moins quatre nœuds pour le stockage dobjets ;
- Au moins huit disques par serveur pour les données ;
## Installation
Des paquets Debian sont
[disponibles au téléchargement](https://min.io/download#/linux)
(mais sans dépôt).
Comme cest du Go, le paquet (serveur ou client) ne fournit quun
binaire, compatible a priori avec nimporte quelle version de Debian.
Cela permet de mettre en place rapidement le service dans un
environnement de développement.
* Serveur
~~~
# wget https://dl.min.io/server/minio/release/linux-amd64/minio_YYYYMMDDHHMMSS.0.0_amd64.deb
# apt install ./minio_YYYYMMDDHHMMSS.0.0_amd64.deb
~~~
* Client
~~~
# wget https://dl.min.io/client/mc/release/linux-amd64/mcli_YYYYMMDDHHMMSS.0.0_amd64.deb
# apt install ./mcli_YYYYMMDDHHMMSS.0.0_amd64.deb
~~~
## Utilisation
Un service systemd est fourni (`/etc/systemd/system/minio.service`),
mais pour un premier test, le serveur peut être lancé directement.
~~~
$ mkdir ~/minio
$ MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password minio server ~/minio --console-address ":9001"
~~~
Linterface web est alors disponible en <http://localhost:9001>.
Le client en ligne de commande peut aussi être configuré.
~~~
mcli alias set local http://localhost:9000 admin password
~~~
Il est maintenant possible de créer un espace de stockage (*bucket*) sur
le serveur, et dy placer un fichier.
~~~
$ mcli mb local/bucket
Bucket created successfully `local/bucket`.
$ echo data >> /tmp/test
$ mcli ls local
[2022-11-08 16:54:07 CET] 0B bucket/
$ mcli cp /tmp/test local/bucket
/tmp/test: 5 B / 5 B ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 78 B/s 0s
$ mcli ls local/bucket
[2022-11-08 16:57:46 CET] 5B STANDARD test
~~~
### Miroir
Pour faire une copie (synchro) des données dans `mon_alias` (serveur) vers le répertoires `/backup`.
~~~
mc --json mirror --exclude '*/un_repertoire/*' --exclude '*/un_autre/repertoire/*' --overwrite --remove mon_alias/ /backup/
~~~