GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer un fichier d'échange sur un disque ssd avec btrfs

Situation en 2019

Le développement de Btrfs et du noyau Linux a rendu ma réponse d'origine obsolète . Veuillez consulter cette autre réponse.

Réponse originale de 2016

De la FAQ de btrfs :

Est-ce que btrfs supporte les fichiers d'échange ?Actuellement non. Le simple fait de créer un fichier NOCOW n'aide pas, la prise en charge des fichiers d'échange repose sur une fonction que btrfs n'implémente pas intentionnellement en raison de corruptions potentielles. (...) Une solution de contournement, bien qu'avec des performances médiocres, consiste à monter un fichier d'échange via un périphérique de boucle.

Il n'y a donc pas encore de bon moyen de créer un fichier d'échange sur la partition btrfs.


Comme mentionné ci-dessus, depuis Linux 5.0 il est maintenant possible de créer des fichiers d'échange sur BTRFS. Mais ils doivent être non compressés et NoCOW.Voici comment créer réellement un tel fichier :

  1. Créer un fichier vide :touch /swap
  2. Utilisez chattr pour définir NoCOW lui attribuer :chattr +C /swap
  3. Vérifiez que C l'attribut est apparu :lsattr /swap
  4. Remplissez-le :dd if=/dev/zero of=/swap bs=1M count=1024 # pour 1 gigaoctet
  5. mkswap /swap && chmod 600 /swap && swapon /swap

Alternativement, vous pouvez créer un répertoire, définir chattr +C dans ce répertoire, puis créez un fichier d'échange sous celui-ci.

Notez que vous ne pouvez pas faire chattr +C vers un fichier non vide déjà existant. Il est documenté comme étant un comportement indéfini (en fait, il ne change tout simplement pas les attributs). Vous devez donc soit créer un fichier vide puis chattr , ou créer un répertoire avec chattr puis créez-y un fichier (dans ce cas, tous les fichiers créés après chattr le répertoire aura l'attribut nocow).

Mise en garde : comme mentionné, cela nécessite la version 5.0 ou supérieure du noyau. Raspberry Pi, par exemple, utilise des noyaux 4.19.*, vous ne pourrez donc pas utiliser cette technique dessus.


La prise en charge des fichiers d'échange a été ajoutée à la version 5.0 du noyau, comme on peut le voir sur commit https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ed46ff3d423780fa5173b38a844bf0fdb210a2a7Pour activer l'échange fichier sur btrfs, le fichier doit être entièrement alloué en tant que NOCOW sans compression sur un seul appareil.


Linux
  1. Comment créer un swap sous Linux

  2. Comment créer un fichier d'échange sous Linux

  3. Comment dupliquer un fichier sans copier ses données avec Btrfs ?

  4. Comment créer un système en direct sur une clé USB avec des modifications persistantes sur le disque/disque dur ?

  5. Comment débloquer un disque SSD avec hdparm ?

Comment créer un fichier sous Linux

Comment créer un fichier Tar Gz

Comment créer et gérer des partitions de disque avec Fdisk sous Linux

Comment créer de nouveaux utilisateurs dans OpenShift avec htpasswd et OAuth

Comment créer un fichier de site Web

Comment créer un e-commerce avec Magento