MinIO er en fremragende løsning, når man nemt og enkelt skal organisere objektlagring. Elementær opsætning, mange platforme og god ydeevne har gjort sit for at opnå folkets kærlighed. Derfor havde vi ikke andet valg end at annoncere kompatibiliteten for en måned siden. . Inklusive en så vigtig funktion som Immutability. Faktisk har MinIO et helt i dokumentationen, der omhandler vores integration.
Så i dag vil vi tale om, hvordan man:
- Opsætter MinIO meget hurtigt.
- Opsætter MinIO lidt langsommere, men betydeligt mere grundigt.
- Bruger det som Archive Tier til et skalerbart Veeam SOBR-arkiv.

Hvad er du?
En kort introduktion til dem, der ikke har stødt på MinIO før. Dette er en open-source objektlagring, der er kompatibel med Amazon S3 API. Den udgives under Apache v2-licensen og følger filosofien om spartansk minimalisme.
Det vil sige, at den ikke har et bredt GUI med dashboards, grafer og adskillige menuer. MinIO starter blot sin server med en kommando, hvor man simpelthen kan gemme data ved at bruge al magten fra S3 API. Men man skal bemærke, at denne enkelhed kan være misvisende, når det kommer til ressourcerne, der anvendes. RAM og CPU bruges glimrende, men årsagerne vil blive forklaret nedenfor. Og for at sige det på en anden måde, så bruger kombinerede systemer som FreeNAS og TrueNAS netop MinIO under motorhuen.
Med denne introduktion kan vi også afslutte.
Opsætning af MinIO meget hurtigt
Det går så hurtigt, at vi vil se på det for både Windows og Linux. Der er muligheder for både Docker og Kubernetes, og endda til macOS, men konceptet vil være det samme alle steder.
Så i tilfælde af Windows går vi til den officielle hjemmeside og downloader den nyeste version. Der kan vi også finde vejledningen til opstart:
minio.exe server F:Data
Og der er også et link til en lidt mere detaljeret . Der er ingen grund til ikke at stole på instruktionerne, så vi starter og får cirka dette svar.
Det er alt! Lageret fungerer, og man kan begynde at arbejde med det. Jeg spøgte ikke, da jeg sagde, at MinIO er minimalisme og fungerer bare. Hvis man besøger det link, der tilbydes ved opstart, er de maksimale tilgængelige funktioner at oprette en bucket. Man kan begynde at skrive data.
For Linux-entusiaster er det stadig lige så simpelt. Den enkleste instruktion:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /dataResultatet vil være uadskilleligt fra det tidligere sete.
Opsætning af MinIO er lidt mere meningsfuld
Som vi forstår det, er den tidligere paragraf en smule sjov for testformål. Og lad os være ærlige, vi bruger det faktisk meget til at teste MinIO, hvilket vi ikke er bange for at indrømme. Naturligvis fungerer det, men det ville være pinligt at tage det ud over testmiljøerne. Derfor tager vi en filerskaft og begynder at finpudse det.
HTTPS
Det første obligatoriske skridt mod produktion er kryptering. Der findes allerede en million og tusinde vejledninger til at tilføje certifikater til MiniIO, men den overordnede plan for dem er sådan:
- Opret certifikat
- I Windows lægger vi det i C:Users%User%.miniocerts
- I Linux i ${HOME}/.minio/certs
- Genstart serveren
Det banale Let’s Encrypt er kedeligt og beskrevet overalt, så vores vej er samuraiens vej, derfor downloader vi i Windows , mens vi i Linux blot tjekker, om openssl er installeret. Og laver lidt konsolmagik:
- Opret nøgler: openssl ecparam -genkey -name prime256v1 | openssl ec -out private.key
- Opret certifikat fra nøglen: openssl req -new -x509 -days 3650 -key private.key -out public.crt
- Kopier private.key og public.crt til den angivne mappe ovenfor
- Genstart MinIO
Hvis alt gik som det skulle, vil der vises omtrent sådanne linjer i statusen.

