MinIO per i più piccoli

MinIO è una soluzione eccellente quando è necessario organizzare facilmente e semplicemente uno storage oggetti. Una configurazione elementare, molte piattaforme e buone prestazioni hanno fatto il loro dovere nel campo dell'amore popolare. Quindi non avevamo altra scelta che proclamare un mese fa la compatibilità Veeam Backup & Replication e MinIO. Includendo una funzione così importante come l'Immutabilità. Infatti, MinIO ha un intero con l'interruttore della pseudo-classe nella documentazione dedicata alla nostra integrazione.

Quindi oggi parleremo di come:

  • Configurare MinIO molto rapidamente.
  • Configurare MinIO un po' meno rapidamente, ma in modo significativamente migliore.
  • Utilizzarlo come Archive Tier per un repository scalabile Veeam SOBR.

MinIO per i più piccoli

Che cos'è?

Una breve introduzione per chi non ha mai avuto a che fare con MinIO. Si tratta di uno storage oggetti open source compatibile con l'API Amazon S3. Rilasciato sotto licenza Apache v2, segue la filosofia del minimalismo spartano.

Ciò significa che non ha un GUI dettagliato con dashboard, grafici e numerosi menu. MinIO avvia semplicemente il suo server con un solo comando, sul quale è possibile semplicemente archiviare dati, sfruttando tutta la potenza dell'API S3. Ma va notato che questa semplicità può essere ingannevole, quando si parla delle risorse usate. La RAM e la CPU vengono utilizzate molto bene, ma di questo parleremo più avanti. E a proposito, commutatori come FreeNAS e TrueNAS utilizzano proprio MinIO sotto il cofano.

Possiamo concludere questa introduzione.

Configurare MinIO molto rapidamente

La configurazione è così rapida che la presenteremo per Windows e Linux. Ci sono opzioni anche per Docker, Kubernetes e persino per macOS, ma il concetto sarà lo stesso ovunque.

Quindi, nel caso di Windows, andiamo sul sito ufficiale https://min.io/download#/windows e scarichiamo l'ultima versione. Qui troviamo anche le istruzioni per l'avvio:

 minio.exe server F:Data

E lì troviamo anche il link a una guida un po' più dettagliata Quick start guide. Non ha senso non fidarsi delle istruzioni, quindi avviamo e otteniamo una risposta simile a questa.

MinIO per i più piccoli
Ecco tutto! Lo storage è attivo e possiamo iniziare a lavorarci. Non scherzavo quando dicevo che MinIO è minimalismo e funziona semplicemente. Se seguiamo il link fornito all'avvio, la funzione massima disponibile lì è quella di creare un bucket. E possiamo cominciare a scrivere dati.

Per gli amanti di Linux, tutto rimane altrettanto semplice. Istruzioni semplici:


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

Il risultato sarà indistinguibile da quanto visto in precedenza. 

La configurazione di MinIO è un po' più sensata

Come comprendiamo, il paragrafo precedente è solo un divertimento per scopi di test. E, diciamolo chiaramente, ci viene utilizzato ampiamente per testare MinIO, e non abbiamo affatto vergogna a dirlo. Certo, funziona, ma oltre ai banchi di prova è imbarazzante portare avanti qualcosa del genere. Quindi, prendiamo il limatore e iniziamo a perfezionarlo.

HTTPS

Il primo passo obbligatorio verso il produzione è la crittografia. Sono già disponibili in rete milioni e migliaia di manuali su come aggiungere certificati a MiniIO, ma il piano generale è il seguente:

  • Creiamo un certificato
  • Nel caso di Windows, posizioniamolo in C:Users%User%.miniocerts
  • Nel caso di Linux in ${HOME}/.minio/certs 
  • Riavviamo il server

Il banale Let’s Encrypt è noioso ed è descritto ovunque, quindi la nostra strada è quella del samurai, quindi nel caso di Windows scarichiamo Cygwin, mentre nel caso di Linux verifichiamo semplicemente che abbiamo openssl installato. E facciamo un po' di magia da console:

  • Creiamo chiavi: openssl ecparam -genkey -name prime256v1 | openssl ec -out private.key
  • Creiamo un certificato dalla chiave: openssl req -new -x509 -days 3650 -key private.key -out public.crt
  • Copiamo private.key e public.crt nella cartella indicata sopra
  • Riavviamo MinIO

Se tutto è andato bene, nello stato appariranno circa queste righe.

MinIO per i più piccoli

Abilitiamo MinIO Erasure Coding

Prima di tutto, due parole sull'argomento. In due parole: è una protezione software dei dati da danni e perdite. Come un raid, solo molto più affidabile. Se un classico RAID6 può permettersi di perdere due dischi, MinIO sopporta tranquillamente la perdita della metà. Maggiori dettagli sulla tecnologia sono descritti nella guida ufficiale. Ma se prendiamo il succo stesso, si tratta di un'implementazione dei codici di Reed-Solomon: tutte le informazioni sono conservate sotto forma di blocchi di dati, ai quali sono associati blocchi di parità. E sembra che sia già stato fatto molte volte, solo che c'è un'importante "ma": possiamo specificare esplicitamente il rapporto tra blocchi di parità e blocchi di dati per gli oggetti memorizzati.
Volete 1:1? Certo!
Volete 5:2? Nessun problema!

Funzione molto importante se utilizzi più nodi e desideri trovare il tuo equilibrio tra la massima sicurezza dei dati e le risorse utilizzate. Di default, MinIO utilizza la formula N/2 (dove N è il numero totale di dischi), ovvero divide i tuoi dati tra N/2 dischi di dati e N/2 dischi di parità. Tradotto in termini semplici: si possono perdere la metà dei dischi e recuperare i dati. Questo rapporto è impostato tramite Classe di archiviazione, consentendoti di decidere autonomamente cosa è più importante: affidabilità o capacità.

