MinIO — o soluție excelentă atunci când trebuie să organizezi un stocare de obiecte simplu și ușor. Configurarea de bază, numeroase platforme și performanța bună au contribuit la popularitatea sa. Așadar, nu am avut altă opțiune decât să anunțăm acum o lună compatibilitatea . Inclusiv o funcție importantă, cum ar fi Immutability. De fapt, MinIO are un întreg în documentația dedicată integrării noastre.
Prin urmare, astăzi vom discuta despre cum să:
- Configurezi MinIO foarte rapid.
- Configurezi MinIO puțin mai lent, dar semnificativ mai calitativ.
- Îl folosești ca Archive Tier pentru un depozit scalabil Veeam SOBR.

Ce ești tu?
O scurtă introducere pentru cei care nu au avut de-a face cu MinIO. Este un stocare de obiecte open-source, compatibilă cu Amazon S3 API. Este lansată sub licența Apache v2 și respectă filosofia minimalismului spartan.
Adică nu are un GUI complex cu tablouri de bord, grafice și meniuri numeroase. MinIO pur și simplu își pornește serverul cu o comandă, pe care se pot stoca date, folosind puterea API S3. Este de menționat că această simplitate poate fi înșelătoare când vine vorba de resursele utilizate. RAM și CPU sunt consumate foarte bine, dar vom discuta despre motive mai jos. De asemenea, mașini precum FreeNAS și TrueNAS utilizează exact MinIO sub capotă.
Aici putem încheia introducerea.
Configurarea MinIO foarte rapidă
Configurarea sa este atât de rapidă, încât o vom analiza pentru Windows și Linux. Există opțiuni și pentru Docker, și pentru Kubernetes, și chiar pentru MacOS, dar esența va fi aceeași peste tot.
Așadar, în cazul Windows, mergem pe site-ul oficial și descărcăm cea mai recentă versiune. Acolo găsim și instrucțiuni pentru pornire:
minio.exe server F:Data
Și acolo este și un link către un . Nu are sens să nu credem instrucțiunile, așa că le pornim și obținem un răspuns similar.
Asta e tot! Stocarea funcționează și putem începe să lucrăm cu ea. Nu glumeam când spuneam că MinIO este minimalismul și funcționează pur și simplu. Dacă urmăm linkul propus la pornire, maximul funcțiilor disponibile acolo este de a crea un bucket. Și putem începe să scriem date.
Pentru iubitorii de Linux, totul rămâne la fel de simplu. Instrucțiuni simple:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /dataRezultatul va fi indistinguibil de ceea ce am văzut anterior.
Configurația MinIO este puțin mai logică.
După cum bine știm, paragraful anterior este doar o joacă pentru scopuri de testare. Și, să fim sinceri, MinIO este folosit pe scară largă pentru testare, de care nu ne este deloc rușine să recunoaștem. Sigur că funcționează, dar este rușinos să-l folosim în afara mediului de testare. Așadar, luăm un șmirghel și începem să perfecționăm.
HTTPS
Primul pas obligatoriu pe calea către producție este criptarea. Pe internet există milioane de manuale despre cum să adaugi certificate la MinIO, dar planul general este acesta:
- Creăm un certificat.
- În cazul Windows, îl punem în C:Users%User%.miniocerts.
- În cazul Linux, în ${HOME}/.minio/certs.
- Repornim serverul.
Banalul Let’s Encrypt este plictisitor și descris peste tot, așa că drumul nostru este drumul samurailor, așa că în cazul Windows descărcăm , iar în cazul Linux verificăm pur și simplu dacă openssl este instalat. Și facem puțină magie în consolă:
- Creăm cheile: openssl ecparam -genkey -name prime256v1 | openssl ec -out private.key.
- Creăm certificatul pe baza cheii: openssl req -new -x509 -days 3650 -key private.key -out public.crt.
- Copiem private.key și public.crt în folderul specificat mai sus.
- Repornim MinIO.
Dacă totul a decurs conform planului, vor apărea în status aproximativ aceste linii.

