Vous cherchez un logiciel de stockage d’objets à héberger sur votre serveur ?

Je suppose que oui ?

Il existe de nombreuses solutions de stockage d’objets basées sur le cloud, comme AWS S3 et d’autres que j’ai mentionnées ici. Cependant, si vous avez besoin d’héberger vos données sur votre serveur, MinIO peut vous aider dans vos centres de données.

MiniIO est un logiciel open-source de stockage d’objets distribués populaire et compatible avec S3. Il est prêt pour l’entreprise et connu pour ses hautes performances.

Vous pouvez utiliser MinIO depuis une simple application web jusqu’aux charges de travail de distribution de données volumineuses pour les applications d’analyse et d’apprentissage automatique. Il peut vous aider dans de nombreux cas d’utilisation.

  • Stockage de fichiers plats standard
  • Distribution de données multi-cloud
  • Reprise après sinistre
  • Analyse de données

S’agit-il d’un logiciel volumineux ?

Non, il ne pèse qu’environ 50 Mo et est compatible avec Kubernetes. Il écrit les données et les métadonnées en tant qu’objet. Cela supprime la dépendance d’une base de données ou d’un logiciel supplémentaire pour stocker les métadonnées et améliorer les performances.

L’architecture ci-dessous provient de leur site officiel.

Examinons quelques-unes des caractéristiques qui méritent d’être soulignées.

  • Haute performance – le titre l’indique. Il est capable de lire/écrire à une vitesse de ~170GB/s. C’est beaucoup !
  • Évolutif – optez pour le clustering et faites évoluer votre système en fonction de vos besoins
  • Natif de l’informatique en nuage
  • Protection des données par la méthode du code d’effacement
  • Chiffrement multiple pris en charge, y compris AES-CBC, AES-256-GCM, ChaCha20
  • Compatible avec les KMS courants
  • Identité de l’application et de l’utilisateur
  • Notification d’événements
  • Fédération utilisant etcd et CoreDNS

MinIO est un bon choix pour le stockage défini par logiciel. Voyons comment configurer les choses.

Installation du serveur MinIO

Vous pouvez l’installer sur Linux, Windows, macOS et via Kubernetes. Vous préférez construire à partir des sources ? Bien sûr, vous pouvez le faire si vous avez installé Golang.

Pour cette démonstration, je vais installer sur CentOS qui est hébergé sur Kamatera.

  • Connectez-vous au serveur
  • Créez un dossier sous le système de fichiers désiré. Peut-être minio-server
  • Naviguez jusqu’au dossier nouvellement créé et exécutez la commande wget ci-dessous
wget https://dl.min.io/server/minio/release/linux-amd64/minio

Un fichier binaire sera téléchargé et devrait ressembler à ceci.

-rw-r--r-- 1 root root 48271360 Oct 18 21:57 minio

Rendez le fichier exécutable à l’aide de la commande chmod

chmod 755 minio

Démarrons MinIO en tant que serveur.

./minio server /data &

/data mentionné ci-dessus est le système de fichiers où MinIO stockera les objets.

Le démarrage est rapide et vous devriez voir les informations de démarrage comme ci-dessous.

Point de terminaison : http://xx.71.141.xx:9000 http://127.0.0.1:9000      
AccessKey : minioadmin 
SecretKey : minioadmin 

Accès au navigateur :
   http://xx.71.141.xx:9000 http://127.0.0.1:9000      

Accès à la ligne de commande : https://docs.min.io/docs/minio-client-quickstart-guide
   $ mc alias set myminio http://xx.71.141.xx:9000 minioadmin minioadmin

API Objet (compatible avec Amazon S3) :
   Go : https://docs.min.io/docs/golang-client-quickstart-guide
   Java : https://docs.min.io/docs/java-client-quickstart-guide
   Python : https://docs.min.io/docs/python-client-quickstart-guide
   JavaScript : https://docs.min.io/docs/javascript-client-quickstart-guide
   .NET : https://docs.min.io/docs/dotnet-client-quickstart-guide
Les informations d'identification par défaut détectées sont 'minioadmin:minioadmin', veuillez les modifier immédiatement en utilisant 'MINIO_ACCESS_KEY' et 'MINIO_SECRET_KEY'

Accédons à MinIO sur le navigateur avec les informations d’identification par défaut – minioadmin:minioadmin

L’interface est très soignée et propre mais avant toute chose, changeons l’identifiant par défaut car il expose au risque. Il n’y a pas d’option pour changer l’identifiant de l’administrateur par le biais du navigateur, mais des variables d’environnement.

Pour modifier l’identifiant par défaut de MinIO, nous allons exporter la clé d’accès et la clé secrète comme ci-dessous et démarrer MinIO.

export MINIO_ACCESS_KEY=geekflare
export MINIO_SECRET_KEY=geekpassword
./minio server /data &

Maintenant, il ne devrait pas se plaindre de l’avertissement de détection de l’identifiant par défaut.

Essayons de télécharger quelques fichiers.

  • Cliquez sur l’icône en bas à droite et créez un bucket
  • J’ai téléchargé un fichier de test et il est immédiatement visible dans le navigateur

