MinIo for de mindste

MinIO — en fremragende løsning, når du nemt og enkelt skal organisere objektlagring. Den enkle opsætning, et væld af platforme og god ydeevne har skabt stor popularitet. Derfor var vi nødt til at annoncere kompatibiliteten for en måned siden. Veeam Backup & Replication og MinIO. Herunder en så vigtig funktion som Immutability. Faktisk har MinIO en hel section i dokumentationen, der omhandler vores integration.

Derfor vil vi i dag tale om, hvordan man:

  • Sætter MinIO op meget hurtigt.
  • Sætter MinIO op lidt langsommere, men betydeligt bedre kvalitet.
  • Bruger det som Archive Tier til et skalerbart Veeam SOBR-repositorium.

MinIo for de mindste

Hvad er du?

En kort introduktion til dem, der ikke har arbejdet med MinIO. Det er en open source objektlagring, der er kompatibel med Amazon S3 API. Udgivet under Apache v2 licensen og følger filosofien om spartansk minimalisme.

Det vil sige, at det ikke har et omfattende GUI med dashboards, grafer og mange menuer. MinIO starter simpelthen sin server med én kommando, hvor man nemt kan gemme data ved at udnytte hele styrken i S3 API. Men det skal bemærkes, at denne enkelhed kan være vildledende, når det kommer til de anvendte ressourcer. RAM og CPU bruges i højt omfang, men årsagerne til dette vil blive forklaret senere. Og for at sige det med det samme, bruger platforme som FreeNAS og TrueNAS faktisk MinIO under overfladen.

Med det kan vi afslutte introduktionen.

Opsætning af MinIO er meget hurtig

Opsætningen er så hurtig, at vi vil se på den for både Windows og Linux. Der er også muligheder for Docker og Kubernetes, samt til macOS, men princippet vil være det samme overalt.

Så i tilfælde af Windows går vi til den officielle hjemmeside https://min.io/download#/windows og downloader den nyeste version. Her kan vi også se instruktioner til opstart:

 minio.exe server F:Data

Og der er også et link til en lidt mere detaljeret Quick start guide. Det giver ikke mening at ignorere instruktionerne, så vi starter og får omtrent dette svar.

MinIo for de mindste
Det var alt! Lagringen fungerer, og du kan begynde at arbejde med den. Jeg spøgte ikke, da jeg sagde, at MinIO er minimalisme og fungerer bare. Hvis du følger det foreslåede link ved opstart, er de maksimale funktioner, der er til rådighed der, at oprette en bucket. Og du kan begynde at skrive data.

For linux-entusiaster er alt lige så simpelt. Den enkleste instruktion:


wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data

Resultatet vil ikke kunne skelnes fra det tidligere sete. 

Indstillingen af MinIO er lidt mere meningsfuld.

Som vi forstår det, er det tidligere afsnit blot sjov for testformål. Og lad os være ærlige, vi bruger MinIO meget i testen, hvilket vi bestemt ikke er flove over at indrømme. Selvfølgelig fungerer det, men det ville være pinligt at tage det længere end testmiljøerne. Så vi tager filen i hånden og begynder at finpudse det.

HTTPS

Det første nødvendige skridt på vej mod produktion er kryptering. Der er allerede millioner af manualer om at tilføje certifikater til MinIO, men den overordnede plan er sådan her:

  • Opret certifikat
  • I tilfælde af Windows placerer vi det i C:Users%User%.miniocerts
  • I tilfælde af Linux i ${HOME}/.minio/certs 
  • Genstarter serveren

Det ligetil Let’s Encrypt er kedeligt og beskrevet overalt, så vores vej er samuraiens vej. Derfor downloader vi i Windows Cygwin, og i tilfælde af Linux tjekker vi blot, at vi har openssl installeret. Og vi laver lidt konsolmagi:

  • Opretter nøgler: openssl ecparam -genkey -name prime256v1 | openssl ec -out private.key
  • Opretter certifikat ud fra nøglen: openssl req -new -x509 -days 3650 -key private.key -out public.crt
  • Kopierer private.key og public.crt til den ovenfor angivne mappe
  • Genstarter MinIO

Hvis alt gik som det skulle, vil status vise omtrent disse linjer.

MinIo for de mindste

Aktiverer MinIO Erasure Coding

