Jak Zainstalować i Skonfigurować GlusterFS na Ubuntu 22.04

Jak Zainstalować i Skonfigurować GlusterFS na Ubuntu 22.04

 

GlusterFS to darmowy i otwarty system plików rozproszonych, który pozwala na łączenie wielu serwerów (węzłów) w jedną, dużą i elastyczną przestrzeń dyskową. Jest to doskonałe rozwiązanie do budowania skalowalnych i odpornych na awarie systemów pamięci masowej, idealne dla klastrów baz danych, środowisk wirtualizacyjnych czy usług kontenerowych. Ten przewodnik pokaże Ci, jak zainstalować i skonfigurować podstawowy klaster GlusterFS na systemie operacyjnym Ubuntu 22.04 LTS (Jammy Jellyfish).

Uwaga: Ten przewodnik zakłada, że masz podstawową wiedzę na temat zarządzania serwerami Linux i poleceń terminala. Wszelkie polecenia należy wykonywać z uprawnieniami roota lub za pomocą `sudo`. Do demonstracji potrzebne są co najmniej dwa serwery (węzły).

Spis Treści

  1. Wymagania Wstępne
  2. Przygotowanie Systemu (na wszystkich węzłach)
  3. Instalacja GlusterFS (na wszystkich węzłach)
  4. Konfiguracja Zapory Sieciowej (UFW)
  5. Tworzenie Klastra GlusterFS
  6. Tworzenie Woluminu GlusterFS
  7. Montowanie Woluminu GlusterFS
  8. Testowanie GlusterFS
  9. Promocja: Zbuduj klaster GlusterFS na naszych VPS Linux!
  10. Podsumowanie

1. Wymagania Wstępne

  • Co najmniej **dwa serwery** (fizyczne lub VPS) z zainstalowanym czystym systemem **Ubuntu 22.04 LTS (Jammy Jellyfish)**.
  • Dostęp root lub użytkownik z uprawnieniami `sudo` na wszystkich węzłach.
  • **Statyczny adres IP** dla każdego serwera.
  • **Nazwy hostów (FQDN)** dla każdego serwera (np. `node1.example.com`, `node2.example.com`).
  • Dla każdego węzła, **dodatkowy, pusty dysk lub partycja**, która zostanie użyta jako nośnik dla GlusterFS (np. `/dev/sdb`).
  • Stabilne połączenie sieciowe między węzłami.
Ważne: Przed rozpoczęciem upewnij się, że nie ma żadnych ważnych danych na dyskach/partycjach przeznaczonych dla GlusterFS, ponieważ zostaną one sformatowane.

2. Przygotowanie Systemu (na wszystkich węzłach)

Te kroki należy wykonać na **każdym węźle** klastra GlusterFS.

Aktualizacja Systemu

Zawsze zaczynaj od aktualizacji list pakietów i uaktualnienia istniejących pakietów do najnowszych wersji.

sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y

Konfiguracja Nazwy Hostów

Ustaw unikalną i w pełni kwalifikowaną nazwę hosta (FQDN) dla każdego serwera.

Na Węźle 1:

sudo hostnamectl set-hostname node1.example.com

Na Węźle 2:

sudo hostnamectl set-hostname node2.example.com

(Powtórz dla wszystkich dodatkowych węzłów)

Edycja Pliku /etc/hosts

Dodaj wpisy dla wszystkich węzłów w pliku /etc/hosts na **każdym węźle**. Dzięki temu węzły będą mogły poprawnie rozpoznawać się nawzajem po nazwach FQDN.

sudo nano /etc/hosts

Dodaj następujące linie (zastąp adresy IP i nazwy hostów swoimi):

127.0.0.1       localhost
127.0.1.1       node1.example.com  node1 # Na węźle 1
YOUR_NODE1_IP   node1.example.com  node1
YOUR_NODE2_IP   node2.example.com  node2

# Na węźle 2
# 127.0.0.1       localhost
# 127.0.1.1       node2.example.com  node2
# YOUR_NODE1_IP   node1.example.com  node1
# YOUR_NODE2_IP   node2.example.com  node2

Zapisz i zamknij plik (Ctrl+O, Enter, Ctrl+X).

Przygotowanie Dysku dla GlusterFS

Dla każdego węzła, upewnij się, że masz dodatkowy, pusty dysk (lub partycję). W tym przewodniku zakładamy, że jest to `/dev/sdb`. Stworzymy na nim system plików i katalog do przechowywania danych GlusterFS.

# Na każdym węźle
sudo mkfs.xfs -f /dev/sdb # Sformatuj dysk jako XFS (zalecane dla GlusterFS)
sudo mkdir -p /mnt/gluster_brick # Utwórz katalog, który będzie cegłą GlusterFS
sudo mount /dev/sdb /mnt/gluster_brick # Zamontuj dysk
echo '/dev/sdb /mnt/gluster_brick xfs defaults 0 0' | sudo tee -a /etc/fstab # Dodaj do fstab dla automatycznego montowania