et, sur le serveur

[root@gf-lab geekflare]# ls -ltr
total 4
-rw-r--r-- 1 root root 11 Oct 19 11:09 MinIO-Test.txt
[root@gf-lab geekflare]#

Si vous cliquez sur le bouton de partage de fichiers dans le navigateur, vous obtiendrez le lien partageable et une option pour définir l’expiration.

Client MinIO

Le client MinIO est plus qu’un aws-cli qui vous permet de gérer le stockage. Le client est disponible pour Windows, macOS et Linux.

Pour l’installer sur Linux, exécutez ce qui suit.

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod 755 mc

Exécutez la commande mc pour voir l’aide de la commande.

[root@gf-lab ~]# ./mc
NOM :
  mc - Client MinIO pour le stockage en nuage et les systèmes de fichiers.

UTILISATION :
  mc [FLAGS] COMMANDE [FLAGS DE COMMANDE | -h] [ARGUMENTS...]

COMMANDES :
  alias définir, supprimer et lister les alias dans le fichier de configuration
  ls liste les seaux et les objets
  mb créer un seau
  rb supprimer un seau
  cp copier des objets
  mirror synchroniser un ou plusieurs objets sur un site distant
  cat afficher le contenu de l'objet
  head affiche les 'n' premières lignes d'un objet
  pipe stream STDIN vers un objet
  share générer une URL pour un accès temporaire à un objet
  find recherche d'objets
  sql exécuter des requêtes sql sur les objets
  stat afficher les métadonnées de l'objet
  mv déplacer des objets
  tree répertorie les godets et les objets sous forme d'arbre
  du résume l'utilisation du disque de manière récursive
  retention définir la rétention d'un ou de plusieurs objets
  legalhold gérer la rétention légale d'un ou de plusieurs objets
  diff liste les différences de nom d'objet, de taille et de date entre deux godets
  rm supprimer des objets
  version gérer le versionnement des seaux
  ilm gérer le cycle de vie du seau
  encrypt gérer la configuration du chiffrement du seau
  event gérer les notifications d'objets
  watch écouter les événements de notification d'objets
  undo annuler les opérations PUT/DELETE
  policy gérer l'accès anonyme aux seaux et aux objets
  tag gérer les tags pour les seaux et les objets
  replicate configure la réplication des seaux côté serveur
  admin gérer les serveurs MinIO
  update mettre à jour mc vers la dernière version
  
GLOBAL FLAGS :
  --autocompletion installe l'autocomplétion pour votre shell
  --config-dir valeur, -C valeur chemin du dossier de configuration (par défaut : "/root/.mc")
  --quiet, -q désactive l'affichage de la barre de progression
  --no-color désactive le thème de couleur
  --json active la sortie formatée de lignes JSON
  --debug activer la sortie de débogage
  --insecure désactive la vérification du certificat SSL
  --help, -h afficher l'aide
  --version, -v affiche la version
  
ASTUCE :
  Utilisez 'mc --autocompletion' pour activer l'autocomplétion de l'interpréteur de commandes

VERSION :
  RELEASE.2020-10-03T02-54-56Z
[root@gf-lab ~]#

Essayons de lister le fichier que j’ai téléchargé avec la commande mc.

Tout d’abord, nous devons définir l’alias du stockage que nous voulons administrer.

[root@gf-lab ~]# ./mc alias set minio http://xx.71.141.xx:9000/ geekflare geekpassword
Nous avons ajouté `minio` avec succès.
[root@gf-lab ~]#
  • minio est le nom de l’alias. Vous pouvez le changer pour ce que vous voulez.
  • Changez le point de terminaison HTTP pour votre vrai point de terminaison
  • Changez la clé d’accès et la clé secrète avec les vôtres

et, pour faire la liste, vous utiliserez la commande ls comme ci-dessous.

[root@gf-lab ~]# ./mc ls --recursive minio 
[2020-10-19 11:09:06 UTC] 11B geekflare/MinIO-Test.txt
[root@gf-lab ~]#

Génial, ça marche !

Vous pouvez faire littéralement tout ce que vous voulez à travers le client. Vous pouvez non seulement gérer le stockage en nuage de MinIO, mais aussi GCS, AWS S3, Azure.

Consultez le guide de démarrage rapide du client pour plus de détails.

SDK MinIO

En fonction de votre pile d’applications, vous pouvez interagir avec le stockage d’objets de manière programmatique à l’aide du SDK. Il prend en charge Go, Python, Node.js, .NET, Haskell et Java.

Passerelle MinIO

Ajoutez une passerelle MiniIO à S3, Azure, NAS, HDFS pour profiter du navigateur MinIO et de la mise en cache des disques.

Conclusion

Si vous êtes à la recherche d’un stockage d’objets privé, hybride ou multi-cloud, MinIO semble prometteur. Essayez-le et vous en tomberez amoureux. Pour tester les choses, vous pouvez obtenir la VM MinIO de Kamatera ou l’installer vous-même sur n’importe quel serveur Cloud.