Minio

Introduction

Minio est une plateforme de stockage d’objets open source, conçue pour offrir une solution de stockage distribué et évolutive.

Avec sa simplicité d’utilisation, ses performances élevées et sa compatibilité avec l’API S3 (Amazon Simple Storage Service), Minio est devenu un choix populaire pour le déploiement de stockage d’objets dans divers environnements, des déploiements sur site aux infrastructures hybrides.

Installation

Nous allons installer minio sur notre machine Truenas (pour rappel, celle-ci est sous la version core).

Dans Truenas, aller dans Plugins chercher puis sélectionner Minio :

plugin minio

Pour l’installation nous aurons juste besoin de nommer le plugin ainsi que la Jail associée et nous pouvons laisser le reste des paramètres par défauts :

add plugin minio

Suite à l’ajout du plugin Minio une Jail est créé.

Jail est une technologie de virtualisation légère propre à FreeBSD. Quand vous installez un plugin comme Minio sur TrueNAS, il est placé dans une jail pour plusieurs raisons :

  • Isolation : si Minio rencontre des problèmes ou des failles de sécurité, le reste du système TrueNAS reste protégé.

  • Sécurité : permet de réduire les risques de conflits et de vulnérabilités qui pourraient affecter d’autres services ou le système d’exploitation principal.

  • Facilité de Gestion : Les jails permettent de gérer facilement des applications spécifiques. Elles peuvent être démarrées, arrêtées, mises à jour et configurées indépendamment les unes des autres.

jail minio

Pour accéder à l’interface de Minio, il suffit de mettre dans la barre de recherche de votre navigateur l’adresse ip de votre Truenas (ici 10.0.0.15) suivi du port :9002 :

interface minio

Pour vous connecter à l’interface, vous pouvez retrouver l’identifiant et mot de passe root dans Post Install Notes au niveau de votre plugin. Pour y accéder, il faut aller dans Plugins et sur la ligne Minio cliquer sur > :

post install notes minio

Ajout d’un point de montage

Un point de montage est une façon de connecter un répertoire de stockage (dataset) de TrueNAS à un répertoire à l’intérieur de la jail où Minio est installé.

Pour commencer, nous allons d’abord ajouter un nouveau dataset dans notre pool :

dataset minio

Sans allumer Minio, nous allons choisir l’option “Mount Points” qui se trouve dans le même menu que la note de post installation :

add mount point minio

Pour la source, nous allons choisir le dataset préalablement créé. Pour la destination, nous allons choisir le chemin par défaut et ajouter un dossier minio grâce au PATH :

add mount point minio

Configuration web

Ajout d’un user

Nous allons créer un user qui aura tous les droits. Pour cela, nous devons nous rendre dans Administrator > Identity > Users :

add user minio

droits user minio

Ajout d’un bucket

Dans Minio, un bucket est un conteneur logique utilisé pour organiser et stocker des objets, similaire aux dossiers dans un système de fichiers classique.

Nous allons ajouter deux buckets un qui servira pour stocker les backup des machines contenues dans les datacenters et le second pour les volumes des pods de kubernetes.

Pour ajouter un bucket il faut aller dans l’onglet Buckets puis Create Bucket :

ajout d’un nouveau Bucket

liste des Buckets

Ajout d’une clé d’accès

Nous allons créer 3 access key, une pour chaque bucket et une permettant la réplication des buckets. Pour créer une clé d’accès, il faut se rendre dans l’onglet Access Keys puis Create access key.

liste des clés d’accès
Important

Sur les 3 Minios la clé de réplication des buckets doivent être identiques.

Réplication

Grâce au loadbalancer les backups ce font sur au moins un des 3 minios mais, pour que les 3 puissent avoir toutes les données à jour nous devons mettre en place une réplication de buckets.

Pour cela nous devons sur chaque bucket ajouter une règle de réplication pour chaque minios dont un veut répliquer le bucket. Voici le schéma de réplication :

schéma de réplication

Ajouter une règle de réplication

Pour ajouter une règle de réplication nous devons aller dans le bucket que nous voulons répliquer puis dans l’onglet Replication et choisir Add Replication Rule :

ajout d’une règle de réplication

Nous devons ajouter :

- l'url où se trouve le bucket cible
- l'access key créer préalablement sur le minio cible
- le secret de la clé 
- le bucket cible (/!\ il doit avoir le même nom que celui source)
- le mode de réplication
Warning

Dans un contexte entreprise il faudrait obligatoirement utiliser TLS

Voici le résultat des règles ajouter sur les 3 Minios :

  • Minio Datacenter 1

règles de réplication du Minio Datacenter 1
  • Minio Datacenter 2

règles de réplication du Minio Datacenter 2
  • Minio Datacenter Storage

règles de réplication du Minio Datacenter Storage

Nous effectuerons la même opération pour le bucket kubernetes.

Tester la réplication

Pour tester la réplication nous avons juste à lancer un job de backup et vérifier que les données qui sont importés dans un minio soit répliqué sur les 2 autres.