3. Instalacja GlusterFS (na wszystkich węzłach)

Zainstaluj pakiet GlusterFS na **każdym węźle**.

sudo apt install software-properties-common -y
sudo add-apt-repository ppa:gluster/glusterfs-9 -y # GlusterFS 9.x jest stabilną wersją dla 22.04
sudo apt update
sudo apt install glusterfs-server -y

Po instalacji upewnij się, że usługa GlusterFS jest uruchomiona i włączona do startu systemu:

sudo systemctl start glusterd
sudo systemctl enable glusterd
sudo systemctl status glusterd --no-pager

4. Konfiguracja Zapory Sieciowej (UFW)

**UFW (Uncomplicated Firewall)** to prosty w obsłudze firewall dla Linuksa. Zainstaluj i skonfiguruj go na **każdym węźle**.

Instalacja UFW

sudo apt install ufw -y

Domyślne Reguły

UFW domyślnie blokuje połączenia przychodzące. Zezwól na połączenia wychodzące.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Zezwolenie na Wymagane Porty

GlusterFS używa szeregu portów. Najprostszym sposobem na zezwolenie na ruch między węzłami GlusterFS jest otwarcie portu 24007 (domyślny port demona GlusterFS) oraz zakresu portów używanych przez woluminy. Alternatywnie, możesz zezwolić na ruch z zaufanych adresów IP węzłów klastra.

Zezwolenie na podstawowe porty GlusterFS:

sudo ufw allow 22/tcp comment 'Allow SSH'
sudo ufw allow 24007/tcp comment 'GlusterFS Daemon'
sudo ufw allow 49152:49251/tcp comment 'GlusterFS volumes range' # Standardowy zakres dla woluminów
sudo ufw allow from YOUR_NODE1_IP to any port 24007 comment 'Allow GlusterFS from Node1'
sudo ufw allow from YOUR_NODE2_IP to any port 24007 comment 'Allow GlusterFS from Node2'
# Powtórz dla wszystkich węzłów, wymieniając ich IP
Uwaga: Lepszym podejściem dla portów woluminów jest zezwolenie na nie tylko z IP innych węzłów klastra, np.:

sudo ufw allow from YOUR_NODE1_IP to any port 49152:49251 proto tcp comment 'GlusterFS from Node1'
sudo ufw allow from YOUR_NODE2_IP to any port 49152:49251 proto tcp comment 'GlusterFS from Node2'

Włączenie UFW

Po skonfigurowaniu reguł, włącz firewall. Zostaniesz poproszony o potwierdzenie.

sudo ufw enable

Potwierdź, wpisując y.

Sprawdź status UFW:

sudo ufw status verbose

5. Tworzenie Klastra GlusterFS

Te kroki wykonaj tylko na **jednym węźle** (np. `node1.example.com`).

Najpierw, z węzła 1, dodaj węzeł 2 do klastra peer GlusterFS:

sudo gluster peer probe node2.example.com

Poczekaj chwilę, a następnie sprawdź status peerów. Powinien wyświetlić oba węzły w statusie `Connected`.

sudo gluster peer status

(Powtórz dla wszystkich dodatkowych węzłów, dodając je z jednego z już połączonych węzłów)

6. Tworzenie Woluminu GlusterFS

Wolumin to logiczna jednostka pamięci masowej, składająca się z jednej lub więcej cegieł (bricks – katalogów na dyskach).

Istnieje kilka typów woluminów GlusterFS:

  • Distributed: Dane są rozproszone na cegłach bez redundancji. Największa pojemność, brak odporności na awarie.
  • Replicated: Dane są replikowane na wszystkich cegłach. Zapewnia redundancję i odporność na awarie węzłów.
  • Distributed Replicated (Dist-Replicate): Połączenie obu – replikowane grupy cegieł są rozproszone. Dobry balans między wydajnością, skalowalnością i redundancją.
  • Stripe: Dane są rozdzielane na fragmenty i zapisywane na różnych cegłach (jak RAID 0). Zwiększa wydajność, brak redundancji.

W tym przykładzie stworzymy wolumin Replicated (replikowany), który zapewni redundancję danych.

Wykonaj to polecenie na **jednym węźle** (np. `node1.example.com`).

sudo gluster volume create my_replicated_volume replica 2 node1.example.com:/mnt/gluster_brick node2.example.com:/mnt/gluster_brick force
  • my_replicated_volume: Nazwa Twojego woluminu.
  • replica 2: Określa, że wolumin jest replikowany i będzie miał 2 kopie danych.
  • node1.example.com:/mnt/gluster_brick: Ścieżka do cegły na węźle 1.
  • node2.example.com:/mnt/gluster_brick: Ścieżka do cegły na węźle 2.
  • force: Opcja używana, jeśli katalog cegły nie jest pusty (używamy świeżego katalogu, ale to dobra praktyka).

Po utworzeniu woluminu, uruchom go:

sudo gluster volume start my_replicated_volume

Sprawdź status woluminu:

sudo gluster volume info my_replicated_volume

Powinieneś zobaczyć informacje o woluminie, w tym status `Started` i listę cegieł.

7. Montowanie Woluminu GlusterFS

Teraz możesz zamontować utworzony wolumin GlusterFS na dowolnym serwerze (węźle klastra lub innym kliencie).

Te kroki należy wykonać na **każdym kliencie** (w tym na węzłach klastra, jeśli chcesz na nich korzystać z woluminu).

Instalacja klienta GlusterFS

sudo apt update
sudo apt install open-iscsi glusterfs-client -y

Tworzenie punktu montowania

sudo mkdir -p /mnt/my_gluster_share

Montowanie woluminu

sudo mount -t glusterfs node1.example.com:/my_replicated_volume /mnt/my_gluster_share

Możesz użyć dowolnego węzła GlusterFS do montowania woluminu. GlusterFS automatycznie zarządza dostępem do danych i ich redundancją.

Automatyczne montowanie przy starcie (fstab)

Aby wolumin był montowany automatycznie po restarcie, dodaj wpis do pliku /etc/fstab:

sudo nano /etc/fstab

Dodaj następującą linię:

node1.example.com:/my_replicated_volume /mnt/my_gluster_share glusterfs defaults,_netdev 0 0

Opcja `_netdev` zapewnia, że system będzie próbował zamontować system plików dopiero po uruchomieniu sieci.

Przetestuj montowanie:

sudo mount -a

Sprawdź, czy wolumin jest zamontowany:

df -h

8. Testowanie GlusterFS

Aby upewnić się, że GlusterFS działa poprawnie, wykonaj kilka testów.

Zapisywanie plików

Zaloguj się na jeden z węzłów (lub klienta, gdzie zamontowałeś wolumin) i utwórz plik:

sudo touch /mnt/my_gluster_share/test_file.txt
sudo echo "Hello from GlusterFS!" > /mnt/my_gluster_share/test_file.txt

Weryfikacja replikacji

Teraz, na drugim węźle (lub innym kliencie, gdzie zamontowałeś ten sam wolumin), sprawdź, czy plik jest widoczny:

ls -l /mnt/my_gluster_share/
cat /mnt/my_gluster_share/test_file.txt

Powinieneś zobaczyć i móc odczytać `test_file.txt`.

Test awarii

Aby przetestować odporność na awarie, możesz zatrzymać usługę GlusterFS na jednym z węzłów:

sudo systemctl stop glusterd

Następnie spróbuj zapisać lub odczytać plik z zamontowanego woluminu na innym węźle. Powinieneś nadal mieć dostęp do danych. Po zakończeniu testu, uruchom ponownie usługę na zatrzymanym węźle:

sudo systemctl start glusterd

9. Promocja: Zbuduj klaster GlusterFS na naszych VPS Linux!

Potrzebujesz niezawodnych serwerów dla swojego klastra GlusterFS?

GlusterFS to potężne narzędzie do budowania skalowalnych systemów plików, a nasze **serwery VPS Linux** stanowią idealną platformę do ich wdrożenia.

W Netcloud24 oferujemy:

  • Wydajne VPSy Linux: Zoptymalizowane pod kątem zastosowań serwerowych, zapewniające wysoką moc obliczeniową i szybkie dyski SSD NVMe.
  • Elastyczność: Łatwe skalowanie zasobów i dodawanie kolejnych węzłów do klastra w miarę wzrostu Twoich potrzeb.
  • Niezawodność: Stabilna infrastruktura, która jest fundamentem dla odpornego na awarie systemu plików.
  • Pełna kontrola: Masz pełny dostęp root do swoich maszyn, co pozwala na dowolną konfigurację.

Zbuduj swój klaster GlusterFS z nami i ciesz się elastyczną i bezpieczną pamięcią masową!

Sprawdź naszą ofertę VPS Linux dla klastrów!

Odwiedź również naszą stronę główną, aby dowiedzieć się więcej o wszystkich naszych usługach hostingowych: Netcloud24.com

10. Podsumowanie

Gratulacje! Pomyślnie zainstalowałeś i skonfigurowałeś podstawowy klaster GlusterFS na Ubuntu 22.04. Nauczyłeś się, jak przygotować węzły, zainstalować GlusterFS, utworzyć klaster peerów, a następnie stworzyć i zamontować wolumin replikowany.

GlusterFS oferuje wiele zaawansowanych funkcji, takich jak woluminy rozproszone, striped, geo-replication, czy tiering, które możesz eksplorować w zależności od swoich potrzeb. Pamiętaj o monitorowaniu stanu klastra i regularnych kopiach zapasowych, aby zapewnić bezpieczeństwo i ciągłość działania swoich danych.

„`

Netcloud24.com

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *