# 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>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kompendium.cloudlets.zone/kompendium/backup/minio-klaster.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
