Recherchez-vous un logiciel de stockage d'objets à héberger sur votre serveur?

Je suppose oui?

Il y a beaucoup de stockage d'objets basé sur le cloud comme AWS S3 et d'autres I mentionné 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.

Mini E/S est un logiciel open source de stockage d'objets distribué populaire et compatible avec S3. Il est prêt pour l'entreprise et reconnu pour ses hautes performances.

Vous pouvez utiliser MinIO à partir d'une simple application Web vers de grandes charges de travail de distribution de données pour les applications d'analyse et d'apprentissage automatique. Cela peut aider dans de nombreux cas d'utilisation.

  • Stockage de fichiers plats standard
  • Distribution de données multi-cloud
  • Reprise après sinistre
  • L'analyse des données

Est-ce un logiciel volumineux?

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

L'architecture ci-dessous de leur site officiel.

Explorons certaines des fonctionnalités à noter.

  • Haute performance - dit le titre. Il est capable de lire / écrire à une vitesse d'environ 170 Go / s. C'est beaucoup!
  • Évolutif - optez pour le clustering et évoluez selon vos besoins
  • Cloud natif
  • Protection des données à l'aide de la méthode du code d'effacement
  • Cryptage multiple pris en charge, y compris AES-CBC, AES-256-GCM, ChaCha20
  • Compatible avec KMS commun
  • Identité de l'application et de l'utilisateur
  • Notification d'événement
  • Fédération utilisant etcd et CoreDNS

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

Installing MinIO Server

Vous pouvez installer sous Linux, Windows, macOS et via Kubernetes. Vous préférez construire via la source? Bien sûr, vous pouvez le faire si vous avez Golang installé.

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 souhaité. Peut être minio-server
  • Accédez au dossier nouvellement créé et exécutez la commande wget ci-dessous
wget https://dl.min.io/server/minio/release/linux-amd64/minio

Il téléchargera un fichier binaire et devrait ressembler à ceci.

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

Rendre le fichier exécutable avec chmod commander

chmod 755 minio

Commençons le MinIO en tant que serveur.

./minio server /data &

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

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

Endpoint:  http://xx.71.141.xx:9000 http://127.0.0.1:9000      
AccessKey: minioadmin 
SecretKey: minioadmin 

Browser Access:
   http://xx.71.141.xx:9000 http://127.0.0.1:9000      

Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide
   $ mc alias set myminio http://xx.71.141.xx:9000 minioadmin minioadmin

Object API (Amazon S3 compatible):
   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
Detected default credentials 'minioadmin:minioadmin', please change the credentials immediately using 'MINIO_ACCESS_KEY' and '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 tout, modifions les informations d'identification par défaut car elles exposent le risque. Il n'y a pas d'option pour modifier les informations d'identification d'administrateur via le navigateur mais les variables d'environnement.

Pour modifier les informations d'identification par défaut de MinIO, nous exporterons les clés d'accès et secrètes comme ci-dessous et démarrerons 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 des informations d'identification par défaut.

Essayons de télécharger quelques fichiers.

  • Cliquez sur + icône en bas à droite et créez un seau
  • J'ai téléchargé un fichier de test et immédiatement visible sur le navigateur

et, sur le serveur

[[email protected] geekflare]# ls -ltr
total 4
-rw-r--r-- 1 root root 11 Oct 19 11:09 MinIO-Test.txt
[[email protected] 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.

MinIO Client

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

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

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

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

[[email protected] ~]# ./mc
NAME:
  mc - MinIO Client for cloud storage and filesystems.

USAGE:
  mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]

COMMANDS:
  alias      set, remove and list aliases in configuration file
  ls         list buckets and objects
  mb         make a bucket
  rb         remove a bucket
  cp         copy objects
  mirror     synchronize object(s) to a remote site
  cat        display object contents
  head       display first 'n' lines of an object
  pipe       stream STDIN to an object
  share      generate URL for temporary access to an object
  find       search for objects
  sql        run sql queries on objects
  stat       show object metadata
  mv         move objects
  tree       list buckets and objects in a tree format
  du         summarize disk usage recursively
  retention  set retention for object(s)
  legalhold  manage legal hold for object(s)
  diff       list differences in object name, size, and date between two buckets
  rm         remove objects
  version    manage bucket versioning
  ilm        manage bucket lifecycle
  encrypt    manage bucket encryption config
  event      manage object notifications
  watch      listen for object notification events
  undo       undo PUT/DELETE operations
  policy     manage anonymous access to buckets and objects
  tag        manage tags for bucket and object(s)
  replicate  configure server side bucket replication
  admin      manage MinIO servers
  update     update mc to latest release
  
GLOBAL FLAGS:
  --autocompletion              install auto-completion for your shell
  --config-dir value, -C value  path to configuration folder (default: "/root/.mc")
  --quiet, -q                   disable progress bar display
  --no-color                    disable color theme
  --json                        enable JSON lines formatted output
  --debug                       enable debug output
  --insecure                    disable SSL certificate verification
  --help, -h                    show help
  --version, -v                 print the version
  
TIP:
  Use 'mc --autocompletion' to enable shell autocompletion

VERSION:
  RELEASE.2020-10-03T02-54-56Z
[[email protected] ~]#

Essayons de lister le fichier via lequel j'ai téléchargé mc commander.

Tout d'abord, nous devons définir l'alias sur le stockage que nous voulons administrer.

[[email protected] ~]# ./mc alias set minio http://xx.71.141.xx:9000/ geekflare geekpassword
Added `minio` successfully.
[[email protected] ~]#
  • minio est le nom d'alias. Vous pouvez changer cela pour ce que vous voulez.
  • Changez le point de terminaison HTTP en votre vrai
  • Modifiez l'accès et la clé secrète avec les vôtres

et, pour lister, utilisera la commande ls comme ci-dessous.

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

Génial. Ça marche!

Vous pouvez tout faire à travers le client. Vous pouvez non seulement gérer le stockage cloud MinIO, mais également GCS, AWS S3, Azure.

Check out this guide de démarrage rapide du client pour plus de détails.

MinIO SDK

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

MinIO Gateway

Ajoutez une passerelle MiniIO à S3, Azure, NAS, HDFS pour tirer parti du navigateur MinIO et de la mise en cache du disque.

Conclusion

Si vous recherchez un stockage d'objets privé, hybride ou multi-cloud, MinIO semble prometteur. Essayez et vous en tomberez amoureux. Pour tester les choses, vous pouvez obtenir VM MinIO de Kamatera ou installez-vous sur n'importe quel Serveur cloud.