mrlesmithjr.zfs

Spis treści wygenerowane za pomocą DocToc

ansible-zfs

Instaluje i konfiguruje ZFS na Linuksie (http://zfsonlinux.org/)

Wymagania

Co najmniej jeden niezagospodarowany fizyczny dysk twardy do utworzenia puli ZFS.

Vagrant

Uruchom środowisko testowe za pomocą Vagrant

vagrant up

To uruchomi serwer z kilkoma wolumenami ZFS, w tym urządzeniami iSCSI... Możesz zobaczyć/użyć wolumeny iSCSI z węzła klienta...

vagrant ssh client
sudo iscsiadm -m discovery -t st -p 192.168.202.201
sudo iscsiadm -m node --login

Teraz powinieneś mieć /dev/sdb i /dev/sdc na swoim kliencie do formatowania i montowania.

sudo fdisk -l

Zmienne ról

---
# plik domyślny dla ansible-zfs

# Określa, czy systemy plików ZFS są tworzone
zfs_create_filesystems: false

# Określa, czy pule ZFS są tworzone
zfs_create_pools: false

# Określa, czy wolumeny ZFS są tworzone
zfs_create_volumes: false
zfs_debian_package_key: http://zfsonlinux.org/4D5843EA.asc
zfs_debian_package_url: http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux
zfs_debian_package_version: 6
zfs_debian_package: "zfsonlinux_{{ zfs_debian_package_version }}_all.deb"
zfs_enable_auto_snapshots: true

# Określa, czy iscsitarget jest zainstalowany do serwera wolumenów iSCSI
zfs_enable_iscsi: false

# Określa, czy serwer NFS Kernel powinien być zainstalowany do obsługi NFS
zfs_enable_nfs: false

# Określa, czy parametry zdefiniowane w zfs_performance_tuning są stosowane
zfs_enable_performance_tuning: false

# Określa, czy Samba jest zainstalowana i skonfigurowana
zfs_enable_samba: false

# Określa, czy klucze dla zaszyfrowanych systemów plików są ładowane przy starcie
zfs_autoload_encryption_keys: false

# Określa systemy plików do zarządzania
zfs_filesystems: []
# Możesz zdefiniować różne opcje dla systemów plików...

# Określa, czy ten rol powinien zarządzać instalacją ZFS, w tym aktualizacjami.
zfs_install_update: true

# Określa, czy usługa iscsitarget jest włączona
zfs_iscsistarget_enable: "{{ zfs_enable_iscsi }}"

# Zdefiniuj swój FQDN w odwrotnej kolejności...(local.vagrant)
zfs_iscsistarget_iqn: iqn.2001-04.org.example

# Zdefiniuj maksymalny czas oczekiwania na iSCSI
zfs_iscsistarget_max_sleep: 3
zfs_iscsistarget_options: ""
zfs_iscsitarget_target_portals:
  # Określa adres IP, na którym brane są połączenia iSCSI | ALL (domyślnie) | cidr (x.x.x.x/xx) | zablokuj WSZYSTKO, jeśli definiujesz cidr
  - ALL

# Określa, czy uprawnienia punktów montowania systemu plików ZFS są zarządzane
zfs_manage_filesystem_permissions: false

zfs_performance_tuning:
  - param: zfs_prefetch_disable
    value: 1
  - param: zfs_txg_timeout
    value: 5
  - param: zfs_arc_max
    # 1/2 całkowitej pamięci systemu
    value: "{{ (ansible_memtotal_mb | int * 1024 * 1024 * 0.5) | round | int }}"
  - param: zfs_arc_meta_limit
    # 1/4 zfs_arc_max
    value: "{{ (ansible_memtotal_mb | int * 1024 * 1024 * 0.125) | round | int }}"
  - param: zfs_arc_min
    # 1/2 zfs_arc_meta_limit
    value: "{{ (ansible_memtotal_mb | int * 1024 * 1024 * 0.0625) | round | int }}"

# Określa pule zpool do zarządzania
zfs_pools: []
# Możesz zdefiniować różne opcje dla pul...

# definiuje globalne parametry crona skrobania. Stosuje się tylko, gdy `zfs_enable_monitoring` jest ustawione na True.
zfs_pools_scrub_cron:
  minute: 0
  hour: 0
  day: *
  month: *
  weekday: sun
zfs_ubuntu_ppa: ppa:zfs-native/stable

# Określa wolumeny urządzeń blokowych do zarządzania
zfs_volumes: []
# Możesz zdefiniować różne opcje dla wolumenów...

zfs_enable_monitoring: False

# w procentach.
zfs_monitoring_capacity_threshold: 80

# w dniach.
zfs_monitoring_scrub_max_age: 8

zfs_monitoring_email_dest: root@localhost

Zależności

Brak

Przykład Playbooka

GitHub

        ---
        - name: Instalacja ZFS na Linuksie
          hosts: all
          become: true
          vars:
            - zfs_iscsistarget_iqn: iqn.2001-04.local.vagrant  #definiuj swój FQDN w odwrotnej kolejności...(local.vagrant)
            - zfs_iscsistarget_target_portals:
                - 192.168.202.0/24
            - zfs_enable_iscsi: true
            - zfs_enable_nfs: true
          roles:
            - role: ansible-zfs
          tasks:
        ```yaml
        #### Galaxy
        ```yaml
        ---
        - name: Instalacja ZFS na Linuksie
          hosts: all
          become: true
          vars:
            - zfs_iscsistarget_iqn: iqn.2001-04.local.vagrant  #definiuj swój FQDN w odwrotnej kolejności...(local.vagrant)
            - zfs_iscsistarget_target_portals:
                - 192.168.202.0/24
            - zfs_enable_iscsi: true
            - zfs_enable_nfs: true
          roles:
            - role: mrlesmithjr.zfs
          tasks:

Zaawansowany przykład tworzenia ZPool

zfs_pools:  #definiuje pule zpool do zarządzania
  - name: 'SSD-TANK'
    action: 'create'
#    atime: 'on'
    options: # set permanent options at creation time
      ashift: 13
    compression: 'lz4'  # on | off (default) | lzjb | gzip | gzip-1 | gzip-2 | gzip-3 | gzip-4 | gzip-5 | gzip-6 | gzip-7 | gzip-8 | gzip-9 | lz4 | zle
    devices:  #define devices to create pool with...can define multiple by | sdb sdc sdd sde sdf | all on one line w/spaces
      - 'ata-INTEL_SSDSC2BW240A4_CVDA352100YL2403GN'
      - 'ata-INTEL_SSDSC2BW240A4_BTDA329505KM2403GN'
      # Dodaj więcej urządzeń w zależności od potrzeb...
    type: 'raidz2'  #define pool type... | basic (no-raid) | mirror | raidz | raidz2 | raidz3
    state: 'present'
  # Możesz dodać kolejne pule...

Licencja

BSD

Informacje o autorze

Larry Smith Jr.

O projekcie

Installs and configures ZFS On Linux (http://zfsonlinux.org/)

Zainstaluj
ansible-galaxy install mrlesmithjr.zfs
Licencja
mit
Pobrania
516.6k
Właściciel
Sharing practical insights on virtualization, cloud, automation, and DevOps to help others build, automate, and innovate with confidence.