MinIO — skvělé řešení, když potřebujete snadno a rychle zorganizovat objektové úložiště. Jednoduché nastavení, množství platforem a dobrý výkon přispěly k jeho popularitě. Takže jsme neměli jinou možnost než před měsícem oznámit kompatibilitu. . Zahrnuje tak důležitou funkci, jako je Immutability. Ve skutečnosti má MinIO celý v dokumentaci věnované naší integraci.
Proto dnes budeme hovořit o tom, jak:
- Nastavit MinIO velmi rychle.
- Nastavit MinIO o něco méně rychle, ale podstatně kvalitněji.
- Použít ho jako Archive Tier pro škálovatelné úložiště Veeam SOBR.

Co to je?
Stručné představení pro ty, kteří se s MinIO dosud nesetkali. Je to open-source objektové úložiště kompatibilní s Amazon S3 API. Je vydáváno pod licencí Apache v2 a drží se filozofie spartánského minimalismu.
To znamená, že nemá složité GUI s dashboardy, grafy a mnoha menu. MinIO jednoduše spouští svůj server jedním příkazem, na kterém lze snadno ukládat data, využívající veškerou sílu S3 API. Je však třeba poznamenat, že tato jednoduchost může být klamná, pokud jde o spotřebovávané zdroje. RAM a CPU se spotřebovávají na výbornou, ale o důvodech bude níže. Mimochodem, takové stroje jako FreeNAS a TrueNAS používají právě MinIO pod kapotou.
Na tomto úvodu můžeme skončit.
Nastavení MinIO je velmi rychlé.
Jeho nastavení je tak rychlé, že se podíváme na nastavení pro Windows a Linux. Existují i možnosti pro Docker, Kubernetes a dokonce i pro macOS, ale smysl bude všude stejný.
Tedy v případě Windows jdeme na oficiální web a stáhneme poslední verzi. Tam taky uvidíme návod na spuštění:
minio.exe server F:Data
A tam také odkaz na o něco podrobnější . Není důvod nevěřit instrukcím, takže spouštíme a dostáváme přibližně takovou odpověď.
To je všechno! Úložiště funguje a můžete začít s ním pracovat. Nebyl jsem vtipný, když jsem říkal, že MinIO je minimalismus a prostě funguje. Pokud přejdete na nabízený odkaz při spuštění, maximem dostupných funkcí je vytvořit bucket. A můžete začít zapisovat data.
Pro milovníky Linuxu vše zůstává minimálně stejně jednoduché. Nejjednodušší instrukce:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /dataVýsledek bude k nerozeznání od toho, co bylo viděno dříve.
Nastavení MinIO je o něco smysluplnější.
Jak chápeme, předchozí odstavec je baládou pro testovací účely. A abychom byli upřímní, právě pro testování MinIO jej používáme velmi široce, s čímž se rozhodně nestydíme přiznat. Samozřejmě že to funguje, ale dále než k testovacím stanovištím s tím vycházet je trapné. Takže bereme do rukou pilník a začínáme vylepšovat.
HTTPS
První povinný krok na cestě k produkci - šifrování. Na internetu už existuje milion a jedno manuálů, jak přidat certifikáty k MinIO, ale jejich obecný plán vypadá takto:
- Vytvoříme certifikát.
- V případě Windows ho dáme do C:Users%User%.miniocerts.
- V případě Linuxu do ${HOME}/.minio/certs.
- Restartujeme server.
Banální Let’s Encrypt je nudné a popsáno všude, takže naše cesta je cestou samuraje, takže v případě Windows stáhneme , a v případě Linuxu jen zkontrolujeme, že máme nainstalovaný openssl. A děláme trochu konzolové magie:
- Vytvoříme klíče: openssl ecparam -genkey -name prime256v1 | openssl ec -out private.key.
- Vytvoříme certifikát podle klíče: openssl req -new -x509 -days 3650 -key private.key -out public.crt.
- Zkopírujeme private.key a public.crt do složky uvedené výše.
- Restartujeme MinIO.
Pokud to všechno proběhlo, měli by se ve statusu objevit přibližně tyto řádky.

