MinIo för de små

MinIO är en utmärkt lösning när du enkelt och enkelt behöver organisera objektlagring. Elementär installation, många plattformar och bra prestanda har gjort sitt jobb inom området populär kärlek. Så vi hade inget annat val än att deklarera kompatibilitet för en månad sedan Veeam Backup & Replication och MinIO. Inklusive en så viktig funktion som oföränderlighet. Faktum är att MinIO har en helhet kapitel i dokumentationen tillägnad vår integration.

Därför kommer vi idag att prata om hur:

  • Det går mycket snabbt att ställa in MinIO.
  • Att ställa in MinIO är lite mindre snabbt, men mycket bättre.
  • Använd den som en arkivnivå för Veeam SOBR Scalable Repository.

MinIo för de små

Vad är du?

En kort introduktion för dig som inte har stött på MinIO. Detta är en objektlagring med öppen källkod som är kompatibel med Amazon S3 API. Släppt under Apache v2-licensen och följer filosofin om spartansk minimalism.

Det vill säga, den har inte ett sprettigt GUI med instrumentpaneler, grafer och många menyer. MinIO startar helt enkelt sin server med ett kommando, där du enkelt kan lagra data med S3 API:s fulla kraft. Men det bör noteras att denna enkelhet kan vara vilseledande när det kommer till de resurser som används. RAM och CPU absorberas perfekt, men orsakerna kommer att diskuteras nedan. Och, förresten, skördetröskor som FreeNAS och TrueNAS använder MinIO under huven.

Denna introduktion kan sluta här.

Det går väldigt snabbt att ställa in MinIO

Det går så snabbt att ställa in det att vi kommer att titta på det för Windows och Linux. Det finns alternativ för Docker, och för Kubernetis, och även för MacOS, men innebörden kommer att vara densamma överallt.

Så, i fallet med Windows, gå till den officiella webbplatsen https://min.io/download#/windows och ladda ner den senaste versionen. Där ser vi också instruktioner för att starta:

 minio.exe server F:Data

Och det finns även en länk till en lite mer detaljerad Snabbstartsguide. Det är ingen idé att inte tro på instruktionerna, så vi kör det och får något liknande det här svaret.

MinIo för de små
Det är allt! Lagringen fungerar och du kan börja arbeta med den. Jag skojade inte när jag sa att MinIO är minimalistisk och bara fungerar. Om du följer länken som erbjuds under lanseringen är de maximala tillgängliga funktionerna för att skapa en hink. Och du kan börja skriva data.

För Linux-älskare förblir allt inte mindre enkelt. De enklaste instruktionerna:


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

Resultatet kommer att vara omöjligt att skilja från vad som setts tidigare. 

Att ställa in MinIO är lite mer meningsfullt

Som vi förstår är föregående stycke bortskämd i testsyfte. Och, låt oss vara ärliga, vi använder MinIO väldigt brett för testning, vilket vi inte alls skäms för att erkänna. Naturligtvis fungerar det, men det är synd att uthärda detta bortom testbänkarna. Därför tar vi en fil i våra händer och börjar tänka på den.

HTTPS

Det första obligatoriska steget på vägen till produktion är kryptering. Det finns redan en miljon och tusen manualer på nätverket för att lägga till certifikat till MiniIO, men deras allmänna plan är denna:

  • Skapa ett certifikat
  • I fallet med Windows, lägg det i C:Users%User%.miniocerts
  • För Linux i ${HOME}/.minio/certs 
  • Startar om servern

Den banala Let's Encrypt är tråkig och beskrivs överallt, så vår väg är samurajens väg, så i fallet med Windows laddar vi ner Cygwin, och i fallet med Linux kontrollerar vi helt enkelt att vi har openssl installerat. Och vi gör lite konsolmagi:

  • Skapa nycklar: openssl ecparam -genkey -name prime256v1 | openssl ec -out private.key
  • Vi skapar ett certifikat med nyckeln: openssl req -new -x509 -days 3650 -key private.key -out public.crt
  • Kopiera private.key och public.crt till mappen som anges ovan
  • Starta om MinIO

Om allt gick som det skulle, kommer något sådant här att dyka upp i statusen.

MinIo för de små

Aktivera MinIO Erasure Coding

Först några ord om ämnet. I ett nötskal: detta är mjukvaruskydd för data från skada och förlust. Som en raid, bara mycket mer tillförlitlig. Om klassiska RAID6 har råd att förlora två diskar, så kan MinIO lätt klara av förlusten av hälften. Tekniken beskrivs mer i detalj i officiell guide. Men om vi tar essensen, så är detta en implementering av Reed-Solomon-koder: all information lagras i form av datablock, som har paritetsblock. Och det verkar som att allt detta redan har gjorts många gånger, men det finns ett viktigt "men": vi kan uttryckligen ange förhållandet mellan paritetsblock och datablock för lagrade objekt.
Vill du ha 1:1? Snälla du!
Vill du ha 5:2? Inga problem!

En mycket viktig funktion om du använder flera noder samtidigt och vill hitta din egen balans mellan maximal datasäkerhet och förbrukade resurser. Out of the box använder MinIO formeln N/2 (där N är det totala antalet diskar), d.v.s. delar upp dina data mellan N/2 datadiskar och N/2 paritetsdiskar. Översättning till mänskliga termer: du kan förlora hälften av diskarna och återställa data. Denna relation ges genom Förvaringsklass, så att du själv kan välja vad som är viktigare: tillförlitlighet eller kapacitet.