Først et par ord om emnet. Kort sagt: dette er softwarebeskyttelse af data mod beskadigelse og tab. Som RAID, men meget mere pålideligt. Hvis klassisk RAID6 kan tåle at miste to diske, kan MinIO nemt klare tabet af halvdelen. Teknologien er beskrevet mere detaljeret i den officielle vejledning. Men hvis vi ser på essensen, er det en implementering af Reed-Solomon-koder: al information opbevares i form af datablokke, til hvilke der er paritetsblokke. Og selvom dette allerede er blevet gjort mange gange, er der et vigtigt 'men': vi kan eksplicit angive forholdet mellem paritetsblokke til datablokke for de gemte objekter.
Vil du have 1:1? Værsgo!
Vil du have 5:2? Ingen problemer!

En meget vigtig funktion, hvis du bruger flere noder og ønsker at finde din egen balance mellem maksimal datasikkerhed og ressourcer, der bruges. MinIO bruger som standard formlen N/2 (hvor N er det samlede antal diske), dvs. deler dine data mellem N/2 datadiske og N/2 paritetsdisker. Oversat til menneskesprog: du kan miste halvdelen af diskene og stadig gendanne dataene. Denne ratio defineres gennem Storage Class, hvilket giver dig mulighed for selv at vælge, hvad der er vigtigere: pålidelighed eller kapacitet.

I guiden gives et eksempel: lad os sige, at du har en installation med 16 diske, og du skal gemme en fil på 100 MB. Hvis standardindstillingerne bruges (8 diske til data, 8 til paritetsblokke), vil filen i sidste ende optage næsten dobbelt så meget, dvs. 200 MB. Hvis diskforholdet er 10/6, vil det kræve 160 MB. 14/2 - 114 MB.

En anden vigtig forskel fra RAID er, at i tilfælde af diskfejl vil MinIO arbejde på objektniveau, og gendanne en ad gangen uden at stoppe hele systemet. Mens et almindeligt RAID vil være tvunget til at gendanne hele volume, hvilket vil tage en uforudsigelig mængde tid. Efter forfatterens hukommelse tog en diskhylde, der havde mistet to diske, 1,5 uger at regne igennem. Det var temmelig ubehageligt.

Og en vigtig bemærkning: MinIO opdeler alle diske til Erasure Coding i sæt fra 4 til 16 diske, ved at bruge den maksimalt mulige størrelse på sættet. Og fremover vil et elementinformation kun blive opbevaret inden for et enkelt sæt.

Alt dette lyder fantastisk, men hvor besværligt vil opsætningen være? Lad os se. Vi tager kommandoen til at starte og opregner blot de diske, hvor opslaget skal oprettes. Hvis alt er gjort korrekt, vil vi se antallet af anvendte diske i rapporten. Og et råd, det er ikke godt at tilføje halvparten af diskene på én vært, da dette kan føre til datatab.

c:minio>minio.exe server F: G: H: I: J: K:

MinIo for de mindste
Dernæst kræver vi en agent til at administrere og konfigurere MinIO-serveren, som kan downloades fra er den samme der den officielle hjemmeside.

For ikke at skulle skrive adresse og adgangsnøgler hver gang (og det er heller ikke sikkert), er det praktisk ved første opstart straks at oprette et alias med formlen mc alias set [YOUR-ACCESS-KEY] [YOUR-SECRET-KEY]

mc alias set veeamS3 https://172.17.32.52:9000 YOURS3ACCESSKEY YOURSECERTKE

Eller du kan straks tilføje din vært:

mc config host add minio-veeam https://minio.jorgedelacruz.es YOURS3ACCESSKEY YOURSECERTKEY

Og så vil vi oprette en immutable bucket med en stilfuld kommando.

mc mb --debug -l veeamS3/immutable

