Vyzkoušejte MinIO – Self-hosted S3-Compliant High Performance Object Storage

Hledáte software pro ukládání objektů pro hostování na vašem serveru?

Hádám že ano?

Existuje spousta cloudového úložiště objektů, jako je AWS S3 a další, které jsem zde zmínil. Pokud však potřebujete svá data hostovat na svém serveru, může vám MinIO pomoci ve vašich datových centrech.

MiniIO je populární software pro distribuované ukládání objektů s otevřeným zdrojovým kódem a kompatibilní s S3. Je připraven na podnikání a známý svým vysokým výkonem.

MinIO můžete používat od jednoduché webové aplikace až po velké zátěže distribuce dat pro analytické aplikace a aplikace strojového učení. Může pomoci v mnoha případech použití.

  • Standardní ploché ukládání souborů
  • Multi-cloudová distribuce dat
  • Zotavení po havárii
  • Analytika dat

Je to objemný software?

Ne, je to jen asi 50 MB a je kompatibilní s Kubernetes. Zapisuje data a metadata jako objekt. Tím se odstraní závislost na další databázi nebo softwaru pro ukládání metadat a zlepšení výkonu.

Níže uvedená architektura z jejich oficiálních stránek.

Pojďme prozkoumat některé funkce, které stojí za zmínku.

  • Vysoký výkon – říká název. Je schopen číst/zapisovat rychlostí ~170 GB/s. To je hodně!
  • Škálovatelnost – přejděte na shlukování a škálujte podle potřeby
  • Cloud-nativní
  • Ochrana dat metodou Erasure code
  • Podpora vícenásobného šifrování včetně AES-CBC, AES-256-GCM, ChaCha20
  • Kompatibilní s běžnými KMS
  • Identita aplikace a uživatele
  • Upozornění na událost
  • Federace pomocí etcd a CoreDNS

MinIO je dobrou volbou pro softwarově definované úložiště. Pojďme prozkoumat, jak věci nastavit.

Instalace serveru MinIO

Můžeš Nainstalujte na Linuxu, Windows, macOS a prostřednictvím Kubernetes. Preferujete stavbu přes zdroj? Jistě, můžete to udělat, pokud máte nainstalovaný Golang.

Pro tuto ukázku nainstaluji na CentOS, který je hostován Kamatera.

  • Přihlaste se na server
  • Vytvořte složku v požadovaném systému souborů. Možná miniserver
  • Přejděte do nově vytvořené složky a spusťte níže uvedený příkaz wget
wget https://dl.min.io/server/minio/release/linux-amd64/minio

Stáhne binární soubor a měl by vypadat takto.

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

Udělejte soubor spustitelný pomocí příkazu chmod

chmod 755 minio

Začněme MinIO jako server.

./minio server /data &

/data uvedená výše je souborový systém, kam bude MinIO ukládat objekty.

Spuštění je rychlé a měli byste vidět informace o spuštění, jak je uvedeno níže.

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'

Pojďme k MinIO v prohlížeči s výchozími přihlašovacími údaji – minioadmin:minioadmin

Rozhraní je velmi elegantní a čisté, ale nejprve změňme výchozí pověření, protože vystavuje riziko. Neexistuje žádná možnost změnit pověření správce prostřednictvím prohlížeče, ale proměnných prostředí.

Chcete-li změnit výchozí pověření MinIO, exportujeme přístupový a tajný klíč, jak je uvedeno níže, a spustíme MinIO.

export MINIO_ACCESS_KEY=etechblog.cz
export MINIO_SECRET_KEY=geekpassword
./minio server /data &

Nyní by si neměl stěžovat na výchozí varování detekce pověření.

Zkusme nahrát nějaké soubory.

  • Klikněte na ikonu + vpravo dole a vytvořte kbelík
  • Nahrál jsem testovací soubor a okamžitě se zobrazil v prohlížeči

a na serveru

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

Pokud v prohlížeči kliknete na tlačítko sdílení souboru, zobrazí se odkaz ke sdílení a možnost nastavení vypršení platnosti.

Klient MinIO

Klient MinIO je více než aws-cli, který vám umožní spravovat úložiště. Klient je k dispozici pro Windows, MacOS a Linux.

Chcete-li nainstalovat na Linux, spusťte následující.

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

Spuštěním příkazu mc zobrazíte nápovědu k příkazu.

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

Zkusme vypsat soubor, který jsem nahrál pomocí příkazu mc.

Nejprve musíme nastavit alias úložiště, které chceme spravovat.

[[email protected] ~]# ./mc alias set minio http://xx.71.141.xx:9000/ etechblog.cz geekpassword
Added `minio` successfully.
[[email protected] ~]#
  • minio je alias. Můžete to změnit na co chcete.
  • Změňte koncový bod HTTP na svůj skutečný
  • Změňte přístupový a tajný klíč pomocí svého

a pro výpis použije příkaz ls, jak je uvedeno níže.

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

Skvělý. funguje to!

Přes klienta můžete dělat doslova vše. Spravovat můžete nejen cloudové úložiště MinIO, ale také GCS, AWS S3, Azure.

Podívejte se na toto průvodce rychlým startem klienta Více podrobností.

MiniIO SDK

V závislosti na zásobníku aplikací můžete s úložištěm objektů pracovat programově pomocí sady SDK. Podporuje Go, Python, Node.js, .NET, Haskell a Java.

Brána MinIO

Přidejte bránu MiniIO do S3, Azure, NAS, HDFS a využijte výhody prohlížeče MinIO a mezipaměti disku.

Závěr

Pokud hledáte soukromé, hybridní nebo multicloudové úložiště objektů, pak MinIO vypadá slibně. Vyzkoušejte a zamilujete si to. Chcete-li věci otestovat, můžete získat MiniIO VM společnosti Kamatera nebo se sami nainstalujte na jakýkoli cloudový server.