Probeer MinIO – Zelfgehoste S3-compatibele hoogwaardige objectopslag

Bent u op zoek naar objectopslagsoftware om op uw server te hosten?

Ik denk van wel?

Er is voldoende cloudgebaseerde objectopslag zoals AWS S3 en andere die ik hier heb genoemd. Als u uw gegevens echter op uw server moet hosten, kan MinIO u helpen binnen uw datacenters.

MiniIO is open-source, populaire software voor gedistribueerde objectopslag en compatibel met S3. Het is bedrijfsklaar en staat bekend om zijn hoge prestaties.

U kunt MinIO gebruiken van een eenvoudige webapplicatie tot grote datadistributieworkloads voor analyse- en machine learning-applicaties. Het kan in veel gebruikssituaties helpen.

  • Standaard platte bestandsopslag
  • Multi-cloud gegevensdistributie
  • Herstel na een ramp
  • Gegevensanalyse

Is het omvangrijke software?

Nee, het is slechts ongeveer 50 MB en Kubernetes-vriendelijk. Het schrijft data en metadata als een object. Dit verwijdert de afhankelijkheid van het hebben van een extra database of software om metadata op te slaan en de prestaties te verbeteren.

De onderstaande architectuur van hun officiële site.

Laten we eens kijken naar enkele van de vermeldenswaardige functies.

  • High-performance – zegt de titel. Het is in staat om te lezen/schrijven met een snelheid van ~170GB/s. Dat is veel!
  • Schaalbaar – ga voor clustering en schaal naar behoefte
  • Cloud-native
  • Gegevensbescherming met behulp van de Erasure-codemethode
  • Meerdere encryptie ondersteund waaronder AES-CBC, AES-256-GCM, ChaCha20
  • Compatibel met gewone KMS
  • Applicatie- en gebruikersidentiteit
  • Evenementmelding
  • Federatie met behulp van etcd en CoreDNS

MinIO is een goede keuze voor softwaregedefinieerde opslag. Laten we eens kijken hoe we dingen kunnen instellen.

MinIO-server installeren

Jij kan installeren op Linux, Windows, macOS en via Kubernetes. Liever bouwen via de bron? Natuurlijk kan dat als je Golang hebt geïnstalleerd.

Voor deze demonstratie zal ik installeren op CentOS waarop wordt gehost Kamatera.

  • Log in op de server
  • Maak een map onder het gewenste bestandssysteem. Misschien minio-server
  • Navigeer naar de nieuw gemaakte map en voer de onderstaande wget-opdracht uit
wget https://dl.min.io/server/minio/release/linux-amd64/minio

Het zal een binair bestand downloaden en zou er zo uit moeten zien.

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

Maak het bestand uitvoerbaar met de opdracht chmod

chmod 755 minio

Laten we de MinIO starten als een server.

./minio server /data &

/data hierboven vermeld is het bestandssysteem waar MinIO de objecten zal opslaan.

  Chromium-aangedreven rand van Microsoft heeft een donkere modus, hier is hoe u deze kunt inschakelen

Het starten gaat snel en je zou de opstartinformatie moeten zien zoals hieronder.

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'

Laten we MinIO in de browser openen met standaardreferenties – minioadmin:minioadmin

De interface is erg netjes en schoon, maar laten we eerst de standaardreferentie wijzigen, omdat deze het risico blootlegt. Er is geen optie om de beheerdersreferenties via de browser te wijzigen, maar via omgevingsvariabelen.

Om de standaardinloggegevens van MinIO te wijzigen, exporteren we de toegangs- en geheime sleutel zoals hieronder en starten we de MinIO.

export MINIO_ACCESS_KEY=epcdream.nl
export MINIO_SECRET_KEY=geekpassword
./minio server /data &

Nu zou het niet moeten klagen over de standaardwaarschuwing voor referentiedetectie.

Laten we proberen wat bestanden te uploaden.

  • Klik op het + pictogram rechtsonder en maak een bucket aan
  • Ik heb een testbestand geüpload en direct zichtbaar in de browser

en op de 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]#

Als u op de knop voor het delen van bestanden in de browser klikt, krijgt u de deelbare link en een optie om de vervaldatum in te stellen.

  Hoe verwijder je een groep op FaceTime

MiniIO-client

MinIO-client is meer dan aws-cli waarmee u de opslag kunt beheren. Client is beschikbaar voor Windows, macOS en Linux.

Voer het volgende uit om op Linux te installeren.

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

Voer de opdracht mc uit om de hulp bij de opdracht te zien.

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

Laten we proberen het bestand op te sommen dat ik via mc command heb geüpload.

  MessageEnhancer brengt cosmetische en functionele wijzigingen aan in de Berichten-app

Eerst moeten we de alias instellen voor de opslag die we willen beheren.

[[email protected] ~]# ./mc alias set minio http://xx.71.141.xx:9000/ epcdream.nl geekpassword
Added `minio` successfully.
[[email protected] ~]#
  • minio is de aliasnaam. Je kunt dit veranderen naar wat je maar wilt.
  • Wijzig het HTTP-eindpunt in uw echte
  • Wijzig de toegangs- en geheime sleutel met die van u

en, om op te sommen, zal het ls-commando gebruiken zoals hieronder.

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

Super goed. het werkt!

Je kunt letterlijk alles doen via de client. U kunt niet alleen MinIO-cloudopslag beheren, maar ook GCS, AWS S3, Azure.

Kijk hier eens naar snelstartgids voor klanten voor meer details.

MiniIO-SDK

Afhankelijk van uw applicatiestack kunt u programmatisch communiceren met objectopslag met behulp van SDK. Het ondersteunt Go, Python, Node.js, .NET, Haskell en Java.

MiniIO-gateway

Voeg MiniIO-gateway toe aan S3, Azure, NAS, HDFS om te profiteren van MinIO-browser en schijfcaching.

Conclusie

Als u op zoek bent naar private, hybride of multi-cloud objectopslag, dan ziet MinIO er veelbelovend uit. Probeer het eens en je zult er verliefd op worden. Om dingen te testen, kun je krijgen Kamatera’s MinIO VM of installeer jezelf op een willekeurige Cloud server.

gerelateerde berichten