GNU/Linux >> Tutoriels Linux >  >> Linux

Système de fichiers de compression transparent en conjonction avec ext4

Solution 1 :

J'utilise ZFS sous Linux en tant que gestionnaire de volumes et un moyen de fournir des protections et des fonctionnalités supplémentaires aux systèmes de fichiers traditionnels. Cela inclut l'apport d'instantanés au niveau du bloc, la réplication, la déduplication, la compression et la mise en cache avancée sur les systèmes de fichiers XFS ou ext4.

Voir :https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/ pour une autre explication.

Dans mon cas d'utilisation le plus courant, j'utilise la fonctionnalité ZFS zvol pour créer un volume sparse sur un zpool existant. Les propriétés de ce zvol peuvent être définies comme celles d'un système de fichiers ZFS normal. À ce stade, vous pouvez définir des propriétés telles que le type de compression, la taille du volume, la méthode de mise en cache, etc.

La création de ce zvol présente un périphérique bloc à Linux qui peut être formaté avec le système de fichiers de votre choix. Utilisez fdisk ou parted pour créer votre partition et mkfs le volume fini.

Montez ceci et vous avez essentiellement un système de fichiers soutenu par un zvol et avec toutes ses propriétés.

Voici mon flux de travail...

Créez un zpool composé de quatre disques :
Vous voudrez le ashift=12 directive pour le type de disques que vous utilisez. Le nom du zpool est "vol0" dans ce cas.

zpool create -o ashift=12 -f vol0 mirrorscsi-AccOW140403AS1322043scsi-AccOW140403AS1322042 mirrorscsi-AccOW140403AS1322013scsi-AccOW140403AS1322044

Définir les paramètres zpool initiaux :
J'ai mis autoexpand=on au niveau du zpool au cas où je remplacerais les disques par des disques plus grands ou étendrais le pool dans un miroirs ZFS mettre en place. Je n'utilise généralement pas ZFS raidz1/2/3 en raison de performances médiocres et de l'impossibilité d'étendre le zpool.

zpool set autoexpand=on vol0

Définissez les propriétés initiales du système de fichiers zfs :
Veuillez utiliser le lz4 algorithme de compression pour les nouvelles installations ZFS. Vous pouvez le laisser allumé tout le temps.

zfs set compression=lz4 vol0
zfs set atime=off vol0

Créer un zvol ZFS :
Pour ZFS sur Linux, il est très important que vous utilisiez une grande taille de bloc. -o volblocksize=128k est absolument essentiel ici. Le -s L'option crée un zvol clairsemé et ne consomme pas d'espace de pool tant qu'il n'est pas nécessaire. Vous pouvez vous surengager ici, si vous connaissez bien vos données. Dans ce cas, j'ai environ 444 Go d'espace disque utilisable dans le pool, mais je présente un volume de 800 Go à XFS.

zfs create -o volblocksize=128K -s -V 800G vol0/pprovol

Dispositif de partitionnement zvol :
(doit être /dev/zd0 pour le premier zvol ; /dev/zd16, /dev/zd32, etc. pour les zvols suivants )

fdisk /dev/zd0 # (create new aligned partition with the "c" and "u" parameters)

Créez et montez le système de fichiers :
mkfs.xfs ou ext4 sur la partition nouvellement créée, /dev/zd0p1.

mkfs.xfs -f -l size=256m,version=2 -s size=4096 /dev/zd0p1

Saisissez l'UUID avec blkid et modifier /etc/fstab .

UUID=455cae52-89e0-4fb3-a896-8f597a1ea402 /ppro       xfs     noatime,logbufs=8,logbsize=256k 1 2

Montez le nouveau système de fichiers.

mount /ppro/

Résultats...