Aktiver MinIO Erasure Coding
Først et par ord om emnet. Kort sagt: det er softwarebeskyttelse af data mod beskadigelse og tab. Som RAID, bare meget mere pålideligt. Mens klassisk RAID6 kan tåle at miste to diske, klarer MinIO sig roligt med tabet af halvdelen. Teknologien er mere detaljeret beskrevet i . Men hvis man tager essensen, er det en implementering af Reed-Solomon koder: al information opbevares i form af datablokke, hvortil der er paritetsblokke. Og det ser ud til at være gjort mange gange før, men der er et vigtigt 'men': vi kan tydeligt angive forholdet mellem paritetsblokke og datablokke for de gemte objekter.
Vil du have 1:1? Så er det i orden!
Vil du have 5:2? Ingen problemer!
En meget vigtig funktion, hvis du bruger flere noder samtidig og ønsker at finde din egen balance mellem maksimal databeskyttelse og anvendte ressourcer. Som standard bruger MinIO formlen N/2 (hvor N er det samlede antal drev), dvs. det deler dine data mellem N/2 datadrev og N/2 paritetsdrev. Oversat til almindeligt dansk: du kan miste halvdelen af drevene og gendanne dataene. Dette forhold fastlægges gennem , hvilket giver dig mulighed for selv at vælge, hvad der er vigtigst: pålidelighed eller kapacitet.
I guiden præsenteres et eksempel: lad os antage, at du har en installation med 16 drev, og du skal gemme en fil på 100 MB. Hvis standardindstillingerne bruges (8 drev til data, 8 til paritetsblokke), vil filen i sidste ende optage næsten det dobbelte volumen, dvs. 200 MB. Hvis drevforholdet er 10/6, vil der være brug for 160 MB. 14/2 – 114 MB.
En anden vigtig forskel fra RAID: i tilfælde af drevfejl vil MinIO fungere på objektniveau og gendanne dem en ad gangen, uden at hele systemet stopper. Mens en almindelig RAID vil være nødt til at gendanne hele volumenet, hvilket vil tage en uforudsigelig tid. Forfatterens hukommelse er, at en diskarray, der efter tabet af to drev blev genberegnet, tog halvanden uge. Det var ret ubehageligt.
Og en vigtig bemærkning: MinIO opdeler alle drev til Erasure Coding i sæt fra 4 til 16 drev, hvor der bruges den maksimalt mulige størrelse for sættet. Fremover vil et informationselement kun blive gemt inden for et enkelt sæt.
Alt dette lyder fantastisk, men hvor svært vil opsætningen være? Lad os se på det. Vi tager kommandoen til at starte og angiver blot drevene, hvor opbevaringen skal oprettes. Hvis alt er gjort korrekt, vil vi se mængden af involverede drev i rapporten. Og et råd, det er ikke i orden at tilføje halvdelen af drevene til én host, da dette kan føre til datatab.
c:minio>minio.exe server F: G: H: I: J: K:
Derefter har vi brug for en agent til at administrere og konfigurere MinIO-serveren, som kan downloades fra den officielle hjemmeside.
For ikke at skulle skrive adresser og adgangsnøgler hver gang (og det er heller ikke sikkert), er det praktisk at oprette et alias ved første opstart efter formlen mc alias set [YOUR-ACCESS-KEY] [YOUR-SECRET-KEY]
mc alias set veeamS3 https://172.17.32.52:9000 YOURS3ACCESSKEY YOURSECERTKEEller du kan straks tilføje din vært:
mc config host add minio-veeam https://minio.jorgedelacruz.es YOURS3ACCESSKEY YOURSECERTKEYOg så vil vi oprette en immutable bucket med et flot 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 giver mulighed for at se ikke blot den samlede meddelelse, men mere detaljeret information.
-l det vil sige —with-lock, hvilket betyder immutable
Hvis vi nu vender tilbage til webgrænsefladen, vil vores nye bucket dukke op der.

Det er alt for nu. Vi har oprettet et sikkert lager og er klar til at gå videre til integrationen med Veeam.
Vi kan også sikre os, at alt fungerer glimrende:
c:minio>mc admin info veeamS3
● 172.17.32.52:9000
Uptime: 32 minutter
Version: 2020-08-16T18:39:38Z
Netværk: 1/1 OK
Dreve: 6/6 OK
0 B Bruges, 1 Bucket, 0 Objekter
6 drev online, 0 drev offlineMinIO og Veeam
Opmærksomhed! Hvis du af en eller anden usandsynlig grund vil arbejde via HTTP, så opret en DWORD-nøgle på adressen HKEY_LOCAL_MACHINESOFTWAREVeeamVeeam Backup and Replication SOBRArchiveS3DisableTLS. Sæt dens værdi til 1, og husk, at vi bestemt ikke godkender denne adfærd og ikke anbefaler den til nogen.
Opmærksomhed igen! Hvis du fortsat bruger Windows 2008 R2 ved et fejltagelse, vil du sandsynligvis få en fejl som: Failed to establish connection to Amazon S3 endpoint, når du forsøger at forbinde MinIO til Veeam. Det kan løses med den officielle patch fra .
Så er forberedelserne færdige, lad os åbne VBR-grænsefladen og gå til fanen Backup Infrastructure, hvor vi vil kalde wizard til at tilføje et nyt lager.

Naturligvis er vi interesseret i Object storage, specifikt S3 Compatible. I den åbnede wizard angiver vi et navn, følger trinene med angivelse af adresse og konto. Hvis det er nødvendigt, glem ikke at angive gateway, som foreslår anmodningerne til lageret.

Derefter vælger vi bucket, mappe og sætter flueben ved Make recent backups immutable. Eller ikke. Men da vi har lavet et lager med denne funktion, ville det være en skam ikke at udnytte det.

Next > Finish og nyd resultatet.
Nu skal vi tilføje det til SOBR-repositoriet som Capacity Tier. For dette skaber vi enten et nyt eller redigerer et eksisterende. Vi er interesseret i stappen Capacity Tier.

Her skal vi vælge, hvilket scenarie vi vil arbejde efter. Alle mulighederne er ret godt beskrevet i en anden , 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 har planer om straks at belaste alle systemer, så husk at angive tilladte intervaller for arbejdet ved at trykke på knappen Window.

Og selvfølgelig kan der oprettes separate Backup Copy-opgaver. Nogle mener, at det er lettere, da de er lidt mere gennemsigtige og forudsigelige for brugeren, der ikke ønsker at dykke ned i detaljerne i kapacitetstierne. Der er masser af detaljer, så jeg anbefaler endnu en gang den relevante artikel via linket ovenfor.
Og til sidst – svaret på det snedige spørgsmål: hvad vil der ske, hvis man rent faktisk prøver at slette en backup fra Immutable-lagringen?
Her er svaret:

Det er alt for i dag. Som sædvanligt, her er en liste over nyttige emner om emnet:
- Manual
- Eksempel på brugen af .
- Generel manual til opsætning af .
- Tråden på vores om S3-lagring.
Kilde: habr.com
