Δοκιμάστε το MinIO – Αποθήκευση αντικειμένων υψηλών επιδόσεων συμβατό με το S3

Αναζητάτε λογισμικό αποθήκευσης αντικειμένων για φιλοξενία στον διακομιστή σας;

Υποθέτω ναι?

Υπάρχει άφθονος χώρος αποθήκευσης αντικειμένων που βασίζεται σε σύννεφο, όπως το AWS S3 και άλλα που ανέφερα εδώ. Ωστόσο, εάν χρειάζεται να φιλοξενήσετε τα δεδομένα σας στον διακομιστή σας, το MinIO μπορεί να σας βοηθήσει στα κέντρα δεδομένων σας.

MiniIO είναι δημοφιλές λογισμικό αποθήκευσης κατανεμημένων αντικειμένων ανοιχτού κώδικα και συμβατό με το S3. Είναι έτοιμο για επιχειρήσεις και γνωστό για την υψηλή του απόδοση.

Μπορείτε να χρησιμοποιήσετε το MinIO από μια απλή διαδικτυακή εφαρμογή έως μεγάλους φόρτους εργασίας διανομής δεδομένων για εφαρμογές ανάλυσης και μηχανικής εκμάθησης. Μπορεί να βοηθήσει σε πολλές περιπτώσεις χρήσης.

  • Τυπική επίπεδη αποθήκευση αρχείων
  • Διανομή δεδομένων πολλαπλών νέφους
  • Αποκατάστασης καταστροφών
  • Αναλύσεις δεδομένων

Είναι ογκώδες λογισμικό;

Όχι, είναι περίπου ~50MB και φιλικό προς το Kubernetes. Γράφει δεδομένα και μεταδεδομένα ως αντικείμενο. Αυτό αφαιρεί την εξάρτηση από την ύπαρξη πρόσθετης βάσης δεδομένων ή λογισμικού για την αποθήκευση μεταδεδομένων και τη βελτίωση της απόδοσης.

Η παρακάτω αρχιτεκτονική από τον επίσημο ιστότοπο τους.

Ας εξερευνήσουμε μερικά από τα χαρακτηριστικά που αξίζει να σημειωθούν.

  • Υψηλή απόδοση – λέει ο τίτλος. Έχει δυνατότητα ανάγνωσης/εγγραφής με ταχύτητα ~170 GB/s. Είναι πολύ!
  • Scalable – προχωρήστε σε ομαδοποίηση και κλιμάκωση όπως χρειάζεστε
  • Cloud-native
  • Προστασία δεδομένων με χρήση της μεθόδου κωδικού διαγραφής
  • Υποστηρίζεται πολλαπλή κρυπτογράφηση, συμπεριλαμβανομένων των AES-CBC, AES-256-GCM, ChaCha20
  • Συμβατό με κοινό KMS
  • Ταυτότητα εφαρμογής και χρήστη
  • Ειδοποίηση εκδήλωσης
  • Συνένωση χρησιμοποιώντας etcd και CoreDNS

Το MinIO είναι μια καλή επιλογή για αποθήκευση που ορίζεται από λογισμικό. Ας εξερευνήσουμε πώς να ρυθμίσετε τα πράγματα.

Εγκατάσταση διακομιστή MinIO

Μπορείς εγκαθιστώ σε Linux, Windows, macOS και μέσω Kubernetes. Προτιμάτε την κατασκευή μέσω πηγής; Σίγουρα, μπορείτε να το κάνετε εάν έχετε εγκαταστήσει το Golang.

  Πώς να αποκτήσετε πρόσβαση σε αποκλεισμένους ιστότοπους σε υπολογιστή ή φορητή συσκευή

Για αυτήν την επίδειξη, θα εγκαταστήσω στο CentOS που φιλοξενείται στο Καματέρα.

  • Συνδεθείτε στον διακομιστή
  • Δημιουργήστε ένα φάκελο κάτω από το επιθυμητό σύστημα αρχείων. Ίσως mini-server
  • Πλοηγηθείτε στον νέο φάκελο και εκτελέστε την παρακάτω εντολή wget
wget https://dl.min.io/server/minio/release/linux-amd64/minio

Θα κατεβάσει ένα δυαδικό αρχείο και θα πρέπει να μοιάζει με αυτό.

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

Κάντε το αρχείο εκτελέσιμο με την εντολή chmod

chmod 755 minio

Ας ξεκινήσουμε το MinIO ως διακομιστής.

./minio server /data &

Τα /data που αναφέρονται παραπάνω είναι το σύστημα αρχείων όπου το MinIO θα αποθηκεύσει τα αντικείμενα.

Η εκκίνηση είναι γρήγορη και θα πρέπει να δείτε τις πληροφορίες εκκίνησης όπως παρακάτω.

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'

