acch.spectrum_scale
WAŻNE: Niestety, ten projekt nie jest już aktywnie rozwijany przez jego pierwotnego twórcę(ów). Kod został połączony z "oficjalnym" projektem IBM/ibm-spectrum-scale-install-infra — to tutaj będzie miało miejsce dalsze rozwijanie. Choć ten (oryginalny) projekt może już nie otrzymywać aktualizacji ani wsparcia, kod wciąż jest dostępny dla osób zainteresowanych jego dalszym rozwojem.
IBM Spectrum Scale (GPFS) Rola Ansible
Wysoko konfigurowalna rola Ansible do instalacji i konfiguracji IBM Spectrum Scale (GPFS)
Szczególnie poszukuję informacji zwrotnej oraz przyszłych wymagań!
Cechy
- Instalacja pakietów Spectrum Scale na węzłach Linux
- Opcjonalne weryfikowanie integralności pakietów poprzez porównanie sum kontrolnych
- Wykonywanie (offline) aktualizacji, jeśli demon jest zatrzymany
- Kompilacja lub instalacja wstępnie skompilowanego rozszerzenia jądra Linux
- Konfiguracja uwierzytelniania publicznego klucza SSH
- Tworzenie nowego klastra lub rozbudowa istniejącego
- Konfiguracja dysków sieciowych (NSD)
- Tworzenie nowych lub rozbudowa istniejących systemów plików
- Konfiguracja klas węzłów
- Definiowanie parametrów konfiguracyjnych na podstawie klas węzłów
Dostępne metody instalacji:
- Instalacja z (istniejącego) repozytorium YUM
- Instalacja z zdalnego pakietu instalacyjnego (dostępnego na zarządzanym węźle Ansible)
- Instalacja z lokalnego pakietu instalacyjnego (dostępnego na maszynie kontrolnej Ansible)
Plany na przyszłość:
- Instalacja pakietów CES
- Instalacja pakietów GUI i zimon
Instalacja
$ ansible-galaxy install acch.spectrum_scale
Wymagania
Ponieważ nie ma dostępnego publicznego repozytorium, będziesz musiał pobrać pakiety Spectrum Scale (GPFS) ze strony IBM. Odwiedź https://www.ibm.com/support/fixcentral i wyszukaj 'IBM Spectrum Scale (Software defined storage)'.
IBM Spectrum Scale Developer Edition
Jeśli nie posiadasz subskrypcji, możesz teraz pobrać IBM Spectrum Scale Developer Edition:
- Oferuje wszystkie funkcje IBM Spectrum Scale Data Management Edition, ale jest ograniczona do 12 TB na klaster.
- Brak wsparcia ze strony IBM dla Spectrum Scale Developer Edition. Dodatkowo, korzystanie w środowisku produkcyjnym jest zabronione.
- Wersja Developerska można uzyskać poprzez https://www.ibm.com/us-en/marketplace/scale-out-file-and-object-storage.
Lokalne Repozytorium
Aby utworzyć lokalne repozytorium Spectrum Scale na serwerze internetowym:
cd /your/webserver/folder
# Pobierz pakiet instalacyjny. Uzyskaj bezpośredni link lub skopiuj ręcznie...
wget <Pakiet instalacyjny Spectrum Scale>
sh ./Spectrum_Scale_Data_Management-5.0.X.X-x86_64-Linux-install --dir ./SpectrumScaleRpms/5.0.X.X/ --silent
cd SpectrumScaleRpms/5.0.X.X/
yum -y install createrepo
createrepo .
Zmienne Roli
Domyślne zmienne są zdefiniowane w defaults/main.yml
. Znajdziesz tam również szczegółową dokumentację. Zdefiniuj własne zmienne hostów w swoim zasobie, aby nadpisać domyślne.
Definicja zmiennej scale_version
jest obowiązkowa. Ponadto musisz skonfigurować metodę instalacji, definiując jedną z poniższych zmiennych:
scale_install_repository_url
scale_install_remotepkg_path
(dostępna na zarządzanym węźle Ansible)scale_install_localpkg_path
(dostępna na maszynie kontrolnej Ansible)
Członkostwo w Klastrze
Wszystkie hosty w play będą skonfigurowane jako węzły w tym samym klastrze. Jeśli chcesz dodać hosty do istniejącego klastra, dodaj przynajmniej jeden węzeł z tego istniejącego klastra do play.
Możesz utworzyć wiele klastrów, uruchamiając wiele plays.
Przykładowy Playbook
Najprostszy możliwy playbook do zainstalowania Spectrum Scale na węźle:
---
- hosts: scale01.example.com
vars:
- scale_version: 4.2.3.4
- scale_install_localpkg_path: /path/to/Spectrum_Scale_Standard-4.2.3.4-x86_64-Linux-install
roles:
- acch.spectrum_scale
To zainstaluje wszystkie wymagane pakiety i stworzy jednowsadowy klaster Spectrum Scale.
W rzeczywistości najprawdopodobniej będziesz chciał zainstalować Spectrum Scale na wielu węzłach, a także rozważyć role węzłów, aby osiągnąć wysoką dostępność. Klaster zostanie skonfigurowany z wszystkimi hostami w obecnym play:
# hosts:
[cluster01]
scale01 scale_cluster_quorum=true scale_cluster_manager=true
scale02 scale_cluster_quorum=true scale_cluster_manager=true
scale03 scale_cluster_quorum=true scale_cluster_manager=false
scale04 scale_cluster_quorum=false scale_cluster_manager=false
scale05 scale_cluster_quorum=false scale_cluster_manager=false
# playbook.yml:
---
- hosts: cluster01
vars:
- scale_version: 4.2.3.4
- scale_install_repository_url: http://infraserv/gpfs_rpms/
- scale_cluster_clustername: cluster01.example.com
roles:
- acch.spectrum_scale
Zobacz defaults/main.yml
dla szczegółowego wyjaśnienia możliwych zmiennych i opcji konfiguracyjnych.
Definiowanie ról węzłów takich jak scale_cluster_quorum
i scale_cluster_manager
jest opcjonalne. Jeśli nie określisz żadnych węzłów quorum, to pierwsze siedem hostów w twoim zasobie automatycznie otrzyma tę rolę.
Powyższe przykłady zainstalują wymagane pakiety i stworzą funkcjonalny klaster Spectrum Scale, który może być używany do montowania istniejących zdalnych systemów plików. Aby stworzyć lokalne systemy plików w nowym klastrze, będziesz musiał dostarczyć dodatkowe informacje. Sugeruje się użycie plików host_vars
do tego celu:
# host_vars/scale01:
---
scale_storage:
- filesystem: gpfs01
blockSize: 4M
defaultMetadataReplicas: 2
defaultDataReplicas: 2
numNodes: 16
automaticMountOption: true
defaultMountPoint: /mnt/gpfs01
disks:
- device: /dev/sdb
nsd: nsd_1
servers: scale01
failureGroup: 10
usage: metadataOnly
pool: system
- device: /dev/sdc
nsd: nsd_2
servers: scale01
failureGroup: 10
usage: dataOnly
pool: data
# host_vars/scale02:
---
scale_storage:
- filesystem: gpfs01
disks:
- device: /dev/sdb
nsd: nsd_3
servers: scale02
failureGroup: 20
usage: metadataOnly
pool: system
- device: /dev/sdc
nsd: nsd_4
servers: scale02
failureGroup: 20
usage: dataOnly
pool: data
Zobacz man mmchfs
i man mmchnsd
dla opisu powyższych parametrów pamięci.
Nazwa filesystem
jest obowiązkowa, a zmienna device
jest obowiązkowa dla każdego z dysków danego systemu plików. Wszystkie inne parametry systemu plików i dysków są opcjonalne. Dlatego minimalna konfiguracja systemu plików wyglądałaby tak:
# host_vars/scale01:
---
scale_storage:
- filesystem: gpfs01
disks:
- device: /dev/sdb
- device: /dev/sdc
# host_vars/scale02:
---
scale_storage:
- filesystem: gpfs01
disks:
- device: /dev/sdb
- device: /dev/sdc
Zauważ, że parametry systemu plików mogą być definiowane jako zmienne dla dowolnego hosta w play – host, dla którego definiujesz parametry systemu plików, nie ma znaczenia. Dla parametrów dysków host jest istotny tylko wtedy, gdy pomijamy zmienną servers
. Kiedy pomijamy zmienną servers
, host, dla którego definiujemy dysk, automatycznie uznaje się za (jedyną) serwer NSD dla danego dysku.
Ważne:
scale_storage
musi być zdefiniowane dla poszczególnych hostów za pomocą plikówhost_vars
. Nie definiuj parametrów dysków za pomocą plikówgroup_vars
lub w liniivars:
w swoim playbooku. Zrobienie tego zastosuje je do wszystkich hostów w grupie/play, co skutkowałoby zdefiniowaniem tego samego dysku wiele razy...
Co więcej, klasy węzłów Spectrum Scale mogą być definiowane indywidualnie dla każdego węzła, definiując zmienną scale_nodeclass
:
# host_vars/scale01:
---
scale_nodeclass:
- classA
- classB
# host_vars/scale02:
---
scale_nodeclass:
- classA
- classC
Te klasy węzłów mogą być opcjonalnie używane do definiowania parametrów konfiguracyjnych Spectrum Scale. Sugeruje się użycie plików group_vars
do tego celu:
# group_vars/all:
---
scale_config:
- nodeclass: classA
params:
- pagepool: 16G
- autoload: no
- ignorePrefetchLUNCount: yes
Zobacz man mmchconfig
dla listy dostępnych parametrów konfiguracyjnych.
Zauważ, że parametry konfiguracyjne mogą być definiowane jako zmienne dla dowolnego hosta w play – host, dla którego definiujesz parametry konfiguracyjne, nie ma znaczenia.
Ograniczenia
Ta rola może (obecnie) być używana do tworzenia nowych lub rozszerzania istniejących klastrów. Podobnie można tworzyć nowe systemy plików lub je rozszerzać. Jednak ta rola nie usunie istniejących węzłów, dysków, systemów plików ani klas węzłów – celowo! To także powód, dla którego nie można jej użyć do zmiany puli systemu plików dysku. Zmiana puli wymaga usunięcia i ponownego dodania dysku do systemu plików, co nie jest obecnie w zakresie tej roli.
Dodatkowo, aktualizacje online nie są obecnie w zakresie tej roli. Spectrum Scale obsługuje rolowane aktualizacje online (z wyłączaniem jednego węzła na raz), ale to wymaga starannego planowania i monitorowania oraz może wymagać manualnej interwencji w przypadku nieprzewidzianych problemów.
Rozwiązywanie problemów
Ta rola przechowuje pliki konfiguracyjne w /var/tmp
na pierwszym hoście w play. Pliki te są zachowywane, aby określić, czy definicje zmieniły się od poprzedniego uruchomienia oraz aby zdecydować, czy trzeba ponownie wykonać niektóre polecenia Spectrum Scale. W przypadku problemów można po prostu usunąć te pliki konfiguracyjne z /var/tmp
, aby wyczyścić pamięć podręczną – wymusi to ponowne zastosowanie wszystkich definicji przy następnym uruchomieniu. Z drugiej strony, to następne uruchomienie może zająć więcej czasu niż oczekiwano, ponieważ może ponownie wykonać niepotrzebne polecenia Spectrum Scale. Zrobienie tego automatycznie ponownie wygeneruje pamięć podręczną.
Proszę korzystać z śledzenia problemów do zadawania pytań, zgłaszania błędów i zgłaszania funkcji.
Copyright i licencja
Copyright 2017 Achim Christ, wydane na licencji MIT
Highly-customizable Ansible role for installing and configuring IBM Spectrum Scale (GPFS)
ansible-galaxy install acch.spectrum_scale