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

Letar du efter objektlagringsprogramvara att lagra på din server?

Jag antar det ja?

Det finns gott om molnbaserad objektlagring som AWS S3 och annat jag nämnde här. Men om du behöver vara värd för din data på din server kan MinIO hjälpa till i dina datacenter.

MiniIO är öppen källkod, populär programvara för distribuerad objektlagring och kompatibel med S3. Den är redo för företag och känd för sin höga prestanda.

Du kan använda MinIO från en enkel webbapplikation till stora datadistributionsarbetsbelastningar för analys- och maskininlärningsapplikationer. Det kan hjälpa i många användningsfall.

  • Standard platt fillagring
  • Multi-moln datadistribution
  • Katastrofåterställning
  • Dataanalys

Är det skrymmande programvara?

Nej, det är bara cirka 50 MB och Kubernetes-vänligt. Den skriver data och metadata som ett objekt. Detta tar bort beroendet av att ha en extra databas eller programvara för att lagra metadata och förbättra prestanda.

Nedanstående arkitektur från deras officiella webbplats.

Låt oss utforska några av funktionerna som är värda att notera.

  • Högpresterande – säger titeln. Den kan läsa/skriva med en hastighet av ~170GB/s. Det är mycket!
  • Skalbar – välj klustring och skala efter behov
  • Molnbaserad
  • Dataskydd med raderingskodmetoden
  • Flera krypteringar stöds inklusive AES-CBC, AES-256-GCM, ChaCha20
  • Kompatibel med vanliga KMS
  • Applikation och användaridentitet
  • Händelseavisering
  • Federation med etcd och CoreDNS

MinIO är ett bra val för mjukvarudefinierad lagring. Låt oss utforska hur man ställer in saker och ting.

Installerar MinIO Server

Du kan Installera på Linux, Windows, macOS och genom Kubernetes. Föredrar du att bygga via källan? Visst, du kan göra det om du har Golang installerat.

För den här demonstrationen kommer jag att installera på CentOS som finns på Kamatera.

  • Logga in på servern
  • Skapa en mapp under önskat filsystem. Kanske mini-server
  • Navigera till den nyskapade mappen och kör kommandot nedan wget
wget https://dl.min.io/server/minio/release/linux-amd64/minio

Det kommer att ladda ner en binär fil och bör se ut så här.

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

Gör filen körbar med kommandot chmod

chmod 755 minio

Låt oss starta MinIO som en server.

./minio server /data &

/data som nämns ovan är filsystemet där MinIO kommer att lagra objekten.

Starten går snabbt och du bör se startinformationen nedan.

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 komma åt MinIO i webbläsaren med standardinloggningsuppgifter – minioadmin:minioadmin

Gränssnittet är väldigt snyggt och rent, men låt oss före något annat ändra standardinloggningsuppgifterna eftersom det exponerar risken. Det finns inget alternativ att ändra administratörsuppgifterna via webbläsaren utan miljövariabler.

För att ändra MinIOs standardinloggningsuppgifter exporterar vi åtkomsten och den hemliga nyckeln enligt nedan och startar MinIO.

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

Nu borde det inte klaga på standardvarning för identifiering av autentiseringsuppgifter.

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

  • Klicka på +-ikonen längst ner till höger och skapa en hink
  • Jag laddade upp en testfil och omedelbart synlig 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 den delbara länken och ett alternativ för att ställa in utgången.

MinIO klient

MinIO-klienten är mer än aws-cli som låter dig hantera lagringen. Klienten är tillgänglig för Windows, macOS och Linux.

För att installera på Linux, kör 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 filen som jag laddade upp via mc-kommandot.

Först måste vi ställa in aliaset till 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. Du kan ändra detta till vad du vill.
  • Ändra HTTP-slutpunkt till din riktiga
  • Ändra åtkomst och hemlig nyckel med din

och, för att lista, kommer att använda ls-kommandot enligt nedan.

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

Bra. det fungerar!

Du kan göra bokstavligen allt genom klienten. Du kan inte bara hantera MinIO molnlagring utan även GCS, AWS S3, Azure.

Kolla in det här klient snabbstartsguide för mer detaljer.

MinIO SDK

Beroende på din programstack kan du interagera med objektlagring programmatiskt med SDK. Den stöder Go, Python, Node.js, .NET, Haskell och Java.

MinIO Gateway

Lägg till MiniIO-gateway till S3, Azure, NAS, HDFS för att dra fördel av MinIO-webbläsaren och diskcachelagring.

Slutsats

Om du letar efter privat, hybrid eller multi-moln objektlagring så ser MinIO lovande ut. Ge ett försök och du kommer att bli kär i det. För att testa saker kan du få Kamateras MinIO VM eller installera dig själv på valfri molnserver.