mc:  PUT /immutable/ HTTP/1.1
Host: 172.17.32.52:9000
User-Agent: MinIO (windows; amd64) minio-go/v7.0.5 mc/2020-08-08T02:33:58Z
Content-Length: 0
Authorization: AWS4-HMAC-SHA256 Credential=minioadmin/20200819/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-bucket-object-lock-enabled;x-amz-content-sha256;x-amz-date, Signature=**REDACTED**
X-Amz-Bucket-Object-Lock-Enabled: true
X-Amz-Content-Sha256: UNSIGNED-PAYLOAD
X-Amz-Date: 20200819T092241Z
Accept-Encoding: gzip
mc:  HTTP/1.1 200 OK
Content-Length: 0
Accept-Ranges: bytes
Content-Security-Policy: block-all-mixed-content
Date: Wed, 19 Aug 2020 09:22:42 GMT
Location: /immutable
Server: MinIO/RELEASE.2020-08-16T18-39-38Z
Vary: Origin
X-Amz-Request-Id: 162CA0F9A3A3AEA0
X-Xss-Protection: 1; mode=block
mc:  Response Time: 253.0017ms

—debug muliggør at se ikke bare den endelige meddelelse, men mere detaljerede oplysninger. 

-l det betyder —with-lock, hvilket betyder immutable

Hvis vi nu vender tilbage til webgrænsefladen, vil vores nye bucket dukke op der.

MinIo for de mindste
Det er alt for nu. Vi har oprettet et beskyttet lager og er klar til at integrere med Veeam.

Lad os også sikre os, at alt fungerer perfekt:

c:minio>mc admin info veeamS3

● 172.17.32.52:9000
   Uptime: 32 minutes
   Version: 2020-08-16T18:39:38Z
   Network: 1/1 OK
   Drives: 6/6 OK
0 B Used, 1 Bucket, 0 Objects
6 drives online, 0 drives offline

MinIO og Veeam

Opmærksomhed! Hvis du af en eller anden uforklarlig grund ønsker at arbejde via HTTP, skal du i HKEY_LOCAL_MACHINESOFTWAREVeeamVeeam Backup and Replication oprette en DWORD-nøgle SOBRArchiveS3DisableTLS. Sæt dens værdi til 1, og husk, at vi bestemt ikke godkender og ikke anbefaler denne adfærd.

Vær opmærksom en gang til! Hvis du på grund af en misforståelse fortsat bruger Windows 2008 R2, vil du ved forsøg på at tilslutte MinIO til Veeam sandsynligvis få en fejl som denne: Failed to establish connection to Amazon S3 endpoint. Dette kan løses med en officiel patch fra Microsoft.

Nå, forberedelserne er afsluttet, lad os åbne VBR-grænsefladen og gå til fanen Backup Infrastructure, hvor vi kalder guiden til tilføjelse af et nyt lager.

MinIo for de mindste
Naturligvis er det Object storage, specifikt S3 Compatible, vi er interesseret i. I den åbne guide angiver vi navn, gennemgår trin med at angive adresse og konto. Hvis det er nødvendigt, skal vi ikke glemme at angive en gateway, som vil proxy forespørgsler til lageret.

MinIo for de mindste
Derefter vælger vi bucket, mappe og sætter flueben ved Make recent backups immutable. Eller vi gør ikke. Men eftersom vi har oprettet et lager, der understøtter denne funktion, ville det være en skam ikke at udnytte det.

MinIo for de mindste
Next > Finish og nyd resultatet.

Nu skal vi tilføje det til SOBR-repositoriet som Capacity Tier. Til dette skal vi enten oprette et nyt eller redigere et eksisterende. Vi er interesserede i trin Capacity Tier.

MinIo for de mindste
Her skal vi vælge, hvilken måde vi vil arbejde på. Alle muligheder er beskrevet ret godt i et andet artikel, så jeg vil ikke gentage mig selv.

Og når guiden er færdig, vil opgaverne til kopiering eller overførsel af backups automatisk blive startet. Men hvis du ikke planlægger at belaste alle systemer med det samme, skal du sørge for at angive acceptable intervaller for arbejdet ved at klikke på knappen Window.

MinIo for de mindste
Og selvfølgelig kan man lave separate Backup Copy-opgaver. Nogle mener, det er mere praktisk, da de er lidt mere gennemsigtige og forudsigelige for brugeren, der ikke ønsker at dykke ned i detaljerne omkring capacity tier. Og der er mange detaljer, så endnu en gang anbefaler jeg den relevante artikel i linket ovenfor.

Og til sidst – svaret på det snedige spørgsmål: hvad sker der, hvis man forsøger at slette en backup fra Immutable-lageret?

Her er svaret:

MinIo for de mindste
Det er alt for i dag. Som traditionen foreskriver, her er en liste over nyttige emner i forbindelse med:

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster