Prova MinIO: storage di oggetti ad alte prestazioni conforme a S3 self-hosted

Stai cercando un software di storage di oggetti da ospitare sul tuo server?

Penso di si?

C’è un sacco di storage di oggetti basato su cloud come AWS S3 e altri che ho menzionato qui. Tuttavia, se hai bisogno di ospitare i tuoi dati sul tuo server, MinIO può aiutarti all’interno dei tuoi data center.

MiniIO è un popolare software di archiviazione di oggetti distribuito open source e compatibile con S3. È pronto per le aziende e noto per le sue elevate prestazioni.

Puoi utilizzare MinIO da una semplice applicazione Web a grandi carichi di lavoro di distribuzione dei dati per applicazioni di analisi e machine learning. Può aiutare in molti casi d’uso.

  • Archiviazione di file flat standard
  • Distribuzione dei dati multi-cloud
  • Ripristino di emergenza
  • Analisi dei dati

È un software ingombrante?

No, sono solo circa 50 MB e compatibili con Kubernetes. Scrive dati e metadati come un oggetto. Ciò elimina la dipendenza dall’avere un database o un software aggiuntivo per archiviare i metadati e migliorare le prestazioni.

L’architettura sottostante dal loro sito ufficiale.

Esploriamo alcune delle caratteristiche degne di nota.

  • Ad alte prestazioni – dice il titolo. È in grado di leggere/scrivere alla velocità di ~170 GB/s. Questo è molto!
  • Scalabile: scegli il clustering e la scalabilità di cui hai bisogno
  • Nativo del cloud
  • Protezione dei dati tramite il metodo del codice di cancellazione
  • Crittografia multipla supportata tra cui AES-CBC, AES-256-GCM, ChaCha20
  • Compatibile con i comuni KMS
  • Applicazione e identità dell’utente
  • Notifica evento
  • Federazione utilizzando etcd e CoreDNS

MinIO è una buona scelta per lo storage definito dal software. Esploriamo come impostare le cose.

Installazione del server MinIO

Puoi installare su Linux, Windows, macOS e tramite Kubernetes. Preferisci costruire attraverso la fonte? Certo, puoi farlo se hai installato Golang.

Per questa dimostrazione, installerò su CentOS che è ospitato su Kamera.

  • Accedi al server
  • Crea una cartella nel file system desiderato. Forse minio-server
  • Passare alla cartella appena creata ed eseguire il comando wget di seguito
wget https://dl.min.io/server/minio/release/linux-amd64/minio

Scaricherà un file binario e dovrebbe assomigliare a questo.

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

Rendi il file eseguibile con il comando chmod

chmod 755 minio

Avviamo il MinIO come server.

./minio server /data &

/data menzionato sopra è il file system in cui MinIO memorizzerà gli oggetti.

L’avvio è rapido e dovresti vedere le informazioni di avvio come di seguito.

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'

Accediamo a MinIO sul browser con le credenziali predefinite – minioadmin:minioadmin

L’interfaccia è molto ordinata e pulita, ma prima di tutto, cambiamo le credenziali predefinite in quanto espongono il rischio. Non è possibile modificare le credenziali di amministratore tramite browser ma variabili di ambiente.

Per modificare le credenziali predefinite MinIO, esporteremo l’accesso e la chiave segreta come di seguito e avvieremo il MinIO.

export MINIO_ACCESS_KEY=winadmin.it
export MINIO_SECRET_KEY=geekpassword
./minio server /data &

Ora, non dovrebbe lamentarsi dell’avviso di rilevamento delle credenziali predefinito.

Proviamo a caricare alcuni file.

  • Fai clic sull’icona + in basso a destra e crea un bucket
  • Ho caricato un file di prova e subito visibile sul browser

e, sul server

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

Se fai clic sul pulsante di condivisione file sul browser, otterrai il link condivisibile e un’opzione per impostare la scadenza.

Cliente MiniIO

Il client MinIO è più di aws-cli che ti consente di gestire lo storage. Il client è disponibile per Windows, macOS e Linux.

Per installare su Linux, eseguire quanto segue.

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

Eseguire il comando mc per visualizzare la guida del comando.

[[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] ~]#

Proviamo ad elencare il file che ho caricato tramite il comando mc.

Innanzitutto, dobbiamo impostare l’alias sullo spazio di archiviazione che vogliamo amministrare.

[[email protected] ~]# ./mc alias set minio http://xx.71.141.xx:9000/ winadmin.it geekpassword
Added `minio` successfully.
[[email protected] ~]#
  • minio è il nome alias. Puoi cambiarlo in quello che vuoi.
  • Cambia l’endpoint HTTP in quello reale
  • Cambia accesso e chiave segreta con la tua

e, per elencare, utilizzerà il comando ls come di seguito.

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

Grande. funziona!

Puoi fare letteralmente ogni cosa attraverso il client. Non solo puoi gestire il cloud storage MinIO ma anche GCS, AWS S3, Azure.

Controlla questo guida rapida del cliente per ulteriori dettagli.

MiniIO SDK

A seconda dello stack dell’applicazione, puoi interagire con l’object storage a livello di programmazione utilizzando l’SDK. Supporta Go, Python, Node.js, .NET, Haskell e Java.

Porta MiniIO

Aggiungi il gateway MiniIO a S3, Azure, NAS, HDFS per sfruttare il browser MinIO e la memorizzazione nella cache del disco.

Conclusione

Se stai cercando storage di oggetti privato, ibrido o multi-cloud, MinIO sembra promettente. Fai un tentativo e te ne innamorerai. Per testare le cose, puoi ottenere La macchina virtuale MinIO di Kamatera o installa te stesso su qualsiasi server Cloud.