MinIO za najmlađe

MinIO — odlično rešenje kada je potrebno lako i jednostavno organizovati objekatno skladište. Elementarna konfiguracija, mnoge platforme i dobra performansa su učinile svoje na nivou narodne ljubavi. Nismo imali drugog izbora, nego da pre mesec dana obavestimo o kompatibilnosti Veeam Backup & Replication i MinIO. Uključujući tako važnu funkciju kao što je Immutability. U stvarnosti, MinIO ima ceo oddelek u dokumentaciji posvećenoj našoj integraciji.

Zato ćemo danas govoriti o tome kako:

  • Brzo konfigurirati MinIO.
  • Konfigurisati MinIO malo manje brzo, ali značajno kvalitetnije.
  • Koristiti ga kao Archive Tier za skalabilni repozitorijum Veeam SOBR.

MinIO za najmlađe

Šta si ti?

Kratko uvodno za one koji se nisu sreli sa MinIO. To je open-source objekatno skladište, kompatibilno sa Amazon S3 API. Izdaje se pod Apache v2 licencom i drži se filozofije spartanskog minimalizma.

Dakle, nema raskošnog GUI-ja sa kontrolnim panelima, grafikonima i brojnim menijima. MinIO samo pokreće svoj server jednim komandnim redom, na kome se mogu jednostavno čuvati podaci, koristeći svu moć S3 API. Međutim, treba napomenuti da ova jednostavnost može biti obmanjujuća kada je reč o korišćenim resursima. RAM i CPU se odlično koriste, ali o razlozima će biti reči kasnije. I, usput, takvi kombajni kao FreeNAS i TrueNAS koriste upravo MinIO pod haubom.

Na ovom uvodu možemo i završiti.

Podešavanje MinIO je vrlo brzo

Podešavanje je toliko brzo da ćemo ga razmotriti za Windows i Linux. Ima opcija i za Docker, i za Kubernetes, i čak za macOS, ali smisao će biti svuda isti.

Dakle, u slučaju Windows-a idemo na zvaničnu stranicu https://min.io/download#/windows i preuzimamo poslednju verziju. Tamo takođe možemo videti uputstvo za pokretanje:

 minio.exe server F:Data

I tu je i link na malo detaljniju Quick start guide. Uputstvima nema smisla ne verovati, pa pokrećemo i dobijamo otprilike ovakav odgovor.

MinIO za najmlađe
To je to! Skladište radi i možemo početi sa radom. Nisu se šalili kada su rekli da je MinIO minimalistički i jednostavno funkcioniše. Ako odete na link predložen pri pokretanju, maksimalne dostupne funkcije su kreiranje bačvica. I možete početi da unosite podatke.

Za ljubitelje Linux-a sve ostaje jednako jednostavno. Najjednostavnija instrukcija:


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

Rezultat bo neodvisen od tistega, kar smo videli prej. 

Nastavitev MinIO je nekoliko smiselnejša.

Kot razumemo, je zgornji odstavek le balasto za testne namene. In, recimo pošteno, MinIO zelo široko uporabljamo za testiranje, česar se ne sramujemo priznati. Seveda deluje, vendar je sramotno, da bi takšno rešitev nosili čez testne postaje. Zato vzamemo datoteke in začnemo izboljševati.

HTTPS

Prvi obvezen korak na poti do produkcije je šifriranje. Na spletu je že milijon in tisoč priročnikov za dodajanje certifikatov k MiniIO, vendar je njihov splošni načrt takšen:

  • Ustvarimo certifikat.
  • V primeru Windows ga damo v C:Users%User%.miniocerts.
  • V primeru Linuxa v ${HOME}/.minio/certs. 
  • Ponovno zagnamo strežnik.

Povsem osnovni Let’s Encrypt je dolgočasen in opisan povsod, zato je naša pot pot samuraja, tako da v primeru Windows prenesemo Cygwin, v primeru Linuxa pa samo preverimo, ali imamo nameščen openssl. In naredimo malo konzolne magije:

  • Ustvarimo ključe: openssl ecparam -genkey -name prime256v1 | openssl ec -out private.key.
  • Ustvarimo certifikat na podlagi ključa: openssl req -new -x509 -days 3650 -key private.key -out public.crt.
  • Kopiramo private.key in public.crt v prej omenjeno mapo.
  • Ponovno zagnamo MinIO.

Če je vse potekalo tako, kot je treba, se bodo v stanju pojavile približno take vrstice.

MinIO za najmlađe

Vklopimo MinIO Erasure Coding.

Najprej nekaj besed o temi. Na kratko: to je programska zaščita podatkov pred poškodbami in izgubo. Kot RAID, le veliko bolj zanesljivo. Medtem ko klasični RAID6 lahko prenaša izgubo dveh diskov, MinIO brez težav prenese izgubo polovice. Bolj podrobno je tehnologija opisana v uradnem priročniku.. Ampak če vzamemo bistvo, gre za implementacijo Reed-Solomonovih kod: vse informacije so shranjene v obliki podatkovnih blokov, do katerih obstajajo paritetni bloki. In očitno je to bilo že storjeno mnogokrat, vendar obstaja pomembno 'ampak': lahko izrecno določimo razmerje paritetnih blokov do podatkovnih blokov za shranjene objekte.
Želite 1:1? Prosim!
Želite 5:2? Brez težav!

Zelo pomembna funkcija, če uporabljate več nod in želite najti svoj lasten kompromis med maksimalno varnostjo podatkov in porabljenimi viri. Iz paketa MinIO uporablja formulo N/2 (kjer je N skupno število diskov), tj. razdeli vaše podatke med N/2 diski podatkov in N/2 diski parnosti. V človeškem jeziku: lahko izgubite polovico diskov in obnovite podatke. To razmerje se nastavi preko Storage Class, kar vam omogoča, da sami izberete, kaj je pomembnejše: zanesljivost ali kapaciteta.

