MinIo dla najmłodszych

MinIO to doskonałe rozwiązanie, gdy potrzebujesz łatwo i prosto zorganizować przechowywanie obiektów. Podstawowa konfiguracja, wiele platform i dobre wykonanie spełniły swoje zadanie w dziedzinie popularnej miłości. Nie mieliśmy więc innego wyjścia, jak miesiąc temu zadeklarować kompatybilność Veeam Backup & Replication oraz MinIO. Zawiera tak ważną funkcję jak niezmienność. Tak naprawdę MinIO ma całość sekcja w dokumentacji poświęconej naszej integracji.

Dlatego dzisiaj porozmawiamy o tym, jak:

  • Konfiguracja MinIO jest bardzo szybka.
  • Konfiguracja MinIO jest trochę mniej szybka, ale znacznie lepsza.
  • Użyj go jako warstwy archiwalnej dla skalowalnego repozytorium Veeam SOBR.

MinIo dla najmłodszych

Czym jesteś?

Krótkie wprowadzenie dla tych, którzy nie mieli styczności z MinIO. Jest to obiektowa pamięć masowa typu open source kompatybilna z API Amazon S3. Wydany na licencji Apache v2 i jest zgodny z filozofią spartańskiego minimalizmu.

Oznacza to, że nie ma rozbudowanego GUI z pulpitami nawigacyjnymi, wykresami i licznymi menu. MinIO po prostu uruchamia swój serwer jednym poleceniem, gdzie możesz po prostu przechowywać dane, korzystając z pełnej mocy API S3. Należy jednak zauważyć, że ta prostota może być zwodnicza, jeśli chodzi o wykorzystane zasoby. Pamięć RAM i procesor są doskonale wchłaniane, ale przyczyny zostaną omówione poniżej. A tak na marginesie, takie kombajny jak FreeNAS i TrueNAS wykorzystują MinIO pod maską.

W tym miejscu można zakończyć ten wstęp.

Konfiguracja MinIO jest bardzo szybka

Konfiguracja jest tak szybka, że ​​przyjrzymy się jej dla systemów Windows i Linux. Istnieją opcje dla Dockera, Kubernetisa, a nawet MacOS, ale znaczenie będzie wszędzie takie samo.

Zatem w przypadku systemu Windows przejdź na oficjalną stronę internetową https://min.io/download#/windows i pobierz najnowszą wersję. Widzimy tam również instrukcje dotyczące uruchamiania:

 minio.exe server F:Data

Jest też link do nieco bardziej szczegółowego Skrócona instrukcja obsługi. Nie ma sensu nie wierzyć instrukcji, więc uruchamiamy ją i otrzymujemy coś w rodzaju tej odpowiedzi.

MinIo dla najmłodszych
To wszystko! Pamięć działa i można z nią pracować. Nie żartowałem, mówiąc, że MinIO jest minimalistyczne i po prostu działa. Jeśli skorzystasz z łącza oferowanego podczas uruchamiania, maksymalne dostępne funkcje pozwolą na utworzenie wiadra. I możesz zacząć zapisywać dane.

Dla miłośników Linuksa wszystko pozostaje nie mniej proste. Najprostsze instrukcje:


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

Wynik będzie nie do odróżnienia od tego, co widzieliśmy wcześniej. 

Konfiguracja MinIO ma trochę większe znaczenie

Jak rozumiemy, poprzedni akapit ma charakter rozpieszczania w celach testowych. I nie oszukujmy się, MinIO wykorzystujemy bardzo szeroko do testów, do czego wcale nie wstydzimy się przyznać. Oczywiście, że to działa, ale szkoda znosić to poza stanowiskami testowymi. Dlatego bierzemy plik w swoje ręce i zaczynamy przywoływać go na myśl.

HTTPS

Pierwszym obowiązkowym krokiem na drodze do produkcji jest szyfrowanie. W sieci jest już milion i tysiąc instrukcji dodawania certyfikatów do MiniIO, ale ich ogólny plan jest taki:

  • Utwórz certyfikat
  • W przypadku systemu Windows umieść go w C:Users%User%.miniocerts
  • Dla Linuksa w ${HOME}/.minio/certs 
  • Ponowne uruchomienie serwera