Ας αποκτήσουμε πρόσβαση στο MinIO στο πρόγραμμα περιήγησης με προεπιλεγμένα διαπιστευτήρια – minioadmin:minioadmin

Η διεπαφή είναι πολύ προσεγμένη και καθαρή, αλλά πριν από όλα, ας αλλάξουμε τα προεπιλεγμένα διαπιστευτήρια καθώς εκθέτει τον κίνδυνο. Δεν υπάρχει επιλογή αλλαγής των διαπιστευτηρίων διαχειριστή μέσω του προγράμματος περιήγησης αλλά μεταβλητών περιβάλλοντος.

Για να αλλάξετε τα προεπιλεγμένα διαπιστευτήρια MinIO, θα εξαγάγουμε το κλειδί πρόσβασης και το μυστικό κλειδί όπως παρακάτω και θα ξεκινήσουμε το MinIO.

export MINIO_ACCESS_KEY=grtechpc.org
export MINIO_SECRET_KEY=geekpassword
./minio server /data &

Τώρα, δεν πρέπει να παραπονιέται για προειδοποίηση εντοπισμού προεπιλεγμένων διαπιστευτηρίων.

Ας προσπαθήσουμε να ανεβάσουμε μερικά αρχεία.

  • Κάντε κλικ στο εικονίδιο + στο κάτω δεξιό μέρος και δημιουργήστε έναν κάδο
  • Ανέβασα ένα δοκιμαστικό αρχείο και είναι άμεσα ορατό στο πρόγραμμα περιήγησης
  Το μεγαλύτερο σημαίνει πραγματικά καλύτερο;

και στον διακομιστή

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

Εάν κάνετε κλικ στο κουμπί κοινής χρήσης αρχείου στο πρόγραμμα περιήγησης, θα λάβετε τον σύνδεσμο με δυνατότητα κοινής χρήσης και μια επιλογή για να ορίσετε τη λήξη.

Πελάτης MinIO

Ο πελάτης MinIO είναι κάτι περισσότερο από aws-cli που σας επιτρέπει να διαχειρίζεστε τον αποθηκευτικό χώρο. Ο πελάτης είναι διαθέσιμος για Windows, macOS και Linux.

Για εγκατάσταση σε Linux, εκτελέστε τα παρακάτω.

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

Εκτελέστε την εντολή mc για να δείτε τη βοήθεια της εντολής.

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

Ας προσπαθήσουμε να παραθέσουμε το αρχείο που ανέβασα μέσω της εντολής mc.

  Πώς να χρησιμοποιήσετε εκθέτες στο Excel

Αρχικά, πρέπει να ορίσουμε το ψευδώνυμο στον χώρο αποθήκευσης που θέλουμε να διαχειριστούμε.

[[email protected] ~]# ./mc alias set minio http://xx.71.141.xx:9000/ grtechpc.org geekpassword
Added `minio` successfully.
[[email protected] ~]#
  • Minio είναι το ψευδώνυμο. Μπορείτε να το αλλάξετε σε ό,τι θέλετε.
  • Αλλάξτε το τελικό σημείο HTTP στο πραγματικό σας
  • Αλλάξτε την πρόσβαση και το μυστικό κλειδί με το δικό σας

και, στη λίστα, θα χρησιμοποιήσει την εντολή ls όπως παρακάτω.

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

Μεγάλος. δουλεύει!

Μπορείτε να κάνετε κυριολεκτικά τα πάντα μέσω του πελάτη. Όχι μόνο μπορείτε να διαχειριστείτε τον χώρο αποθήκευσης στο σύννεφο MinIO, αλλά και τα GCS, AWS S3, Azure.

Ελέγξτε αυτό οδηγός γρήγορης εκκίνησης πελάτη Για περισσότερες πληροφορίες.

MinIO SDK

Ανάλογα με τη στοίβα εφαρμογών σας, μπορείτε να αλληλεπιδράσετε με την αποθήκευση αντικειμένων μέσω προγραμματισμού χρησιμοποιώντας το SDK. Υποστηρίζει Go, Python, Node.js, .NET, Haskell και Java.

MinIO Gateway

Προσθέστε την πύλη MiniIO στα S3, Azure, NAS, HDFS για να επωφεληθείτε από το πρόγραμμα περιήγησης MinIO και την προσωρινή αποθήκευση δίσκου.

συμπέρασμα

Αν ψάχνετε για ιδιωτική, υβριδική ή πολλαπλή αποθήκευση αντικειμένων, τότε το MinIO φαίνεται πολλά υποσχόμενο. Κάντε μια δοκιμή και θα το ερωτευτείτε. Για να δοκιμάσετε πράγματα, μπορείτε να πάρετε MinIO VM της Καματέρας ή εγκαταστήστε τον εαυτό σας σε οποιονδήποτε διακομιστή Cloud.