MinIO et les NAS (avec ou sans Docker)

MinIO est un système de stockage objet haute performance et gratuit (open source). Le logiciel permet de construire une infrastructure haute performance, multiplateforme et surtout compatible avec les API Amazon S3. Au-delà de pouvoir monter (gratuitement) un serveur compatible S3, MinIO peut aussi servir de passerelle. En effet, MinIO Gateway peut ajouter la compatibilité Amazon S3 à un NAS et il peut également s’installer avec un conteneur Docker.

Stockage objet

Tout d’abord, il est important de rappeler que le stockage objet ne s’adresse pas aux particuliers. Contrairement à ce que l’on retrouve habituellement sur nos ordinateurs et NAS avec le stockage de fichiers (données complètes et le stockage en bloc), il faut voir le stockage objet différemment. Il faut le considérer comme un paquet (une enveloppe) qui contiendra le fichier ainsi qu’un certain nombre d’informations : métadonnées enrichies, attribut et identifiant unique. Il n’y a aucun dossier, toutes les données se retrouvent les unes à la suite des autres. Cette structure à plat offre d’excellentes performances pour retrouver un fichier ou pour y accéder. Son architecture de stockage de données lui permet également d’être facile à étendre (scalabilité). Dès l’origine, le stockage objet a été pensé par et pour les développeurs. C’est pour cette raison que l’accès aux données se fait par Hypertext Transfer Protocol (HTTP) et à travers une API REST.

Cependant, le stockage objet a un inconvénient : la modification/écriture. Au lieu de faire une modification directement, il est nécessaire de générer un nouvel objet. Résultat, la modification des objets est très lente. C’est pour ces raisons que le stockage objet est très apprécié des plateformes Clouds (grand volume de données et peu de modification) et des professionnels.

MinIO

MinIO est une solution clé en main qui peut s’installer sur n’importe quelle machine. Le code source est ouvert et librement accessible à cette adresse. Pour le téléchargement, il suffit de se rendre sur le site officiel : Linux, Windows, macOS… mais aussi Docker et Kubernetes. Ne croyez pas qu’il s’agit d’un petit projet, MinIO est devenu très rapidement une référence dans le domaine et il est utilisé par de nombreux professionnels. Aujourd’hui, MinIO existe en 3 versions (gratuite, standard et entreprise).

Vous pourrez installer MinIO sur un serveur qui pourra fonctionner en mode autonome… mais il est aussi possible d’accéder à un NAS grâce à une passerelle : NAS Gateway. Vous pourrez exécuter plusieurs instances pour un même volume NAS partagé, comme une passerelle d’objets distribués. MinIO fonctionne alors comme un Proxy, effectuant la traduction des fonctions de stockage d’objets. Il existe également une autre passerelle fournie MinIO S3 Gateway 😉

Pour ceux qui le souhaiteraient, il est également possible d’utiliser MinIO directement sur un NAS via Docker (Synology, Qnap ou encore Asustor). L’image se trouve à cette adresse. La configuration du conteneur (avec l’image) est vraiment simple. Il n’y a qu’à paramétrer les 2 ports 9000 et 9001, ainsi que le dossier pour le stockage. Il faudra forcer la commande avant la fin de création du conteneur :

minio server /data --console-address ":9001"
Capture d’écran Minio Docker Synology

L’identifiant et le mot de passe par défaut sont : minioadmin