[[email protected] ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sde2        20G  8.9G  9.9G  48% /
tmpfs            32G     0   32G   0% /dev/shm
/dev/sde1       485M   63M  397M  14% /boot
/dev/sde7       2.0G   68M  1.9G   4% /tmp
/dev/sde3        12G  2.6G  8.7G  24% /usr
/dev/sde6       6.0G  907M  4.8G  16% /var
/dev/zd0p1      800G  398G  403G  50% /ppro  <-- Compressed ZFS-backed XFS filesystem.
vol0            110G  256K  110G   1% /vol0

Liste des systèmes de fichiers ZFS.

[[email protected] ~]# zfs list
NAME           USED  AVAIL  REFER  MOUNTPOINT
vol0           328G   109G   272K  /vol0
vol0/pprovol   326G   109G   186G  -   <-- The actual zvol providing the backing for XFS.
vol1           183G   817G   136K  /vol1
vol1/images    183G   817G   183G  /images

Liste zpool ZFS.

[[email protected] ~]# zpool list -v
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
vol0   444G   328G   116G    73%  1.00x  ONLINE  -
  mirror   222G   164G  58.1G         -
    scsi-AccOW140403AS1322043      -      -      -         -
    scsi-AccOW140403AS1322042      -      -      -         -
  mirror   222G   164G  58.1G         -
    scsi-AccOW140403AS1322013      -      -      -         -
    scsi-AccOW140403AS1322044      -      -      -         -

Propriétés ZFS zvol (notez referenced , compressratio et volsize ).

[[email protected] ~]# zfs get all vol0/pprovol
NAME          PROPERTY               VALUE                  SOURCE
vol0/pprovol  type                   volume                 -
vol0/pprovol  creation               Sun May 11 15:27 2014  -
vol0/pprovol  used                   326G                   -
vol0/pprovol  available              109G                   -
vol0/pprovol  referenced             186G                   -
vol0/pprovol  compressratio          2.99x                  -
vol0/pprovol  reservation            none                   default
vol0/pprovol  volsize                800G                   local
vol0/pprovol  volblocksize           128K                   -
vol0/pprovol  checksum               on                     default
vol0/pprovol  compression            lz4                    inherited from vol0
vol0/pprovol  readonly               off                    default
vol0/pprovol  copies                 1                      default
vol0/pprovol  refreservation         none                   default
vol0/pprovol  primarycache           all                    default
vol0/pprovol  secondarycache         all                    default
vol0/pprovol  usedbysnapshots        140G                   -
vol0/pprovol  usedbydataset          186G                   -
vol0/pprovol  usedbychildren         0                      -
vol0/pprovol  usedbyrefreservation   0                      -
vol0/pprovol  logbias                latency                default
vol0/pprovol  dedup                  off                    default
vol0/pprovol  mlslabel               none                   default
vol0/pprovol  sync                   standard               default
vol0/pprovol  refcompressratio       3.32x                  -
vol0/pprovol  written                210M                   -
vol0/pprovol  snapdev                hidden                 default

Solution 2 :

Vous devez également activer la suppression sur le système de fichiers ext4. Sans suppression, zfs ne récupère pas l'espace lorsque les fichiers sont supprimés. Cela peut entraîner de grandes différences d'espace entre ce que signale le système de fichiers ext4 et les rapports de volume zfs.


Linux
  1. Du résultats sur le système de fichiers incompatible avec Df ?

  2. Exemples de commandes mkfs.ext4 sous Linux

  3. Configuration ZFS pour débutant avec des disques de différentes tailles

  4. ZFS en tant que système de fichiers racine sur une nouvelle machine Linux ?

  5. Pourquoi l'option insensible à la casse dans ext4 était-elle nécessaire ?

Premiers pas avec btrfs pour Linux

Détection des violations avec la criminalistique du système de fichiers Linux

Comprendre les systèmes de fichiers Linux :ext4 et au-delà

Premiers pas avec le système de fichiers ZFS sur Ubuntu 19.10

Convertir le système de fichiers de démarrage de Xfs en Ext4 ?

Inconvénients du montage d'un système de fichiers avec noatime ?