V vodniku je naveden tak primer: domnevamo, da imate namestitev na 16 diskih in morate shraniti datoteko velikosti 100 MB. Če so nastavitve privzete (8 diskov za podatke, 8 za bloke parnosti), bo datoteka na koncu zasedla skoraj dvojni volumen, tj. 200 MB. Če bo razmerje diskov 10/6, bo potrebnih 160 MB. 14/2 — 114 MB.

Druga pomembna razlika od RAID-ov: v primeru odpovedi diskov MinIO deluje na ravni objektov, obnavlja enega za drugim, ne da bi ustavil delovanje celotnega sistema. Medtem ko bi običajni RAID moral obnoviti celoten volumen, kar bi trajalo nepredvidljivo dolgotrajno. Po spominu avtorja je diskovna omara, ki je po izgubi dveh diskov potrebovala poltretjina tedna za ponovno šteje.

In, pomembna opomba: MinIO deli vse diske za Erasure Coding v sete od 4 do 16 diskov, pri čemer uporablja največjo možno velikost seta. In naprej, en element informacij bo shranjen le znotraj enega seta.

Vse to zveni krasno, a kako težavna bo nastavitev? Poglejmo. Vzamemo ukaz za zagon in preprosto naštetimo diske, na katerih je treba ustvariti shrambo. Če je vse pravilno narejeno, bomo v poročilu videli število vključenih diskov. In nasvet, da ni primerno na en gostitelj dodajati takoj polovico diskov, saj to vodi v izgubo podatkov.

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

MinIO za najmlađe
Nato za upravljanje in konfiguracijo MinIO strežnika potrebujemo agenta, ki ga lahko prenesemo s tja uradne spletne strani.

Da ne bi zbrisali prstov vsakokrat, ko vnašate naslov in dostopne ključe (kar niti ni varno), je priročno, da ob prvem zagonu takoj ustvarite alias po formuli mc alias set [YOUR-ACCESS-KEY] [YOUR-SECRET-KEY]

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

Ali pa lahko takoj dodate svoj gostitelj:

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

Nato bomo ustvarili immutable bucket s privlačnim ukazom

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 omogoča ogled ne le končnega sporočila, ampak tudi podrobnejših informacij. 

-l kar pomeni —with-lock, kar pomeni immutable

Če se zdaj vrnemo v spletni vmesnik, se bo prikazal naš nov bucket.

MinIO za najmlađe
Za zdaj je to vse. Ustvarili smo zaščiteno shrambo in smo pripravljeni na integracijo z Veeam.

Lahko se še prepričate, da vse deluje odlično:

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 in Veeam

Pozor! Če želite iz kakršnega koli neverjetnega razloga delati prek HTTP, ustvarite DWORD ključ na naslovu HKEY_LOCAL_MACHINE\SOFTWARE\Veeam\Veeam Backup and Replication SOBRArchiveS3DisableTLS. Nastavite njegovo vrednost na 1 in ne pozabite, da takšno ravnanje odločno ne odobrimo in ga ne priporočamo nikomur.

Pozor še enkrat! Če zaradi kakšne zmešnjave še naprej uporabljate Windows 2008 R2, boste ob poskusu povezovanja MinIO s Veeam najverjetneje dobili približno takšno napako: Failed to establish connection to Amazon S3 endpoint. To se reši z uradnim popravkom od Microsoft.

No, priprave so končane, odprite vmesnik VBR in preidite na zavihek Backup Infrastructure, kjer bomo zagnali čarovnika za dodajanje novega repozitorija.

MinIO za najmlađe
Seveda nas zanima Object storage, natančneje S3 Compatible. V odprtem čarovniku vnesite ime, preidite skozi korake z navedbo naslova in uporabniškega računa. Če je potrebno, ne pozabite navesti gateway, preko katerega bodo posredovani zahtevki za shrambo.

MinIO za najmlađe
Nato izberite bucket, mapo in označite možnost Make recent backups immutable. Ali je ne označite. Ampak ker smo ustvarili shrambo s podporo za to funkcijo, bi bilo greh ne izkoristiti.

MinIO za najmlađe
Next > Finish in uživajte v rezultatu.

Sedaj ga je treba dodati v SOBR repozitorij kot Capacity Tier. Za to lahko ustvarimo novega ali uredimo obstoječega. Interesira nas korak Capacity Tier.

MinIO za najmlađe
Tukaj moramo izbrati, po katerem scenariju bomo delali. Vse možnosti so precej dobro opisane v drugi članku, zato ne bom ponavljal

Ob zaključku dela čarovnika bodo samodejno zagnani nalogi za kopiranje ali prenos varnostnih kopij. Ampak, če ne želite takoj obremeniti vseh sistemov, obvezno nastavite sprejemljive intervale za delo s gumbom Window.

MinIO za najmlađe
In, seveda, lahko naredite tudi ločene naloge Backup Copy. Nekateri menijo, da je to celo bolj udobno, saj so nekoliko bolj pregledne in predvidljive za uporabnika, ki noče preveč razmišljati o podrobnostih delovanja capacity tira. Podrobnosti tam kar dovolj, zato še enkrat priporočam ustrezni članek s povezave zgoraj.

In za konec — odgovor na premeteni vprašanje: kaj se zgodi, če poskušamo izbrisati varnostno kopijo iz Immutable shrambe?

Tukaj je odgovor:

MinIO za najmlađe
To je za danes vse. Po dobri tradiciji, dobite seznam koristnih tem na to temo:

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster