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.