Guiden ger följande exempel: anta att du har en installation på 16 diskar och du behöver spara en fil på 100 MB. Om standardinställningarna används (8 diskar för data, 8 för paritetsblock), så kommer filen så småningom att ta upp nästan dubbelt så mycket volym, d.v.s. 200 MB. Om diskförhållandet är 10/6 kommer 160 MB att behövas. 14/2 - 114 MB.

En annan viktig skillnad från raids: i händelse av diskfel kommer MinIO att arbeta på objektnivå, återställa en efter en, utan att stoppa hela systemet. Medan en vanlig raid kommer att tvingas återställa hela volymen, vilket kommer att ta en oförutsägbar tid. Författaren minns en diskhylla som, efter att två diskar ramlat ut, tog en och en halv vecka att räkna om. Det var ganska obehagligt.

Och en viktig anmärkning: MinIO delar upp alla diskar för raderingskodning i uppsättningar från 4 till 16 diskar, med maximal uppsättningsstorlek. Och i framtiden kommer ett informationselement endast att lagras inom en uppsättning.

Det här låter väldigt coolt, men hur svårt kommer det att vara att installera? Låt oss ta en titt. Vi tar kommandot för att köra och listar helt enkelt de diskar som lagringen behöver skapas på. Om allt är gjort korrekt kommer vi i rapporten att se antalet inblandade diskar. Och rådet är att det inte är bra att lägga till hälften av diskarna till en värd på en gång, eftersom detta kommer att leda till dataförlust.

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

MinIo för de små
Därefter, för att hantera och konfigurera MinIO-servern, behöver vi en agent som du kan ladda ner där från den officiella sajten.

För att inte slita ut fingrarna varje gång du skriver adressen och åtkomstnycklarna (och det är inte säkert), är det bekvämt att omedelbart skapa ett alias när du först börjar använda formeln mc aliasuppsättningen [DIN-ÅTKOMST-NYCKEL] [DIN-HEMLIGA-NYCKEL]

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

Eller så kan du omedelbart lägga till din värd:

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

Och så kommer vi att skapa en oföränderlig hink med ett vackert team

mc mb --debug -l veeamS3/immutable 

mc: <DEBUG> 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: <DEBUG> 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: <DEBUG> Response Time:  253.0017ms

--felsöka låter dig se inte bara det slutliga meddelandet, utan mer detaljerad information. 

-l betyder —med-lås, vilket betyder oföränderlig

Om vi ​​nu återgår till webbgränssnittet kommer vår nya hink att dyka upp där.

MinIo för de små
Det var allt tills vidare. Vi har skapat säker lagring och är redo att gå vidare till integration med Veeam.

Du kan också se till att allt fungerar 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 och Veeam

Varning! Om du av någon otrolig anledning vill arbeta via HTTP, skapa då en DWORD-nyckel på HKEY_LOCAL_MACHINESOFTWAREVeeamVeeam Backup and Replication SOBRArchiveS3DisableTLS. Sätt dess värde till 1 och kom ihåg att vi starkt inte godkänner sådant beteende och rekommenderar det inte till någon.

Uppmärksamhet igen! Om du, på grund av något missförstånd, fortsätter att använda Windows 2008 R2, när du försöker ansluta MinIO till Veeam, kommer du med största sannolikhet att få ett felmeddelande i stil med detta: Det gick inte att upprätta anslutning till Amazon S3-slutpunkten. Detta kan behandlas med en officiell patch från Microsoft.

Nåväl, förberedelserna är klara, låt oss öppna VBR-gränssnittet och gå till fliken Backup Infrastructure, där vi kommer att anropa guiden för att lägga till ett nytt arkiv.

MinIo för de små
Naturligtvis är vi intresserade av Objektlagring, nämligen S3 Compatible. Ange ett namn i guiden som öppnas och gå igenom stegen som anger adressen och kontot. Om det behövs, glöm inte att ange porten genom vilken förfrågningar till lagringen kommer att skickas som proxy.

MinIo för de små
Välj sedan hinken, mappen och markera rutan Gör de senaste säkerhetskopiorna oföränderliga. Eller så installerar vi det inte. Men eftersom vi har gjort en förvaringsanläggning som stöder den här funktionen vore det synd att inte använda den.

MinIo för de små
Nästa > Avsluta och njut av resultatet.

Nu måste vi lägga till det i SOBR-förvaret som en kapacitetsnivå. För att göra detta skapar vi antingen en ny eller redigerar en befintlig. Vi är intresserade av steget Capacity Tier.

MinIo för de små
Här måste vi välja vilket scenario vi ska arbeta med. Alla alternativ beskrivs ganska bra i en annan artikeln, så jag ska inte upprepa mig

Och när guiden är klar kommer uppgifter för kopiering eller överföring av säkerhetskopior att startas automatiskt. Men om dina planer inte inkluderar att omedelbart placera belastningen på alla system, var noga med att ställa in acceptabla intervall för att arbeta på Fönster-knappen.

MinIo för de små
Och, naturligtvis, kan du göra separata säkerhetskopieringsuppgifter. Vissa tror att detta är ännu bekvämare, eftersom de är något mer transparenta och förutsägbara för användaren som inte vill fördjupa sig i detaljerna i driften av skjutbanan. Och det finns tillräckligt med detaljer där, så än en gång rekommenderar jag motsvarande artikel på länken ovan.

Och slutligen, svaret på den förrädiska frågan: vad händer om du fortfarande försöker ta bort säkerhetskopian från den oföränderliga lagringen?

Här är svaret:

MinIo för de små
Det är allt för idag. I sann tradition, fånga en lista med användbara ämnen om ämnet:

Källa: will.com

Lägg en kommentar