> For the complete documentation index, see [llms.txt](https://kompendium.cloudlets.zone/kompendium/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kompendium.cloudlets.zone/kompendium/backup/minio-klaster.md).

# MinIO klaster

[Minio ](https://minio.io/)to ekonomiczna obiektowa pamięć masowa, w pełni kompatybilna z Amazon S3 (Simple Storage Service ). To rozwiązanie najlepiej nadaje się do przechowywania nieustrukturyzowanych danych, takich jak: zdjęcia, filmy, pliki dziennika, itp. Ma szeroki zakres zastosowań, bo może realizować archiwizację danych, można go użyć do analizy dużych zbiorów danych lub do tworzenia kopii zapasowych i odtwarzania awaryjnego. Minio implementuje *architekturę mikroprzechowywania* (microstorage architecture) w celu utworzenia klastra (poprzez udostępnienie dużej liczby małych, połączonych ze sobą instancji pamięci masowej), dzięki czemu zapewnienia łatwą skalowalność oraz wysoką dostępność.&#x20;

![](/files/-MZIK0GKtMbWBE42zMt7)

Oprócz tego integracja powszechnie stosowanego w systemach pamięci masowych mechanizmu *kodowania korekcji błędów* (error correction coding) [Reed-Solomon](https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction) pozwala na zachowanie operatywności klastra i zapewnia pełne przywrócenie danych nawet w przypadku awarii połowy dostępnych instancji Minio.

Poniżej przedstawiamy przewodnik krok po kroku, w jaki sposób takie klastrowe rozwiązanie pamięci masowej można zainstalować na [Cloudlets.Zone](https://cloudlets.zone). Pokażemy również, jak zarządzać Minio, zarówno poprzez przyjazny dla użytkownika interfejs sieciowy, jak i przez dedykowaną aplikację konsolową.

## Instalacja klastra MinIO

1.Z poziomu Panelu Usługi Cloudlets.Zone wybierz **Marketplace** w górnym menu i wyszukaj **Minio** (grupa: "Menadżer repozytorium i plików").&#x20;

![](/files/-MZIMcleZiCHy0uk9Oac)

2\. Określ wymagane parametry dla tworzonego klastra, wypełniając następujące pola:

![](/files/-MZIMEsRhACxa3A1Rg93)

* **Liczba węzłów** - wybierz wymagany rozmiar klastra, spośród predefiniowanych opcji 1 (środowiska testowe), 4, 8 lub 16 węzłów Minio (środowiska produkcyjne). Dla każdego węzła utworzony zostanie osobny kontener, a każdy kontener rozdystrybuowany zostanie między dostępne serwery sprzętowe, celem uzyskania wysokiej dostępności.
* **Środowisko** - wpisz preferowaną nazwę klastra Minio, która wraz z domeną platformy będzie stanowić wewnętrzną nazwę środowiska `[{nazwa-klastra}.node.cloudlets.zone]`
* **Nazwa wyświetlana** - opcjonalnie dodaj łatwą nazwę, która będzie wyświetlana w Panelu Usługi.

Gdy wszystko będzie gotowe, kliknij **instaluj.**

3\.  Poczekaj kilka minut, aż platforma automatycznie utworzy i skonfiguruje klaster. Po zakończeniu tej operacji system poinformuje Cię o pomyślnej instalacji, wyświetlając komunikat w Panelu Usługi.&#x20;

![](/files/-MZITBH6ENsAQuO94Drg)

Poza tym, otrzymasz maile ze szczegółami instalacji oraz poświadczeniami. Możesz też od razu kliknąć link wyświetlony w oknie powiadomień, aby uzyskać szybkie przekierowanie do Panelu Administracyjnego Minio.

4\. Po przejściu do strony startowej środowiska Minio otworzy się okno, w którym należy wpisać klucz dostępu i klucz tajny (Access Key & Secret Key). Zmiana kluczy nie jest możliwa z poziomu Panelu aplikacji. Zobacz [jak zmienić poświadczenia](https://kompendium.cloudlets.zone/aplikacje/minio-klaster#jak-zmienic-poswiadczenia).

![](/files/-MZIWx2eH2bCcoRP5gsn)

5\.  Teraz możesz już zarządzać swoimi plikami za pomocą przyjaznego interfejsu. Na przykład użyj przycisku **+** w prawym dolnym rogu, aby utworzyć nowy zasobnik i przesłać potrzebne pliki do magazynu.

![](/files/-MZIf4gG_G9ZslMsIXFX)

{% hint style="info" %}
Domyślna konfiguracja zakłada, że połączenie z klastrem Minio jest ustanawiane za pośrednictwem *Shared Load Balancer*. Ten element infrastruktury ma ograniczenie rozmiaru przesyłanego pliku do 512 MB. Aby operować z większymi plikami, należy dołączyć publiczny adres IP do co najmniej jednego z węzłów klastra. Dodanie publicznego adresu IP zapewni dodatkowe możliwości. Na przykład, umożliwi użycie własnej nazwy domeny oraz dołączenie własnego certyfikatu SSL.&#x20;
{% endhint %}

![](/files/-MZIh_M0ESY4BGnZumem)

To tyle! Twój niezawodny klaster pamięci masowej jest gotowy do pracy :)

### Jak zmienić poświadczenia?

1. Jeśli zechcesz zmienić wygenerowany przez platformę klucz tajny i klucz dostępu (Access Key & Secret Key) należy to zrobić z poziomu Panelu Usługi Cloudlets.Zone klikając "Zmienne" (Zmienne środowiskowe) w menu serwera aplikacji.

![](/files/-MZMoOky7C7XK5LXOw8p)

2\. Modyfikujemy pola `MINIO_ACCESS_KEY` oraz ewentualnie `MINIO_SECRET_KEY`.

![](/files/-MZMrJz_IUqOysljSujA)

3\. Pamiętaj aby po edycji kliknąć przycisk **Zastosuj.** System potwierdzi przyjęcie zmiany.&#x20;

![](/files/-MZMrxBhpogzGRww4yjK)

4\. Aby nowe poświadczenia zaczęły obowiązywać należy jeszcze zrestartować kontenery MinIO. Użyj opcji "Uruchom ponownie kontenery". Restart można przeprowadzić sekwencyjnie.

![](/files/-MZMv9DnAZamiAdim0Ds)

Po restarcie zaczną obowiązywać nowe poświadczenia.

## Instalacja klienta MinIO

Aby zarządzać danymi za pośrednictwem terminala, trzeba uzyskać dostęp do swojego klastra pamięci masowej Minio za pośrednictwem dedykowanego klienta konsoli.&#x20;

1.W tym celu pobierz [klienta Minio](https://min.io/download#/linux) z oficjalnej strony internetowej i zainstaluj.

```bash
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
```

2\. Utwórz alias lokalny dla magazynu Minio za pomocą następującego polecenia:

`./mc config host add`` `**`{storage} {cluster_domain} {access_key} {secret_key}`**

* **{storage}** - lokalny alias dla Twojego klastra Minio (np. super-minio)
* **{cluster\_domain}** - nazwa domeny Twojego klastra pamięci masowej Minio (w naszym przypadku: <https://minio-klaster.node.cloudlets.zone>) lub jego publiczny adres IP (w następującym formacie: <http://212.127.94.60>).
* **{access\_key}** i **{secret\_key}** - odpowiednie poświadczenia dostępu do klastra (klucze znajdziesz w mailu z poświadczeniami).

{% hint style="warning" %}
Poniżej przykład jako kontynuacja prezentacji naszego środowiska demonstracyjnego. Pamiętaj by podstawić własne dane w polach: **aliasu** i **domeny** oraz użyć własnych **poświadczeń!**
{% endhint %}

```bash
./mc config host add minio-klaster https://minio-klaster.node.cloudlets.zone 9CCfjQk991 HcckywIoQ8
```

![](/files/-MZIvGdsRzUm9JS-I0GE)

2\. Następnie utworzyć należy nowy zasobnik, w którym będą przechowywane Twoje dane.

&#x20;`./mc mb`` `**`{storage}`**`/`**`{bucket}`**  &#x20;

Zastąp symbol zastępczy {bucket} preferowaną nazwą (np. pojemnik). W naszym środowisku demonstracyjnym będzie to:

```bash
./mc mb minio-klaster/zasobnik
```

![](/files/-MZIyPAtV8W1BiN7CzMq)

3\. Teraz już możesz przesłać dowolny plik lub folder (po prostu dodaj odpowiednią flagę **-r** ) na swój serwer magazynu, używając następującego polecenia:

&#x20;`./mc cp`` `**`{upload} {storage}`**`/`**`{bucket}`**&#x20;

```bash
./mc cp ~/tmp/Raport_Best_in_Cloud.pdf minio-klaster/zasobnik
```

W tym przypadku symbol zastępczy **{upload}** to ścieżka do folderu (pliku), który powinien zostać przesłany. W naszym przykładzie przesłaliśmy plik *Raport\_Best\_in\_Cloud.pdf*  z folderu **tmp** na komputerze do repozytorium klastra Minio.

![](/files/-MZJ0mrLpilg1peRR8My)

Plik wylądował na serwerze.

![](/files/-MZJ10SfaoRF_-0JZgpi)

{% hint style="info" %}
Więcej informacji o konfiguracji klienta Minio znaleźć można w [oficjalnej dokumentacji](https://docs.min.io/docs/minio-client-complete-guide). Polecamy także [pełną dokumentację ](https://docs.min.io/?ref=ob)projektu MinIO.&#x20;

Minio jest kompatybilny z [AWS CLI](https://docs.minio.io/docs/aws-cli-with-minio) do pracy z usługami przechowywania danych w chmurze AWS S3. Obsługuje także zestaw bibliotek [Java API](https://docs.minio.io/docs/java-client-quickstart-guide) do implementacji niektórych złożonych przepływów danych.
{% endhint %}

## Skalowanie Klastra MinIO

Klaster Minio zużywa mniej niż 1 [cloudlet ](https://kompendium.cloudlets.zone/faq/pytania-i-odpowiedzi#co-to-jest-cloudlet)**na węzeł** w trybie bezczynności (co odpowiada 128 MiB pamięci RAM i 400 MHz procesora). **Domyślna** instalacja Minio ma ustawiony limit skalowania pionowego na 16 cloudletów (tj. 2 GiB pamięci RAM i 6,4 GHz procesora). Limit można zwiększy, bo każdy kontener na platformie Cloudlets.Zone można salować do 256 Cloudletów. W efekcie, jesteśmy w stanie obsłużyć bardzo duże piki ruchu. Warto zwrócić uwagę, że stosujemy [rozliczenia za rzeczywiste użycie](https://kompendium.cloudlets.zone/faq/pytania-i-odpowiedzi#jak-naliczane-sa-oplaty), a nie za limity, czyli opłata naliczona zostanie tylko za użyte zasoby.

W naszym przykładzie zastosowaliśmy instalację klastrową z 4 węzłami Minio. W tym przypadku, sumaryczne użycie pamięci RAM w trybie bezczynności (bez podłączonych klientów) wyniosło ok. 700 MiB.&#x20;

![](/files/-MZJ8ILObnBHk9siUdGI)

Klaster Minio zapewnia zaawansowaną ochronę danych przed awariami sprzętu i cichym uszkodzeniem danych dzięki zastosowaniu kodu kasującego ([erasure code](https://docs.min.io/docs/minio-erasure-code-quickstart-guide)) i sum kontrolnych. W efekcie, dostęp do danych będzie możliwy nawet w przypadku awarii połowy instancji klastra!

Oczywiście, wszystko ma swoją cenę. Aby zapewnić taki poziom nadmiarowości, tylko 50% całkowitej przestrzeni dyskowej klastra jest dostępne do użytku. Na przykład, jeśli hostujesz 4 węzły Minio z limitem 100 GB na kontener (wymaganą ilość można również dostosować za pomocą kreatora topologii), Twój klaster pamięci S3 będzie w stanie przechowywać 50% \* 4 \* 100 GB, co odpowiada 200 GB danych.

<figure><img src="/files/UHS4NxSH6kWE1hdp1BiY" alt=""><figcaption></figcaption></figure>

{% embed url="<https://cloudlets.zone/rejestracja/?utm_campaign=jitsi&utm_medium=kompendium&utm_source=kompendium>" %}
