Pour installer zfs sur debian

On utilise les commandes suivantes sur un système en jessie avec les répos de backport.

# apt install linux-headers-$(uname -r)

apt-get install -t jessie-backports zfs-dkms

Comme on ne veut pas de zfs dans /boot on installe pas zfs-initramfs

Vérifier que les modules sont bien chargé!

root@alexandrie:~# lsmod | grep zfs
zfs                  2528213  3 
zunicode              328546  1 zfs
zcommon                39960  1 zfs
znvpair                58712  2 zfs,zcommon
spl                    69582  3 zfs,zcommon,znvpair
zavl                   13071  1 zfs

Références

Créer/supprimer un premier pool

Créer un pool en mirroir (i.e. raid1)

# zpool create  -f <votre pool> mirror /dev/sdb /dev/sdc

Créer un pool de 4 disques (2 raid1 coller)

# zpool create backup mirror /dev/sdc /dev/sdd mirror /dev/sde /dev/sdf

Supprimer un pool

# zpool destroy [pool name]

Configurer les options de base

la compression

Activer/désactiver la compression

# zfs get compression <votre pool>
# zfs set compression=lz4 <votre pool>
# zfs set compression=off <votre pool>

Trouver le ratio de compression sur un pool.

# zfs get all | grep compressratio
<votre pool>  compressratio         1.16x                  -
<votre pool>  refcompressratio      1.16x                  -

l'auto expension

# zpool get autoexpand
NAME    PROPERTY    VALUE   SOURCE
BACKUP  autoexpand  off     local

# zpool set autoexpand=on BACKUP

Noter qu'un reboot ne va pas aider pour occuper toute la place sur un mirroir. De plus, il n'est pas nécessaire de faire un export/import du pool aussi.

Les nouveaux "devices" dans notre cas le volume crypté d'un disque doit être "mis en ligne"

Voici le nouveau volume qui a été ajouté "N8GR5DVY-4TB_crypt"

# zpool online -e BACKUP N8GR5DVY-4TB_crypt

En fait, les 2 disques ont été changé dans le mirroir (ça a été long pour la faire le resilver) mais on a eu à "remettre en ligne" seulement un des devices du mirroir. Voilà, la commande zpool list -v nous montre l'espace agrandi du stockage disponible!

les acl posix

Activer les ACL sur le pool

# zfs get acltype
NAME    PROPERTY  VALUE     SOURCE
BACKUP  acltype   off       default
# zfs get xattr
NAME    PROPERTY  VALUE  SOURCE
BACKUP  xattr     on     default

# zfs set acltype=posixacl BACKUP
# zfs set xattr=sa BACKUP

root@alexandrie:~# zfs get xattr                                                       
NAME    PROPERTY  VALUE  SOURCE                                                        
BACKUP  xattr     sa     local                                                         
root@alexandrie:~# zfs get acltype                                                     
NAME    PROPERTY  VALUE     SOURCE                                                     
BACKUP  acltype   posixacl  local       

test!

root@alexandrie:/BACKUP/testacl# setfacl -m u:sebas:rwx test
root@alexandrie:/BACKUP/testacl# getfacl test
# file: test
# owner: root
# group: root
user::rw-
user:sebas:rwx
group::r--
mask::rwx
other::r--

Référence: https://github.com/zfsonlinux/zfs/issues/170#issuecomment-27348094

Surveillance d'un pool

avec Nagios

revues des options

en mode test

Par exemple si on veut software warning à 60% et un hard à 70%

# ./check_zfs.py BACKUP --capacity 60 70                                                                              
CRITICAL: POOL: BACKUP, CAP CRIT: 71%, STATUS: ONLINE, SIZE: 6,34T, ALLOC: 4,53T, FREE: 1,81T, FRAG: 34% | frag=34%;;; cap=71%;60;70; size=6492.16GB;;; alloc=4638.72GB;;; free=1853.44GB;;; health=0;1;3;                                                           

avec Munin

On a déjà de quoi ici! c'est a tester et déployer par puppet.

Activer un premier plugin munin pour zfs dans les contrib zfs_list avec la recette suivante dans puppet:

    include munin::contrib
    munin::plugin::contrib {
      'zfs_list':
        path => 'zfs/zfs_list';
    }

optimisation de la performance

ZfsConfiguration (last edited 2023-01-30 14:08:55 by kienan)