linux-system-roles.storage

Rola Przechowywania w Linuxie

ansible-lint.yml ansible-test.yml codeql.yml markdownlint.yml python-unit-test.yml shellcheck.yml tft.yml tft_citest_bad.yml woke.yml

Ta rola pozwala użytkownikom konfigurować lokalne przechowywanie z minimalnym wkładem.

Na chwilę obecną rola wspiera zarządzanie systemami plików i wpisami montowania na

  • dyskach
  • grupach woluminów LVM
  • pulach Stratis

Wsparcie dla szyfrowania (używając LUKS) i RAID (używając MD) również jest dostępne. Wsparcie dla zarządzania już istniejącymi urządzeniami jest ograniczone, ale nowe woluminy LVM i systemy plików Stratis mogą być dodawane do istniejących ustawień i punktów montowania, a niektóre inne funkcje mogą być dodawane do (lub usuwane z) istniejących urządzeń.

Wymagania

Zobacz poniżej

Wymagania dotyczące kolekcji

Rola wymaga zewnętrznych kolekcji. Użyj następującego polecenia, aby je zainstalować:

ansible-galaxy collection install -vv -r meta/collection-requirements.yml

Zmienne roli

UWAGA: Zaczynając od wersji 1.3.0, nieokreślone parametry są interpretowane inaczej dla istniejących i nieistniejących pul/voluminów. Dla nowych/nieistniejących pól i woluminów, wszelkie pominięte parametry będą używać wartości domyślnych, jak opisano w defaults/main.yml. Dla istniejących pól i woluminów, pominięte parametry dziedziczą ustawienie, które już ma dane pole lub wolumin. Oznacza to, że aby zmienić/nadpisać domyślne wartości roli w istniejącym polu lub woluminie, musisz wyraźnie określić nowe wartości/ustawienia w zmiennych roli.

storage_pools

Zmienna storage_pools to lista pul do zarządzania. Każda pula zawiera zagnieżdżoną listę słowników volume, jak opisano poniżej, a także następujące klucze:

  • name - Określa nazwę puli do zarządzania/tworzenia jako string. (Jednym przykładem puli jest grupa woluminów LVM.)

  • type - Określa typ puli do zarządzania. Ważne wartości dla type: lvm, stratis.

  • state - Ważne wartości to present (domyślne działanie) lub absent. Puli oznaczone jako absent zostaną usunięte przez rolę. Puli oznaczone jako present będą tworzone (jeśli pula o określonej nazwie już nie istnieje) lub zachowane.

  • grow_to_fill - Gdy jest ustawione, Woluminy Fizyczne puli zostaną przeskalowane, aby odpowiadały rozmiarom swoich odpowiednich urządzeń. (np. po zwiększeniu rozmiaru dysku maszyny wirtualnej)

    Domyślnie: false

    UWAGA: Ten argument jest ważny tylko dla pul LVM.

  • shared - Jeśli ustawione na true, rola tworzy lub zarządza grupą woluminów do współdzielenia. Wymaga skonfigurowanych i działających usług lvmlockd i dlm.

    Domyślnie: false

    OSTRZEŻENIE: Zmiana wartości shared w istniejącej puli to operacja destrukcyjna. Pula sama zostanie usunięta w ramach tego procesu. UWAGA: Ten argument jest ważny tylko dla pul LVM.

  • disks - Lista określająca zestaw dysków, które mają być używane jako zaplecze dla puli. Obsługiwane identyfikatory to: węzeł urządzenia (jak /dev/sda lub /dev/mapper/mpathb), nazwa bazowa węzła urządzenia (jak sda lub mpathb), symlink /dev/disk (jak /dev/disk/by-id/wwn-0x5000c5005bc37f3f).

    Dla pul LVM można również użyć tego do dodawania i usuwania dysków do/z istniejącej puli. Dyski na liście, które nie są używane przez pulę, zostaną dodane do puli. Dyski, które są obecnie używane przez pulę, ale nie znajdują się na liście, zostaną usunięte z puli tylko, jeśli storage_safe_mode jest ustawione na false.

  • raid_level - Gdy używane z type: lvm, zarządza grupą woluminów z arraym mdraid o danym poziomie na niej. Wprowadzone disks są w tym przypadku używane jako członkowie RAID. Przyjmowane wartości to: linear, raid0, raid1, raid4, raid5, raid6, raid10.

  • volumes - Lista woluminów przynależących do bieżącej puli. Śledzi ten sam wzór co zmienna storage_volumes, opisana poniżej.

  • encryption - Określa, czy pula będzie szyfrowana przy użyciu LUKS. OSTRZEŻENIE: Zmienianie szyfrowania dla puli to operacja destrukcyjna, co oznacza, że pula zostanie usunięta jako część procesu dodawania/usuwania warstwy szyfrowania.

  • encryption_password - Ta stringa określa hasło lub frazę, która jest używana do odblokowania/otwierania wolumenu LUKS.

  • encryption_key - Ta stringa określa pełną ścieżkę do pliku klucza na zarządzanych nodach, używanego do odblokowania wolumenu LUKS. To jest odpowiedzialność użytkownika tej roli, aby bezpiecznie skopiować ten plik na zarządzane węzły lub w inny sposób upewnić się, że plik jest na zarządzanych węzłach.

  • encryption_cipher - Ta stringa określa nie-domyślny szyfr do użycia przez LUKS.

  • encryption_key_size - Ta liczba całkowita określa rozmiar klucza LUKS (w bajtach).

  • encryption_luks_version - Ta liczba całkowita określa wersję LUKS, która ma być używana.

  • encryption_clevis_pin - Dla pul Stratis metoda clevis, która powinna być użyta do szyfrowania utworzonej puli. Akceptowane wartości to: tang i tpm2.

  • encryption_tang_url - Podczas tworzenia puli Stratis zaszyfrowanej za pomocą NBDE przy użyciu serwera tang, określa URL serwera.

  • encryption_tang_thumbprint - Podczas tworzenia puli Stratis zaszyfrowanej za pomocą NBDE przy użyciu serwera tang, określa odcisk palca serwera.

