mrlesmithjr.zfs
Table des matières générée avec DocToc
ansible-zfs
Installe et configure ZFS sur Linux (http://zfsonlinux.org/)
Conditions requises
Au moins un disque dur physique non utilisé pour créer un pool ZFS.
Vagrant
Lancez un environnement de test avec Vagrant
vagrant up
Cela démarrera un serveur avec des volumes ZFS, y compris des appareils iSCSI... Vous pouvez voir/utiliser les volumes iSCSI depuis le nœud client...
vagrant ssh client
sudo iscsiadm -m discovery -t st -p 192.168.202.201
sudo iscsiadm -m node --login
Vous devriez maintenant avoir /dev/sdb et /dev/sdc sur votre client à formater et monter.
sudo fdisk -l
Disque /dev/sdb : 1073 Mo, 1073741824 octets
34 têtes, 61 secteurs/trace, 1011 cylindres, total 2097152 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille du secteur (logique/physique) : 512 octets / 512 octets
Taille I/O (minimum/optimale) : 512 octets / 512 octets
Identifiant de disque : 0x00000000
Le disque /dev/sdb ne contient pas de table de partition valide
Disque /dev/sdc : 2147 Mo, 2147483648 octets
67 têtes, 62 secteurs/trace, 1009 cylindres, total 4194304 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille du secteur (logique/physique) : 512 octets / 512 octets
Taille I/O (minimum/optimale) : 512 octets / 512 octets
Identifiant de disque : 0x00000000
Le disque /dev/sdc ne contient pas de table de partition valide
vagrant@client:~$ sudo fdisk /dev/sdb
L'appareil ne contient ni table de partition DOS valide, ni étiquette de disque Sun, SGI ou OSF
Création d'une nouvelle étiquette de disque DOS avec l'identifiant de disque 0xa1af287f.
Les modifications resteront en mémoire uniquement, jusqu'à ce que vous décidiez de les écrire.
Après cela, bien sûr, le contenu précédent ne sera pas récupérable.
Variables de rôle
---
# fichier par défaut pour ansible-zfs
# Définit si les systèmes de fichiers ZFS sont créés
zfs_create_filesystems: false
# Définit si les pools ZFS sont créés
zfs_create_pools: false
# Définit si les volumes ZFS sont créés
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
# Définit si iscsitarget est installé sur le serveur iSCSI volumes
zfs_enable_iscsi: false
# Définit si le serveur Kernel NFS doit être installé pour servir NFS
zfs_enable_nfs: false
# Définit si les paramètres définis dans zfs_performance_tuning sont appliqués
zfs_enable_performance_tuning: false
# Définit si Samba est installé et configuré
zfs_enable_samba: false
# Définit si les clés pour les systèmes de fichiers chiffrés sont chargées au démarrage
zfs_autoload_encryption_keys: false
# Définit les systèmes de fichiers à gérer
zfs_filesystems: []
# - name: nfs
# pool: tank
# atime: off
# compression: lz4
# logbias: latency
# primarycache: all
# quota: 3G
# recordsize: 16K
# sharenfs: on
# snapdev: visible
# snapdir: visible
# state: present
# Définit si ce rôle doit gérer l'installation de ZFS, y compris les mises à jour.
zfs_install_update: true
# Définit si le service iscsitarget est activé
zfs_iscsistarget_enable: "{{ zfs_enable_iscsi }}"
# Définissez votre FQDN à l'envers...(local.vagrant)
zfs_iscsistarget_iqn: iqn.2001-04.org.example
zfs_iscsistarget_max_sleep: 3
zfs_iscsistarget_options: ""
zfs_iscsitarget_target_portals:
# Définissez l'adresse IP pour écouter les connexions iSCSI | ALL (par défaut) | cidr (x.x.x.x/xx)
- ALL
# Définit si les permissions du point de montage du système de fichiers ZFS sont gérées
zfs_manage_filesystem_permissions: false
zfs_performance_tuning:
- param: zfs_prefetch_disable
value: 1
- param: zfs_txg_timeout
value: 5
- param: zfs_arc_max
value: "{{ (ansible_memtotal_mb | int * 1024 * 1024 * 0.5) | round | int }}"
- param: zfs_arc_meta_limit
value: "{{ (ansible_memtotal_mb | int * 1024 * 1024 * 0.125) | round | int }}"
- param: zfs_arc_min
value: "{{ (ansible_memtotal_mb | int * 1024 * 1024 * 0.0625) | round | int }}"
# Définit les zpool(s) à gérer
zfs_pools: []
# définit les paramètres globaux du cron job scrub. S'applique seulement lorsque `zfs_enable_monitoring` est défini à True.
zfs_pools_scrub_cron:
minute: 0
hour: 0
day: *
month: *
weekday: sun
zfs_ubuntu_ppa: ppa:zfs-native/stable
# Définit les volumes de dispositifs blocs à gérer
zfs_volumes: []
zfs_enable_monitoring: False
# en pourcentage.
zfs_monitoring_capacity_threshold: 80
# en jours.
zfs_monitoring_scrub_max_age: 8
zfs_monitoring_email_dest: root@localhost
Dépendances
Aucune
Exemple de Playbook
GitHub
---
- name: Installe ZFS sur Linux
hosts: all
become: true
vars:
- zfs_iscsistarget_iqn: iqn.2001-04.local.vagrant #définir votre FQDN à l'envers...(local.vagrant)
- zfs_iscsitarget_target_portals:
- 192.168.202.0/24
- zfs_enable_iscsi: true
- zfs_enable_nfs: true
roles:
- role: ansible-zfs
tasks:
Exemple avancé de création de ZPool
zfs_pools: #définit les zpool(s) à gérer
- name: 'SSD-TANK'
action: 'create'
options: # définir les options permanentes lors de la création
ashift: 13
compression: 'lz4'
devices: #définir les dispositifs pour créer le pool
- 'ata-INTEL_SSDSC2BW240A4_CVDA352100YL2403GN'
- 'ata-INTEL_SSDSC2BW240A4_BTDA329505KM2403GN'
type: 'raidz2' #définir le type de pool
state: 'present'
- name: 'TANK'
action: 'create'
compression: 'lz4'
devices:
- 'ata-ST2000VN000-1HJ164_W522KVAS'
- 'ata-ST2000VN000-1HJ164_W522KW2J'
type: 'mirror'
state: 'present'
Licence
BSD
Informations sur l'auteur
Larry Smith Jr.
- @mrlesmithjr
- http://everythingshouldbevirtual.com
- mrlesmithjr [at] gmail.com
Installer
ansible-galaxy install mrlesmithjr.zfsLicence
mit
Téléchargements
512.8k
Propriétaire
Sharing practical insights on virtualization, cloud, automation, and DevOps to help others build, automate, and innovate with confidence.
