Utforsk MinIO: Din egen S3-kompatible objektlagring
Ser du etter en løsning for å lagre objekter direkte på din egen server? Da er du kanskje på rett spor.
Javisst, det finnes mange skybaserte alternativer som AWS S3 og andre. Men om du foretrekker å ha full kontroll over dine data og lagre dem lokalt på egne servere, kan MinIO være akkurat det du trenger.
MinIO er et populært, åpent kildekode-prosjekt som tilbyr distribuert objektlagring med S3-kompatibilitet. Denne løsningen er designet for bedrifter og er kjent for sin høye ytelse.
MinIO er fleksibel og kan brukes i mange sammenhenger, fra enkle webapplikasjoner til komplekse dataanalyse- og maskinlæringsarbeidsflyter.
- Grunnleggende filsystemlagring
- Datadistribusjon på tvers av flere skyer
- Katastrofegjenoppretting
- Avansert dataanalyse
Er dette en ressurskrevende programvare?
Absolutt ikke. Installasjonsfilen er omtrent 50 MB, og løsningen er laget for å fungere godt med Kubernetes. MinIO lagrer både data og metadata som objekter, noe som eliminerer behovet for en separat database for metadata og øker ytelsen.
Arkitekturen, som vist på deres offisielle nettside, demonstrerer denne effektive tilnærmingen:
La oss se nærmere på noen av de viktigste funksjonene:
- Ekstremt høy ytelse: MinIO kan lese og skrive data med hastigheter opp mot 170 GB/s, noe som er imponerende.
- Skalerbarhet: Løsningen tillater gruppering og enkel skalering etter behov.
- Skykompatibilitet: Utviklet med tanke på moderne skyinfrastruktur.
- Databeskyttelse: Bruker slettekoding for å sikre dataintegritet.
- Fleksibel kryptering: Støtter flere krypteringsmetoder som AES-CBC, AES-256-GCM og ChaCha20.
- Kompatibel med KMS: Fungerer med de vanligste nøkkelhåndteringssystemene.
- Bruker- og applikasjonsidentitet: Sikker tilgangsstyring.
- Hendelsesvarsling: Sender varsler om viktige hendelser.
- Føderasjon: Bruker etcd og CoreDNS for enkel administrasjon.
MinIO er et utmerket valg for programvaredifinert lagring. La oss se hvordan vi kan sette opp denne løsningen.
Installere MinIO Server
MinIO kan installeres på Linux, Windows, macOS og gjennom Kubernetes. Du kan også bygge den fra kilden dersom du har Golang installert.
I denne demonstrasjonen vil jeg installere MinIO på en CentOS-server hos Kamatera.
- Logg deg inn på serveren din.
- Lag en ny mappe for installasjonen, for eksempel «minio-server».
- Naviger til den nye mappen og kjør følgende kommando:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
Dette laster ned en binær fil. Etter nedlasting vil du se noe lignende dette:
-rw-r--r-- 1 root root 48271360 Oct 18 21:57 minio
Gjør filen kjørbar med chmod-kommandoen:
chmod 755 minio
Nå kan vi starte MinIO-serveren:
./minio server /data &
Her er «/data» filsystemet der MinIO vil lagre objektene dine.
Oppstarten er rask, og du bør se en lignende melding som denne:
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'
La oss nå logge inn i MinIO via nettleseren med standard påloggingsinformasjon: minioadmin:minioadmin
Grensesnittet er enkelt og oversiktlig, men det første vi bør gjøre er å endre standard påloggingsinformasjon, siden det utgjør en sikkerhetsrisiko. Det er ingen mulighet for å endre dette direkte i nettleseren, men vi kan bruke miljøvariabler.
For å endre standard legitimasjon, eksporterer vi tilgangs- og hemmelig nøkkel som vist nedenfor, og starter MinIO på nytt.
export MINIO_ACCESS_KEY=tipsbilk.net export MINIO_SECRET_KEY=geekpassword ./minio server /data &
Nå vil du ikke lenger se advarselen om standard legitimasjon.
La oss prøve å laste opp noen filer.
- Klikk på +-ikonet nederst til høyre og opprett en bøtte.
- Jeg lastet opp en testfil, og den vises umiddelbart i nettleseren.
Og her er filen på serveren:
[[email protected] geekflare]# ls -ltr total 4 -rw-r--r-- 1 root root 11 Oct 19 11:09 MinIO-Test.txt [[email protected] geekflare]#
Hvis du klikker på fildelingsknappen i nettleseren, får du en delbar lenke og muligheten til å sette en utløpsdato.
MinIO-klienten
MinIO-klienten er et kraftig verktøy, som mer enn bare et AWS CLI-alternativ. Den lar deg administrere lagringen din fra kommandolinjen. Klienten er tilgjengelig for Windows, macOS og Linux.
For å installere klienten på Linux, kjør følgende kommandoer:
wget https://dl.min.io/client/mc/release/linux-amd64/mc chmod 755 mc
Kjør «mc» for å se kommandohjelpen.
[[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] ~]#
La oss prøve å liste filen vi lastet opp via mc-kommandoen.
Først må vi sette aliaset til den lagringstjenesten vi ønsker å administrere.
[[email protected] ~]# ./mc alias set minio http://xx.71.141.xx:9000/ tipsbilk.net geekpassword Added `minio` successfully. [[email protected] ~]#
- «minio» er aliasnavnet, du kan endre det til hva du vil.
- Endre HTTP-endepunktet til din virkelige adresse.
- Endre tilgangs- og hemmelig nøkkel med din.
For å liste filer bruker du kommandoen «ls»:
[[email protected] ~]# ./mc ls --recursive minio [2020-10-19 11:09:06 UTC] 11B tipsbilk.net/MinIO-Test.txt [[email protected] ~]#
Perfekt! Det fungerer som det skal.
Du kan gjøre alt via klienten. Ikke bare kan du administrere MinIO, men også GCS, AWS S3 og Azure.
Sjekk ut hurtigstartguiden for klienten for mer informasjon.
MinIO SDK
Avhengig av din applikasjonsplattform, kan du samhandle med objektlagring via programmering ved hjelp av SDK-er. MinIO tilbyr SDK-er for Go, Python, Node.js, .NET, Haskell og Java.
MinIO Gateway
Med MinIO Gateway kan du legge til MinIO-funksjonalitet til S3, Azure, NAS eller HDFS og dra nytte av MinIO-nettleseren og diskbuffring.
Konklusjon
Dersom du leter etter en privat, hybrid eller multi-sky objektlagring, er MinIO et svært lovende alternativ. Det er verdt å prøve, og det er stor sjanse for at du blir fornøyd. Du kan teste MinIO med Kamateras MinIO VM eller installere den på hvilken som helst skybasert server.