GNU/Linux >> Tutoriales Linux >  >> Linux

Sistema de archivos de compresión transparente junto con ext4

Solución 1:

Uso ZFS en Linux como administrador de volúmenes y un medio para proporcionar protecciones y funcionalidades adicionales a los sistemas de archivos tradicionales. Esto incluye llevar instantáneas a nivel de bloque, replicación, deduplicación, compresión y almacenamiento en caché avanzado a los sistemas de archivos XFS o ext4.

Consulte:https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/ para obtener otra explicación.

En mi caso de uso más común, aprovecho la función ZFS zvol para crear un volumen disperso en un zpool existente. Las propiedades de ese zvol se pueden configurar como un sistema de archivos ZFS normal. En este momento, puede establecer propiedades como el tipo de compresión, el tamaño del volumen, el método de almacenamiento en caché, etc.

La creación de este zvol presenta un dispositivo de bloque para Linux que se puede formatear con el sistema de archivos de su elección. Usa fdisk o parted para crear su partición y mkfs el volumen terminado.

Monte esto y esencialmente tendrá un sistema de archivos respaldado por un zvol y con todas sus propiedades.

Este es mi flujo de trabajo...

Cree un zpool compuesto por cuatro discos:
Querrás el ashift=12 directiva para el tipo de discos que está utilizando. El nombre de zpool es "vol0" en este caso.

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

Establecer la configuración inicial de zpool:
Configuré autoexpand=on en el nivel de zpool en caso de que alguna vez reemplace los discos con unidades más grandes o amplíe el grupo en un espejo ZFS configuración. Por lo general, no uso ZFS raidz1/2/3 debido al bajo rendimiento y la incapacidad de expandir el zpool.

zpool set autoexpand=on vol0

Establecer propiedades iniciales del sistema de archivos zfs:
Utilice el lz4 algoritmo de compresión para nuevas instalaciones de ZFS. Está bien dejarlo encendido todo el tiempo.

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

Crear ZFS zvol:
Para ZFS en Linux, es muy importante que utilice un tamaño de bloque grande. -o volblocksize=128k es absolutamente esencial aquí. El -s La opción crea un zvol escaso y no consume espacio del grupo hasta que se necesita. Puede comprometerse en exceso aquí, si conoce bien sus datos. En este caso, tengo alrededor de 444 GB de espacio en disco utilizable en el grupo, pero estoy presentando un volumen de 800 GB para XFS.

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

Dispositivo zvol de partición:
(debe ser /dev/zd0 para el primer zvol; /dev/zd16, /dev/zd32, etc. para los siguientes zvols )

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

Crear y montar el sistema de archivos:
mkfs.xfs o ext4 en la partición recién creada, /dev/zd0p1.

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

Toma el UUID con blkid y modificar /etc/fstab .

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

Monte el nuevo sistema de archivos.

mount /ppro/

Resultados...

[[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

Listado del sistema de archivos 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

Lista de zpool de 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      -      -      -         -

Propiedades de ZFS zvol (tome nota de referenced , compressratio y 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

Solución 2:

También debe habilitar el descarte en el sistema de archivos ext4. Sin descartar, zfs no recupera el espacio cuando se eliminan los archivos. Esto puede conducir a grandes discrepancias de espacio entre lo que informa el sistema de archivos ext4 y los informes de volumen zfs.


Linux
  1. ¿Cómo aumentar el número de inodos en un sistema de archivos Ext4?

  2. ¿Recuperar un archivo recién eliminado en Ext4 con Extundelete?

  3. ¿Qué sistema de archivos para respaldar es el mejor?

  4. Cómo crear un sistema de archivos ZFS con compresión de archivos en Linux

  5. Cómo configurar el sistema de archivos ZFS en Linux con ejemplos de comandos zpool

Primeros pasos con btrfs para Linux

Detección de brechas con análisis forense del sistema de archivos de Linux

Comprender los sistemas de archivos de Linux:ext4 y más allá

Primeros pasos con el sistema de archivos ZFS en Ubuntu 19.10

¿Convertir el sistema de archivos de arranque de Xfs a Ext4?

¿Desventajas de montar un sistema de archivos con noatime?