Activăm codificarea erorilor MinIO.
Mai întâi câteva cuvinte despre subiect. Pe scurt: este o protecție software a datelor împotriva deteriorării și pierderii. Ca un RAID, doar că mult mai sigur. Dacă RAID6 clasic își permite să piardă două discuri, MinIO suportă liniștit pierderea a jumătate. Tehnologia este detaliată în Dar, dacă ne concentrăm pe esență, este o implementare a codurilor Reed-Solomon: toată informația este stocată sub formă de blocuri de date, la care există blocuri de paritate. Și pare că acest lucru a fost realizat de multe ori, dar este un "dar" important: putem specifica în mod explicit raportul dintre blocurile de paritate și blocurile de date pentru obiectele stocate.
Vreți 1:1? Poftim!
Vreți 5:2? Fără probleme!
O caracteristică foarte importantă, dacă utilizați mai multe noduri și doriți să găsiți propriul echilibru între securitatea maximă a datelor și resursele consumate. Din cutie, MinIO utilizează formula N/2 (unde N este numărul total de discuri), adică împarte datele între N/2 discuri de date și N/2 discuri de paritate. În termeni simpli: puteți pierde jumătate din discuri și recupera datele. Această proporție este stabilită prin , permițându-vă să alegeți ce este mai important: fiabilitatea sau capacitatea.
În ghid este dat un exemplu: să presupunem că aveți o instalare pe 16 discuri și trebuie să păstrați un fișier de 100 MB. Dacă se folosesc setările implicite (8 discuri pentru date, 8 pentru blocuri de paritate), fișierul va ocupa practic un volum dublu, adică 200 MB. Dacă raportul discurilor este 10/6, va fi necesar 160 MB. 14/2 — 114 MB.
O altă diferență importantă față de RAID-uri: în cazul unei pierderi de discuri, MinIO va lucra la nivel de obiecte, recuperându-le pe rând, fără a opri întreaga sistem. În timp ce un RAID obișnuit va trebui să recupereze întregul volum, ceea ce va dura un timp imprevizibil. Din amintirile autorului, o raft de discuri care a intrat în recalculare după ce două discuri au picat a durat o săptămână și jumătate. A fost foarte neplăcut.
Și, un aspect important: MinIO împarte toate discurile pentru Erasure Coding în seturi de la 4 la 16 discuri, utilizând dimensiunea maximă posibilă a setului. Iar, ulterior, un element de informație va fi stocat doar în cadrul unui singur set.
Toate acestea sună foarte bine, dar cât de complicată va fi configurarea? Să vedem. Luăm comanda de pornire și enumerăm discurile pe care trebuie să creăm stocarea. Dacă totul este făcut corect, în raport vom vedea numărul de discuri utilizate. Și un sfat, nu este bine să adăugați pe un singur host jumătate din discuri, deoarece aceasta duce la pierderi de date.
c:minio>minio.exe server F: G: H: I: J: K:
Apoi, pentru a gestiona și configura serverul MinIO, ne va trebui un agent, pe care îl putem descărca de pe site-ul oficial.
Pentru a nu vă distruge degetele, tastând adresa și cheile de acces de fiecare dată (și nu este sigur), este convenabil să creați de la început un alias conform formulei mc alias set [YOUR-ACCESS-KEY] [YOUR-SECRET-KEY]
mc alias set veeamS3 https://172.17.32.52:9000 YOURS3ACCESSKEY YOURSECERTKESau poți adăuga imediat gazda ta:
mc config host add minio-veeam https://minio.jorgedelacruz.es YOURS3ACCESSKEY YOURSECERTKEYApoi vom crea un bucket immutable cu o comandă frumoasă
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 permite să vedem nu doar mesajul final, ci și informații mai detaliate.
-l asta înseamnă —with-lock, ceea ce indică immutable
Dacă acum ne întoarcem în interfața web, atunci acolo va apărea noul nostru bucket.

Pentru moment, asta este tot. Am creat un depozit protejat și suntem pregătiți să trecem la integrarea cu Veeam.
Putem verifica, de asemenea, că totul funcționează perfect:
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 offlineMinIO și Veeam
Atenție! Dacă dintr-o cauză incredibilă, doriți să lucrați prin HTTP, atunci la adresa HKEY_LOCAL_MACHINESOFTWAREVeeamVeeam Backup and Replication creați o cheie DWORD SOBRArchiveS3DisableTLS. Setați valoarea la 1 și amintiți-vă că nu susținem acest comportament și nu îl recomandăm nimănui.
Atenție din nou! Dacă dintr-o neînțelegere continuați să folosiți Windows 2008 R2, atunci când încercați să conectați MinIO la Veeam, cel mai probabil veți primi o eroare de acest gen: Failed to establish connection to Amazon S3 endpoint. Poate fi remediată cu un patch oficial de la .
Ei bine, pregătirile s-au încheiat, să deschidem interfața VBR și să mergem la tab-ul Backup Infrastructure, unde vom apela asistentul pentru adăugarea unui nou repository.

Desigur, ne interesează Object storage, și anume S3 Compatible. În wizarda deschis, stabilim un nume, parcurgem pașii specificând adresa și contul. Dacă este necesar, nu uităm să menționăm gateway-ul prin care vor fi proxificate cererile către depozit.

Apoi alegem bucket-ul, folderul și bifăm opțiunea Make recent backups immutable. Sau nu o bifăm. Dar, având în vedere că am creat un depozit cu suport pentru această funcție, ar fi păcat să nu profităm de ea.

Next > Finish și bucurăm-ne de rezultat.
Acum trebuie să-l adăugăm la repositoul SOBR ca Tier de Capacitate. Pentru aceasta, fie creăm unul nou, fie edităm pe cel existent. Ne interesează pasul Tier de Capacitate.

Aici trebuie să alegem după ce scenariu vom lucra. Toate opțiunile sunt destul de bine descrise în altă , așa că nu voi repet.
La finalizarea lucrării asistentului, sarcinile de copiere sau mutare a copiilor de rezervă vor fi inițiate automat. Dar dacă planurile tale nu includ să generezi imediat o sarcină pe toate sistemele, asigură-te că definești intervalele permise de lucru utilizând butonul Fereastră.

Și, desigur, poți crea sarcini separate Backup Copy. Unii cred că este mai convenabil așa, deoarece sunt puțin mai transparente și predictibile pentru utilizatorul care nu dorește să se adâncească în detalii despre funcționarea tierului de capacitate. Și detaliile sunt suficiente, așa că recomand din nou articolul corespunzător la linkul de mai sus.
Și, în cele din urmă, răspunsul la întrebarea capcană: ce se va întâmpla dacă încerci să ștergi o copie de rezervă din stocarea Immutable?
Iată răspunsul:

Asta e tot pentru astăzi. Ca de obicei, vă oferim o listă de subiecte utile pe tema:
- Manual
- Exemplu de utilizare .
- Manual general de configurare .
- Filiala noastră despre stocarea S3.
Sursa: habr.com
