2022-11-08 17:57:59 +01:00
|
|
|
|
---
|
|
|
|
|
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, c’est de l’object storage : chaque fichier inclus est
|
|
|
|
|
un objet.
|
|
|
|
|
Les objets sont alors stockés dans un seau (*bucket*).
|
|
|
|
|
|
|
|
|
|
L’architecture est séparée en serveur, client (`mc`) et client SDK (qui
|
|
|
|
|
fournit l’API) 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 d’objets ;
|
|
|
|
|
- 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 c’est du Go, le paquet (serveur ou client) ne fournit qu’un
|
|
|
|
|
binaire, compatible a priori avec n’importe 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
|
|
|
|
|
~~~
|
|
|
|
|
|
2023-07-04 18:17:43 +02:00
|
|
|
|
## Administration
|
|
|
|
|
|
|
|
|
|
> Cette documentation n’aborde que l’administration en ligne de commande.
|
|
|
|
|
|
|
|
|
|
> On suppose que ALIAS est un alias configuré avec un accès administrateur.
|
|
|
|
|
|
|
|
|
|
### Créer un utilisateur
|
|
|
|
|
|
|
|
|
|
~~~
|
|
|
|
|
$ mc admin user add ALIAS UTILISATEUR MOTDEPASSE
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
> Le mot de passe doit faire entre 8 et 40 caractères.
|
|
|
|
|
>
|
|
|
|
|
> ~~~
|
|
|
|
|
> $ apg -M CN -m 40 -n 1
|
|
|
|
|
> ~~~
|
|
|
|
|
|
2022-11-08 17:57:59 +01:00
|
|
|
|
## 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"
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
L’interface 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 d’y 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
|
|
|
|
|
~~~
|
|
|
|
|
|
2022-11-10 18:11:17 +01:00
|
|
|
|
### Miroir
|
2022-11-08 17:57:59 +01:00
|
|
|
|
|
2022-11-10 18:11:17 +01:00
|
|
|
|
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/
|
|
|
|
|
~~~
|