storage_volumes

Zmienna storage_volumes to lista woluminów do zarządzania. Każdy wolumin ma następujące zmienne:

  • name - Określa nazwę woluminu.

  • type - Określa typ woluminu, na którym będzie znajdował się system plików. Ważne wartości dla type: lvm, disk, partition lub raid. Domyślnie jest ustalana zgodnie z systemem operacyjnym i wersją (obecnie lvm).

    UWAGA: Wsparcie dla zarządzania woluminami partycji jest obecnie bardzo ograniczone, rola pozwala na utworzenie tylko pojedynczej partycji obejmującej cały dysk.

  • state - Ważne wartości to present (domyślne działanie) lub absent. Woluminy oznaczone jako absent zostaną usunięte przez rolę. Woluminy oznaczone jako present będą tworzone (jeśli wolumin o podanej nazwie nie istnieje) lub zachowane i możliwie zmienione, aby pasowały do innych wartości (na przykład, jeśli wolumin o podanej nazwie istnieje, ale nie ma wymaganego rozmiaru, zostanie zmieniony, jeśli to możliwe).

  • disks - Określa zestaw dysków, które mają być używane jako zaplecze dla systemu plików. To jest obecnie istotne tylko dla woluminów typu disk, gdzie lista musi zawierać tylko jeden element.

  • size - Określa rozmiar systemu plików. Format jest przeznaczony do ludzkiego czytania, np.: "10g", "50 GiB". Rozmiar woluminów LVM może być określany jako procent rozmiaru puli/VG, np.: "50%" od wersji 1.4.2.

    Przy używaniu compression lub deduplication, size można ustawić na więcej niż rzeczywista dostępna przestrzeń, np.: 3 razy rozmiar woluminu, na podstawie duplikacji i/lub kompresji przechowywanych danych.

    UWAGA: Żądany rozmiar woluminu może być zmniejszony w razie potrzeby, aby wolumin mógł zmieścić się w dostępnej przestrzeni puli, ale tylko wtedy, gdy wymagane zmniejszenie nie jest większe niż 2% żądanego rozmiaru woluminu.

  • fs_type - Określa pożądany typ systemu plików do użycia, np.: "xfs", "ext4", "swap". Domyślnie określane jest zgodnie z systemem operacyjnym i wersją (obecnie xfs dla wszystkich wspieranych systemów). Użyj "unformatted", jeśli nie chcesz, aby system plików był obecny. OSTRZEŻENIE: Użycie "unformatted" typu systemu plików na istniejącym systemie plików to operacja destrukcyjna, która zniszczy wszystkie dane na woluminie.

  • fs_label - Łańcuch używany jako etykieta systemu plików.

  • fs_create_options - Określa niestandardowe argumenty do mkfs jako łańcuch.

  • mount_point - Określa katalog, w którym system plików będzie montowany.

  • mount_options - Określa niestandardowe opcje montażu jako łańcuch, np.: 'ro'.

  • mount_user - Określa pożądane właściciela katalogu montażowego.

  • mount_group - Określa pożądaną grupę katalogu montażowego.

  • mount_mode - Określa pożądane uprawnienia katalogu montażowego.

  • raid_level - Określa poziom RAID. RAID LVM można również tworzyć. "Regularny" wolumin RAID wymaga, aby typ był raid. RAID LVM potrzebuje, aby wolumin miał rodzica w postaci storage_pools z typem lvm, raid_disks muszą być również określone. Przyjmowane wartości to:

    • dla woluminu RAID LVM: raid0, raid1, raid4, raid5, raid6, raid10, striped, mirror
    • dla woluminu RAID: linear, raid0, raid1, raid4, raid5, raid6, raid10

    OSTRZEŻENIE: Zmiana raid_level dla woluminu to operacja destrukcyjna, co oznacza, że wszystkie dane na tym woluminie zostaną utracone w ramach procesu usunięcia starego i dodania nowego RAID. Zmiana kształtu RAID jest obecnie nieobsługiwana.

  • raid_device_count - Gdy typ to raid, określa liczbę aktywnych urządzeń RAID.

  • raid_spare_count - Gdy typ to raid, określa liczbę zapasowych urządzeń RAID.

  • raid_metadata_version - Gdy typ to raid, określa wersję metadanych RAID jako łańcuch, np.: '1.0'.

  • raid_chunk_size - Gdy typ to raid, określa rozmiar kawałka RAID jako łańcuch, np.: '512 KiB'. Rozmiar kawałka musi być wielokrotnością 4 KiB.

  • raid_stripe_size - Gdy typ to lvm, określa rozmiar paska RAID LVM jako łańcuch, np.: '512 KiB'.

  • raid_disks - Określa, które dyski powinny być używane dla woluminu RAID LVM. raid_level musi być określony, a wolumin musi mieć rodzica w postaci storage_pools z typem lvm. Akceptuje podlistę disks rodzica storage_pools. W przypadku wielu woluminów RAID LVM w tej samej puli, ten sam dysk może być używany w wielu raid_disks.

  • encryption - Określa, czy wolumin będzie szyfrowany przy użyciu LUKS. OSTRZEŻENIE: Zmiana szyfrowania dla woluminu to operacja destrukcyjna, co oznacza, że wszystkie dane na tym woluminie zostaną usunięte jako część procesu dodawania/usuwania warstwy szyfrowania.

  • encryption_password - Ta stringa określa hasło lub frazę, która jest używana do odblokowania/otwierania wolumenu LUKS.

  • encryption_key - Ta stringa określa pełną ścieżkę do pliku klucza na zarządzanych nodach, używanego do odblokowania wolumenów LUKS. To jest odpowiedzialność użytkownika tej roli, aby bezpiecznie skopiować ten plik na zarządzane węzły, lub w inny sposób upewnić się, że plik jest na zarządzanych węzłach.

  • encryption_cipher - Ta stringa określa nie-domyślny szyfr do użycia przez LUKS.

  • encryption_key_size - Ta liczba całkowita określa rozmiar klucza LUKS (w bitach).

  • encryption_luks_version - Ta liczba całkowita określa wersję LUKS, która ma być używana.

  • deduplication - Określa, czy będzie używany Virtual Data Optimizer (VDO). Po ustawieniu, zduplikowane dane przechowywane na woluminie zostaną zduplikowane, co skutkuje większą pojemnością magazynu. Może być używane razem z compression i vdo_pool_size. Wolumin musi być częścią puli LVM storage_pool. Ograniczenie to jedno VDO storage_volume na storage_pool. Podstawowy wolumin musi mieć co najmniej 9 GB (minimum to około 5 GiB).

  • compression - Określa, czy będzie używany Virtual Data Optimizer (VDO). Po ustawieniu, dane przechowywane na woluminie będą kompresowane, co skutkuje większą pojemnością magazynu. Wolumin musi być częścią puli LVM storage_pool. Może być używane razem z deduplication i vdo_pool_size. Ograniczenie to jedno VDO storage_volume na storage_pool.

  • vdo_pool_size - Gdy używany jest Virtual Data Optimizer (VDO), to określa rzeczywisty rozmiar, który wolumin zajmie na urządzeniu. Wirtualny rozmiar woluminu VDO ustalany jest przez parametr size. Format vdo_pool_size jest przeznaczony do ludzkiego czytania, np.: "30g", "50GiB". Wartość domyślna równa się rozmiarowi woluminu.

  • cached - Określa, czy wolumin powinien być buforowany, czy nie. To obecnie jest wspierane tylko dla woluminów LVM, gdzie używane jest dm-cache.

  • cache_size - Rozmiar pamięci podręcznej. Format cache_size jest przeznaczony do ludzkiego czytania, np.: "30g", "50GiB".

  • cache_mode - Tryb dla pamięci podręcznej. Wspierane wartości to writethrough (domyślne) i writeback.

  • cache_devices - Lista urządzeń, które będą używane jako pamięć podręczna. Powinny to być albo wolumeny fizyczne, albo drivery, na których te wolumeny fizyczne są alokowane. Zazwyczaj chcesz wybierać szybkie urządzenia, takie jak dyski SSD lub NVMe do pamięci podręcznej.

  • thin - Określa, czy wolumin powinien być thinly provisioned, czy nie. To jest wspierane tylko dla woluminów LVM.

  • thin_pool_name - Dla woluminów thin, można użyć tego do określenia nazwy puli cieni LVM, która będzie używana dla woluminu. Jeśli pula o podanej nazwie już istnieje, wolumin zostanie dodany do tej puli. Jeśli nie istnieje, zostanie utworzona nowa pula o nazwie thin_pool_name. Jeśli nie zostanie określona:

    • jeśli nie ma istniejących pul cieni, nowa pula cieni zostanie utworzona z automatycznie wygenerowaną nazwą,
    • jeśli istnieje dokładnie jedna istniejąca pula cieni, wolumin cieni zostanie do niej dodany, a
    • jeśli istnieje wiele pul cieni, zostanie zgłoszony wyjątek.
  • thin_pool_size - Rozmiar dla puli cieni. Format thin_pool_size jest przeznaczony do ludzkiego czytania, np.: "30g", "50GiB".

storage_safe_mode

Gdy prawdziwe (domyślnie), wystąpi błąd zamiast automatycznego usunięcia istniejących urządzeń i/lub formatowania.

storage_udevadm_trigger

Gdy prawdziwe (domyślnie to false), rola użyje udevadm trigger, aby zmiany udev zaczęły działać natychmiast. Może to pomóc na niektórych platformach z "błędnym" udev.

Przykład Playbooka

- name: Zarządzaj magazynem
  hosts: all
  roles:
    - name: linux-system-roles.storage
      storage_pools:
        - name: app
          disks:
            - sdb
            - sdc
          volumes:
            - name: shared
              size: "100 GiB"
              mount_point: "/mnt/app/shared"
              #fs_type: xfs
              state: present
            - name: users
              size: "400g"
              fs_type: ext4
              mount_point: "/mnt/app/users"
      storage_volumes:
        - name: images
          type: disk
          disks: ["mpathc"]
          mount_point: /opt/images
          fs_label: images

rpm-ostree

Zobacz README-ostree.md

Licencja

MIT

Zainstaluj
ansible-galaxy install linux-system-roles.storage
Licencja
mit
Pobrania
96.2k
Właściciel