ZFS on Linux
Contents
References
- OpenZFS on Debian
- Aaron Toponce’s user guide for ZFS on Linux.
- FreeBSD ZFS handbook
- http://www.howtogeek.com/175159/an-introduction-to-the-z-file-system-zfs-for-linux/
- https://blogs.oracle.com/roch/entry/when_to_and_not_to - when to (and not to) use raid-z
Getting started
(last update: Debian 10, aka Buster)
|
|
Disk configuration
List available pools:
|
|
Create a new regular pool (dynamic stripe pool, i.e. RAID-0) with all disks. Not recommended:
|
|
.. where ‘foostore’ will be the name of the pool and its mountpoint. By default partitions would be available at /foostore
.
With 3 or more disks, we can use RAID-Z (which can recover if one disk is lost):
|
|
With 2 disks we can do set mirror setup (i.e. RAID-1):
|
|
Result:
|
|
Create the general storage space (“store”) on which partitions will later be created:
|
|
Result:
|
|
Pour créer un volume pour une VM:
|
|
http://docs.oracle.com/cd/E23120_01/html/821-2854/usingzfswithvirtualdisks.html
Espace occupé par les snapshots:
|
|
Lister les snapshots:
|
|
Migrer une partition d’un pool vers un autre
Sur un système j’ai 2 disques rotatifs en mirroir et 2 disques SSD mirroirs (les uns pour du stockage long terme et sauvegardes, les autres pour des serveurs virtuels).
Je voulais migrer des volumes d’un pool (foostore) vers l’autre (bar), ex:
|
|
Ceci crée automatiquement un volume sur le pool “bar”. La commande “pv” permet de voir l’état de la migration (données transférées, vitesse de transfert).
En créant un snapshot, on peut aussi réduire le temps d’interruption en migrant la VM pendant que le système est en fonction, puis fermer la VM, re-sychroniser et redémarrer la VM (après avoir changé la configuration du disque dans KVM).
Référence: http://serverfault.com/a/375430/262140
Toute la mémoire est utilisée par ZFS (ARC)
Ex: si toute la mémoire est utilisée par ZFS, et qu’il est impossible de créer une nouvelle machine virtuelle (allouer un gros bloc de mémoire d’un coup):
|
|
Et:
|
|
Voir les stats:
|
|
Réfs:
- https://wiki.gentoo.org/wiki/ZFS#ARC
- http://serverfault.com/questions/581669/why-isnt-the-arc-max-setting-honoured-on-zfs-on-linux
zpool n’est pas importé au démarrage
Typiquement: après le démarrage, le pool n’est pas importé automatiquement. Si on tappe ceci, ça ne retourne rien:
|
|
Par contre, on peut importer avec le nom du pool:
|
|
Dans un cas, j’ai trouvé la solution grâce à strace:
|
|
Pour générer un “hostid”:
|
|
Puis forcer un re-import, car le hostid a changé:
|
|
Varia
Performance io:
|
|
Réduire la taille d’une partition: https://lab.symbiotic.coop/coopsymbiotic/ops/issues/26
Author Mathieu Lu
LastMod 2020-05-17