La guida fornisce un esempio: supponiamo di avere un'installazione su 16 dischi e di dover salvare un file di 100 MB. Se si utilizzano le impostazioni di default (8 dischi per i dati, 8 per i blocchi di parità), il file occuperà praticamente il doppio, ovvero 200 MB. Se il rapporto dei dischi è 10/6, serviranno 160 MB. 14/2 - 114 MB.

Un'altra differenza importante rispetto ai RAID: in caso di guasti nei dischi, MinIO opererà a livello di oggetti, recuperando uno alla volta senza fermare l'intero sistema. Mentre un RAID tradizionale sarà costretto a ripristinare l'intero volume, il che richiederà un tempo imprevedibile. Nella memoria dell'autore, un ripiano di dischi dopo il guasto di due dischi è andato in ristrutturazione per una settimana e mezza. È stato piuttosto sgradevole.

E, un appunto importante: MinIO divide tutti i dischi per l'Erasure Coding in set da 4 a 16 dischi, utilizzando la dimensione massima possibile per il set. E in seguito, un elemento informativo verrà memorizzato solo all'interno di un singolo set.

Tutto ciò suona fantastico, ma quanto sarà complicata la configurazione? Diamo un'occhiata. Prendiamo il comando per avviare e semplicemente elenchiamo i dischi su cui creare lo storage. Se tutto è fatto correttamente, nel report vedremo il numero di dischi utilizzati. E un consiglio: è sconsigliato aggiungere metà dei dischi a un singolo host, poiché ciò può portare a perdita di dati.

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

MinIO per i più piccoli
Successivamente, per gestire e configurare il server MinIO avremo bisogno di un agente, che può essere scaricato tutto lì stesso dal sito ufficiale.

Per non dover digitare indirizzi e chiavi di accesso ogni volta (e inoltre è poco sicuro), è comodo creare subito un alias al primo avvio secondo la formula mc alias set [YOUR-ACCESS-KEY] [YOUR-SECRET-KEY]

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

Oppure puoi subito aggiungere il tuo host:

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

E poi creeremo un bucket immutabile con un bel comando.

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 permette di vedere non solo il messaggio finale, ma informazioni più dettagliate. 

-l significa --with-lock, che indica immutabile.

Se ora torniamo all'interfaccia web, vedremo il nostro nuovo bucket.

MinIO per i più piccoli
Per il momento è tutto. Abbiamo creato uno storage sicuro e siamo pronti a procedere con l'integrazione con Veeam.

Possiamo anche assicurarci che tutto funzioni alla perfezione:

c:minio>mc admin info veeamS3

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

MinIO e Veeam

Attenzione! Se per qualche strana ragione vuoi lavorare tramite HTTP, crea una chiave DWORD in HKEY_LOCAL_MACHINESOFTWAREVeeamVeeam Backup and Replication SOBRArchiveS3DisableTLS. Imposta il suo valore su 1 e ricorda che non approviamo affatto questo comportamento e non lo consigliamo a nessuno.

Attenzione ancora una volta! Se a causa di qualche malinteso continui a usare Windows 2008 R2, è probabile che riceverai un errore simile a questo: Failed to establish connection to Amazon S3 endpoint. Questo può essere risolto con una patch ufficiale da Microsoft.

Bene, con i preparativi è tutto, apriamo l'interfaccia VBR e andiamo alla scheda Infrastruttura di Backup, dove invocheremo la procedura guidata per aggiungere un nuovo repository.

MinIO per i più piccoli
Naturalmente, ci interessa lo Storage Object, precisamente S3 Compatible. Nella procedura guidata aperta inseriamo un nome, seguiamo i passaggi per inserire l'indirizzo e i dettagli dell'account. Se necessario, non dimentichiamo di specificare il gateway attraverso cui verranno inoltrate le richieste allo storage.

MinIO per i più piccoli
Dopo di che scegliamo il bucket, la cartella e spuntiamo la casella Rendi immutabili i backup recenti. O non la spuntiamo. Ma dato che abbiamo creato uno storage con supporto a questa funzione, sarebbe un peccato non approfittarne.

MinIO per i più piccoli
Avanti > Fine e godiamoci il risultato.

Ora bisogna aggiungerlo al repository SOBR come Capacity Tier. Per fare ciò, possiamo creare uno nuovo o modificare quello esistente. Ci interessa il passo Capacity Tier.

MinIO per i più piccoli
Qui dobbiamo scegliere quale scenario seguirà il nostro lavoro. Tutte le opzioni sono ben descritte in un altro abbiamo chiarito il corretto completamento dei programmi che utilizzano il mediastreamer., quindi non mi ripeterò.

Al termine del lavoro della procedura guidata, verranno automaticamente avviati i lavori di copia o trasferimento dei backup. Ma se non prevedi di caricare immediatamente tutti i sistemi, assicurati di impostare gli intervalli consentiti per il lavoro tramite il pulsante Window.

MinIO per i più piccoli
E, ovviamente, è possibile creare compiti di Backup Copy separati. Alcuni ritengono che sia più comodo, poiché sono leggermente più trasparenti e prevedibili per l'utente che non desidera approfondire i dettagli del funzionamento del Capacity Tier. E ci sono molti dettagli, quindi consiglio ancora una volta l'articolo pertinente al link sopra.

E infine – la risposta alla domanda insidiosa: cosa succede se provi a eliminare un backup dallo storage Immutable?

Ecco la risposta:

MinIO per i più piccoli
Per oggi è tutto. Come da tradizione, ecco un elenco di argomenti utili sul tema:

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster