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

Status budowy Problemy GitHub Gwiazdy GitHub Pobrania roli Licencja

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ów host_vars. Nie definiuj parametrów dysków za pomocą plików group_vars lub w linii vars: 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 2017 Achim Christ, wydane na licencji MIT

O projekcie

Highly-customizable Ansible role for installing and configuring IBM Spectrum Scale (GPFS)

Zainstaluj
ansible-galaxy install acch.spectrum_scale
Licencja
mit
Pobrania
3.2k
Właściciel