Banalny Let's Encrypt jest nudny i wszędzie jest opisywany, więc nasza ścieżka jest ścieżką samuraja, więc w przypadku Windowsa pobieramy Cygwin, a w przypadku Linuksa po prostu sprawdzamy, czy mamy zainstalowany openssl. I robimy małą magię konsoli:

  • Utwórz klucze: openssl ecparam -genkey -name prime256v1 | openssl ec -out klucz prywatny
  • Certyfikat tworzymy za pomocą klucza: openssl req -new -x509 -days 3650 -key private.key -out public.crt
  • Skopiuj pliki private.key i public.crt do folderu określonego powyżej
  • Uruchom ponownie MinIO

Jeżeli wszystko poszło tak jak powinno to w statusie pojawi się coś takiego.

MinIo dla najmłodszych

Włącz kodowanie kasowania MinIO

Na początek kilka słów o temacie. W skrócie: jest to programowa ochrona danych przed uszkodzeniem i utratą. Jak nalot, tylko o wiele bardziej niezawodny. Jeśli klasyczny RAID6 może sobie pozwolić na utratę dwóch dysków, to MinIO bez problemu poradzi sobie ze stratą połowy. Bardziej szczegółowo technologię opisano w oficjalny przewodnik. Ale jeśli weźmiemy esencję, jest to implementacja kodów Reeda-Solomona: wszystkie informacje są przechowywane w postaci bloków danych, które mają bloki parzystości. I wydaje się, że wszystko to zostało już zrobione wiele razy, ale jest ważne „ale”: możemy jednoznacznie wskazać stosunek bloków parzystości do bloków danych dla przechowywanych obiektów.
Chcesz 1:1? Proszę!
Chcesz 5:2? Bez problemu!

Bardzo ważna funkcja jeśli korzystasz z kilku węzłów jednocześnie i chcesz znaleźć własny balans pomiędzy maksymalnym bezpieczeństwem danych a wydatkowanymi zasobami. Po wyjęciu z pudełka MinIO używa formuły N/2 (gdzie N to całkowita liczba dysków), tj. dzieli dane pomiędzy dyski z danymi N/2 i dyski z parzystością N/2. Tłumacząc po ludzku: możesz stracić połowę dysków i odzyskać dane. Ta relacja jest przekazywana poprzez Klasa przechowywania, pozwalając Ci wybrać dla siebie co jest ważniejsze: niezawodność czy pojemność.

Poradnik podaje następujący przykład: załóżmy, że masz instalację na 16 dyskach i musisz zapisać plik o rozmiarze 100 MB. Jeżeli użyte zostaną ustawienia domyślne (8 dysków na dane, 8 na bloki parzystości), to plik ostatecznie zajmie prawie dwukrotnie większą objętość, tj. 200 MB. Jeśli współczynnik dysku wynosi 10/6, potrzebne będzie 160 MB. 14/2 - 114 MB.

Kolejna istotna różnica w stosunku do rajdów: w przypadku awarii dysku MinIO będzie działać na poziomie obiektu, odtwarzając jeden po drugim, bez zatrzymywania całego systemu. Podczas gdy zwykły nalot będzie zmuszony przywrócić cały wolumin, co zajmie nieprzewidywalną ilość czasu. Autor pamięta półkę na dyski, której przeliczenie po wypadnięciu dwóch dysków zajęło półtora tygodnia. To było dość nieprzyjemne.

I ważna uwaga: MinIO dzieli wszystkie dyski do Erasure Coding na zestawy od 4 do 16 dysków, wykorzystując maksymalny możliwy rozmiar zestawu. A w przyszłości jeden element informacji będzie przechowywany tylko w jednym zestawie.

Wszystko brzmi bardzo fajnie, ale jak trudne będzie ustawienie? Przyjrzyjmy się. Pobieramy polecenie uruchomienia i po prostu wyświetlamy listę dysków, na których należy utworzyć pamięć. Jeśli wszystko zostanie wykonane poprawnie, w raporcie zobaczymy liczbę zaangażowanych dysków. A rada jest taka, że ​​nie warto dodawać połowy dysków do jednego hosta na raz, bo doprowadzi to do utraty danych.

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

MinIo dla najmłodszych
Następnie do zarządzania i konfiguracji serwera MinIO będziemy potrzebować agenta, który możesz pobrać w tym samym miejscu z oficjalnej strony.

Aby nie męczyć palców przy każdym wpisywaniu adresu i klawiszy dostępu (a nie jest to bezpieczne), wygodnie jest utworzyć alias od razu po rozpoczęciu korzystania z zestawu aliasów formuły mc [TWÓJ-KLUCZ-DOSTĘPU] [TWÓJ-TAJNY-KLUCZ]

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

Możesz też od razu dodać swojego hosta:

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

A potem stworzymy niezmienne wiadro z pięknym zespołem

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

--odpluskwić pozwala zobaczyć nie tylko końcową wiadomość, ale także bardziej szczegółowe informacje. 

-l oznacza —z blokadą, co oznacza niezmienność

Jeśli teraz wrócimy do interfejsu internetowego, pojawi się tam nasz nowy wiadro.

MinIo dla najmłodszych
To wszystko na teraz. Stworzyliśmy bezpieczną pamięć masową i jesteśmy gotowi na integrację z Veeam.

Możesz także upewnić się, że wszystko działa idealnie:

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

Ostrzeżenie! Jeśli z jakiegoś niewiarygodnego powodu chcesz pracować przez HTTP, to w HKEY_LOCAL_MACHINESOFTWAREVeeamVeeam Backup and Replication utwórz klucz DWORD SOBRArchiveS3WyłączTLS. Ustaw jego wartość na 1 i pamiętaj, że zdecydowanie nie pochwalamy takiego zachowania i nikomu go nie polecamy.

Uwaga ponownie! Jeśli z powodu nieporozumienia będziesz nadal korzystać z systemu Windows 2008 R2, wówczas przy próbie połączenia MinIO z Veeam najprawdopodobniej pojawi się błąd podobny do tego: Nie udało się nawiązać połączenia z punktem końcowym Amazon S3. Można temu zaradzić za pomocą oficjalnej łatki firmy Microsoft.

Cóż, przygotowania zakończone, otwórzmy interfejs VBR i przejdźmy do zakładki Infrastruktura Backupu, gdzie wywołamy kreatora dodania nowego repozytorium.

MinIo dla najmłodszych
Oczywiście interesuje nas pamięć obiektowa, czyli kompatybilna z S3. W kreatorze, który się otworzy, ustaw nazwę i wykonaj kroki wskazujące adres i konto. W razie potrzeby nie zapomnij określić bramy, przez którą będą przesyłane żądania do magazynu.

MinIo dla najmłodszych
Następnie wybierz wiadro, folder i zaznacz pole Ustaw, że ostatnie kopie zapasowe będą niezmienne. Albo go nie instalujemy. Ponieważ jednak stworzyliśmy magazyn obsługujący tę funkcję, grzechem byłoby z niego nie skorzystać.

MinIo dla najmłodszych
Dalej > Zakończ i ciesz się efektem.

Teraz musimy dodać go do repozytorium SOBR jako warstwę pojemności. W tym celu albo tworzymy nowy, albo edytujemy istniejący. Interesuje nas krok Poziom wydajności.

MinIo dla najmłodszych
Tutaj musimy wybrać, z którym scenariuszem będziemy pracować. Wszystkie opcje są dość dobrze opisane w innym Artykuł, więc nie będę się powtarzał

Po zakończeniu działania kreatora automatycznie uruchomione zostaną zadania kopiowania lub przesyłania kopii zapasowych. Jeśli jednak Twoje plany nie obejmują natychmiastowego obciążenia wszystkich systemów, pamiętaj o ustaleniu akceptowalnych interwałów pracy nad przyciskiem Okno.

MinIo dla najmłodszych
I oczywiście możesz wykonać osobne zadania kopiowania zapasowego. Niektórzy uważają, że jest to jeszcze wygodniejsze, gdyż są nieco bardziej przejrzyste i przewidywalne dla użytkownika, który nie chce zagłębiać się w szczegóły działania strzelnicy. I jest tam wystarczająco dużo szczegółów, więc jeszcze raz polecam odpowiedni artykuł pod powyższym linkiem.

I wreszcie odpowiedź na zdradzieckie pytanie: co się stanie, jeśli nadal będziesz próbował usunąć kopię zapasową z pamięci Immutable?

Oto odpowiedź:

MinIo dla najmłodszych
To wszystko na dzisiaj. Zgodnie z prawdziwą tradycją, złap listę przydatnych tematów na ten temat:

Źródło: www.habr.com

Dodaj komentarz