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.
- @mrlesmithjr
- http://everythingshouldbevirtual.com
- mrlesmithjr [at] gmail.com
Zainstaluj
ansible-galaxy install mrlesmithjr.zfsLicencja
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.