Povolíme MinIO Erasure Coding.
Nejdříve pár slov o tématu. Ve zjednodušené formě: jde o programovou ochranu dat před poškozením a ztrátou. Jako RAID, jen mnohem spolehlivější. Pokud klasický RAID6 může ztratit dva disky, MinIO bez problému přežije ztrátu poloviny. Technologie je podrobněji popsána v . Ale pokud vezmeme to nejdůležitější, jde o implementaci Reed-Solomonových kódů: veškeré informace jsou uloženy jako bloky dat, k nimž existují bloky parit. A zdá se, že to už bylo uděláno mnohokrát, jenže je zde důležitá „ale“: můžeme jasně uvádět poměr paritních bloků k datovým blokům pro uložené objekty.
Chcete 1:1? Prosím!
Chcete 5:2? bez problémů!
Velmi důležitá funkce, pokud používáte více uzlů a chcete najít vlastní rovnováhu mezi maximální bezpečností dat a využitými prostředky. Out of the box MinIO používá vzorec N/2 (kde N je celkový počet disků), tj. rozděluje vaše data mezi N/2 disky a N/2 paritními disky. Přeloženo do lidské řeči: můžete ztratit polovinu disků a obnovit data. Tento poměr se nastavuje přes , což vám umožňuje vybrat, co je důležitější: spolehlivost nebo kapacita.
V příručce je uveden následující příklad: předpokládejme, že máte instalaci na 16 discích a potřebujete uložit soubor o velikosti 100 MB. Pokud použijete výchozí nastavení (8 disků pro data, 8 pro paritní bloky), soubor bude zřejmě zabírat dvojnásobný objem, tj. 200 MB. Při poměru disků 10/6 to bude potřebovat 160 MB. 14/2 — 114 MB.
Další důležité odlišení od RAID: při výpadku disků MinIO pracuje na úrovni objektů a obnovuje je jeden po druhém, aniž by zastavoval celý systém. Zatímco běžný RAID musí obnovit celý svazek, což zabere nepředvídatelný čas. Podle vzpomínek autora disková skříňka, která po výpadku dvou disků potřebovala na přepočet další dva týdny. Bylo to velmi nepříjemné.
A důležité upozornění: MinIO rozděluje všechny disky pro Erasure Coding do sad od 4 do 16 disků, přičemž používá maximální možnou velikost sady. A dále bude jeden prvek informace uložen pouze v rámci jedné sady.
Zní to všechno skvěle, ale jak obtížná bude konfigurace? Podívejme se. Vezmeme příkaz pro spuštění a prostě uvedeme disky, na kterých je třeba vytvořit úložiště. Pokud je vše provedeno správně, ve zprávě uvidíme počet zapojených disků. A rada, že není dobré přidávat najednou polovinu disků na jeden host, protože to může vést ke ztrátě dat.
c:minio>minio.exe server F: G: H: I: J: K:
Dále pro správu a konfiguraci serveru MinIO budeme potřebovat agenta, kterého si můžete stáhnout vše z oficiálního webu.
Abychom se nemuseli znovu do nekonečna psát adresu a přístupové klíče (což je navíc nebezpečné), je pohodlné při prvním spuštění ihned vytvořit alias podle vzorce mc alias set [YOUR-ACCESS-KEY] [YOUR-SECRET-KEY]
mc alias set veeamS3 https://172.17.32.52:9000 YOURS3ACCESSKEY YOURSECERTKENebo můžete okamžitě přidat svůj hostitel:
mc config host add minio-veeam https://minio.jorgedelacruz.es YOURS3ACCESSKEY YOURSECERTKEYA pak vytvoříme immutable bucket skvělým příkazem
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 umožňuje vidět nejen shrnutí, ale také podrobnější informace.
-l znamená —with-lock, což znamená immutable
Pokud se teď vrátíme do webového rozhraní, objeví se tam náš nový bucket.

To je pro tuto chvíli vše. Vytvořili jsme zabezpečené úložiště a jsme připraveni přejít k integraci s Veeam.
Můžeme se také ujistit, že všechno funguje skvěle:
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 a Veeam
Pozor! Pokud z nějakého neuvěřitelného důvodu chcete pracovat přes HTTP, vytvořte v HKEY_LOCAL_MACHINESOFTWAREVeeamVeeam Backup and Replication DWORD klíč SOBRArchiveS3DisableTLS. Nastavte jeho hodnotu na 1 a pamatujte, že takové chování rozhodně neschvalujeme a nikomu ho nedoporučujeme.
Pozor ještě jednou! Pokud z nějakého nedorozumění stále používáte Windows 2008 R2, při pokusu o připojení MinIO k Veeam pravděpodobně získáte přibližně tuto chybu: Failed to establish connection to Amazon S3 endpoint. Tato chyba se řeší oficiálním patchem od .
Tak co, máme vše připraveno, otevřeme rozhraní VBR a přejdeme na kartu Backup Infrastructure, kde spustíme průvodce přidáním nového úložiště.

Samozřejmě, zajímá nás Object storage, konkrétně S3 Compatible. V otevřeném průvodci zadejte název, projděte kroky s uvedením adresy a účtu. Pokud je to potřeba, nezapomeňte uvést bránu, přes kterou budou procházet dotazy na úložiště.

Poté vyberte bucket, složku a zaškrtněte políčko Make recent backups immutable. Nebo ho nechejte nezaškrtnuté. Ale když už jsme vytvořili úložiště s podporou této funkce, bylo by hříchem ji nepoužít.

Další > Dokončit a užívat si výsledku.
Nyní je třeba přidat jej do repozitáře SOBR jako Capacity Tier. K tomu buď vytvoříme nový, nebo upravíme existující. Zajímá nás krok Capacity Tier.

Zde musíme vybrat, podle jakého scénáře budeme pracovat. Všechny možnosti jsou dobře popsány v jiném , takže nebudu opakovat
A po dokončení práce průvodce se automaticky spustí úkoly pro kopírování nebo přesouvání záloh. Pokud ale nemáte v plánu hned zatížit všechny systémy, nezapomeňte určit přijatelné intervaly pro práci pomocí tlačítka Window.

A samozřejmě lze vytvořit samostatné úkoly Backup Copy. Někteří si myslí, že je to dokonce pohodlnější, protože jsou o něco transparentnější a předvídatelnější pro uživatele, který nechce pronikat do podrobností fungování capacity tieru. A podrobností je tam dost, takže ještě jednou doporučuji příslušný článek na výše uvedeném odkazu.
A nakonec — odpověď na záludnou otázku: co se stane, pokud se pokusíte smazat zálohu z Immutable storage?
Odpověď je následující:

Tímto je dnešní diskuse u konce. Podle tradičního zvyku vám přináším seznam užitečných témat na toto téma:
- Příručka
- Příklad použití .
- Obecná příručka k nastavení .
- Vlákno na našem o S3 úložištích.
Zdroj: habr.com
