web-dev-qa-db-fra.com

Partition ZFS en tant que swap

J'utilise native-zfs et je me demandais s'il existe un moyen d'utiliser une partition ZFS pour SWAP. J'utilise mon serveur avec une clé USB et je pense que ce serait un bon moyen de l'accélérer un peu.

6
Dan

L'utilisation de ZFS pour swap devrait simplement fonctionner, comme c'est le cas sous Solaris et FreeBSD.

zfs create pool/swap -V 1G -b 4K
mkswap -f /dev/pool/swap
swapon /dev/pool/swap
2
jlliagre

Voici un guide plus élaboré, copié à partir du wiki de zfsonlinux :

Étape 1: créer un ensemble de données de volume (zvol) à utiliser comme périphérique de swap

zfs create -V 4G -b $(getconf PAGESIZE) -o compression=zle \
      -o logbias=throughput -o sync=always \
      -o primarycache=metadata -o secondarycache=none \
      -o com.Sun:auto-snapshot=false rpool/swap

Vous pouvez ajuster la taille (la partie 4G) à vos besoins.

L'algorithme de compression est défini sur zle car il s'agit de l'algorithme disponible le moins cher. Avec ashift=12 (blocs de 4 Ko sur le disque), le cas courant d’une taille de page de 4 Ko signifie qu’aucun algorithme de compression ne peut réduire les E/S. L'exception concerne les pages à zéro zéro, qui sont supprimées par ZFS; mais une certaine forme de compression doit être activée pour obtenir ce comportement. Si votre pool utilise ashift=9, vous pouvez utiliser compression=lz4.

Étape 2: formater le périphérique d'échange

mkswap -f /dev/zvol/rpool/swap

Mettre à jour /etc/fstab

echo /dev/zvol/rpool/swap none swap defaults 0 0 >> /etc/fstab

Avertissement: utilisez toujours des alias longs /dev/zvol dans les fichiers de configuration. N'utilisez jamais un nom de périphérique /dev/zdX court.

Étape 4: Activer le périphérique d'échange

swapon -av
1
mzuther