Prova MinIO – Self-Hosted S3-kompatibel High Performance Object Storage

By rik

Söker du efter programvara för objektlagring att använda på din egen server?

Jag antar att svaret är ja?

Det finns en mängd molnbaserade alternativ som AWS S3 och andra, men om du behöver ha din data lokalt på din server kan MinIO vara en utmärkt lösning för dina datacenter.

MinIO är en populär programvara med öppen källkod för distribuerad objektlagring, och den är kompatibel med S3. Den är anpassad för företagsbruk och känd för sin höga prestanda.

MinIO kan användas för allt från enkla webbapplikationer till omfattande datahanteringsuppgifter inom analys och maskininlärning. Det finns många användningsområden.

  • Standard lagring av platta filer
  • Datahantering i flera moln
  • Katastrofåterställning
  • Dataanalys

Är det en tung programvara?

Nej, den är bara cirka 50 MB stor och är anpassad för Kubernetes. Den hanterar data och metadata som objekt, vilket eliminerar behovet av en separat databas eller programvara för metadatalagring och förbättrar därmed prestandan.

Nedan visas en arkitekturbild från deras officiella webbplats.

Låt oss titta närmare på några av dess funktioner.

  • Hög prestanda – som namnet antyder. Den kan läsa/skriva med en hastighet av cirka 170 GB/s. Det är mycket!
  • Skalbar – stöd för klustring och skalning efter behov.
  • Molnbaserad
  • Dataskydd genom raderingskodning.
  • Flera krypteringsmetoder stöds, inklusive AES-CBC, AES-256-GCM och ChaCha20.
  • Kompatibel med vanliga KMS (Key Management Systems).
  • Applikations- och användaridentitetshantering.
  • Händelseaviseringar.
  • Federation med etcd och CoreDNS.

MinIO är ett utmärkt val för mjukvarudefinierad lagring. Låt oss undersöka hur man konfigurerar den.

Installation av MinIO Server

Du kan installera MinIO på Linux, Windows, macOS och via Kubernetes. Föredrar du att bygga från källkoden? Det går också bra om du har Golang installerat.

I denna demonstration kommer jag att installera på CentOS, som finns på Kamatera.

  • Logga in på servern.
  • Skapa en mapp i önskat filsystem, till exempel ”minio-server”.
  • Navigera till den nyskapade mappen och kör följande wget-kommando.
wget https://dl.min.io/server/minio/release/linux-amd64/minio

Detta laddar ner en binärfil som ska se ut ungefär så här:

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

Gör filen körbar med chmod:

chmod 755 minio

Låt oss starta MinIO som en server.

./minio server /data &

/data ovan anger filsystemet där MinIO kommer att lagra objekt.

Starten går snabbt, och du bör se startinformation som liknar den här:

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'

Låt oss öppna MinIO i webbläsaren med standardinloggningsuppgifterna – minioadmin:minioadmin.

Gränssnittet är enkelt och tydligt, men innan vi gör något annat bör vi ändra standardinloggningsuppgifterna eftersom de utgör en säkerhetsrisk. Det finns inget alternativ för att ändra administratörsuppgifterna via webbläsaren, utan man måste använda miljövariabler.

För att ändra MinIO:s standardinloggningsuppgifter exporterar vi åtkomst- och hemliga nycklar enligt nedan och startar sedan MinIO.

export MINIO_ACCESS_KEY=adminvista.com
export MINIO_SECRET_KEY=geekpassword
./minio server /data &

Nu ska inte längre standardvarningen för autentiseringsuppgifter visas.

Låt oss försöka ladda upp några filer.

  • Klicka på +-ikonen längst ner till höger och skapa en ”bucket”.
  • Jag laddade upp en testfil, som direkt syns i webbläsaren.

och på servern:

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

Om du klickar på fildelningsknappen i webbläsaren får du en delbar länk och ett alternativ för att ange dess giltighetstid.

MinIO-klienten

MinIO-klienten är mer än bara ett AWS-CLI-verktyg, utan låter dig hantera lagringen på ett effektivt sätt. Klienten finns tillgänglig för Windows, macOS och Linux.

För att installera den på Linux kör du följande:

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

Kör kommandot ”mc” för att se kommandohjälpen.

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

Låt oss försöka lista den fil som jag laddade upp via mc-kommandot.

Först måste vi ange alias för den lagring vi vill administrera.

[[email protected] ~]# ./mc alias set minio http://xx.71.141.xx:9000/ adminvista.com geekpassword
Added `minio` successfully.
[[email protected] ~]#
  • ”minio” är aliasnamnet, som du kan ändra till vad du vill.
  • Ändra HTTP-slutpunkten till din korrekta.
  • Ändra åtkomst- och hemlig nyckel med dina egna uppgifter.

För att lista filerna använder vi kommandot ”ls” enligt nedan:

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

Utmärkt, det fungerar!

Du kan göra i princip allt via klienten. Du kan inte bara hantera MinIO-molnlagring utan även GCS, AWS S3 och Azure.

Se denna snabbstartsguide för mer information.

MinIO SDK

Beroende på din utvecklingsmiljö kan du interagera med objektlagring programmässigt med hjälp av SDK:er. De stöder Go, Python, Node.js, .NET, Haskell och Java.

MinIO Gateway

Lägg till MinIO Gateway till S3, Azure, NAS och HDFS för att dra nytta av MinIO-webbläsaren och diskcachelagringen.

Slutsats

Om du söker efter en privat, hybrid eller multicloud-objektlagring verkar MinIO vara en lovande lösning. Ge den ett försök så kommer du troligen att gilla den. För att testa kan du få Kamateras MinIO VM eller installera den själv på valfri molnserver.