GNU/Linux >> Linux Esercitazione >  >> Linux

Filesystem di compressione trasparente in combinazione con ext4

Soluzione 1:

Uso ZFS su Linux come gestore di volumi e mezzo per fornire protezioni e funzionalità aggiuntive ai filesystem tradizionali. Ciò include portare snapshot a livello di blocco, replica, deduplicazione, compressione e caching avanzato ai filesystem XFS o ext4.

Vedi:https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/ per un'altra spiegazione.

Nel mio caso d'uso più comune, sfrutto la funzione ZFS zvol per creare un volume sparse su uno zpool esistente. Le proprietà di zvol possono essere impostate proprio come quelle di un normale filesystem ZFS. A questo punto, puoi impostare proprietà come il tipo di compressione, la dimensione del volume, il metodo di memorizzazione nella cache, ecc.

La creazione di questo zvol presenta a Linux un dispositivo a blocchi che può essere formattato con il filesystem di tua scelta. Usa fdisk o parted per creare la tua partizione e mkfs il volume finito.

Montalo e essenzialmente avrai un filesystem supportato da uno zvol e con tutte le sue proprietà.

Ecco il mio flusso di lavoro...

Crea uno zpool composto da quattro dischi:
Avrai bisogno del ashift=12 direttiva per il tipo di dischi che stai utilizzando. Il nome zpool è "vol0" in questo caso.

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

Definisci le impostazioni zpool iniziali:
Ho impostato autoexpand=on a livello di zpool nel caso dovessi sostituire i dischi con unità più grandi o espandere il pool in un mirror ZFS impostare. In genere non utilizzo ZFS raidz1/2/3 a causa delle scarse prestazioni e dell'impossibilità di espandere zpool.

zpool set autoexpand=on vol0

Imposta le proprietà iniziali del filesystem zfs:
Si prega di utilizzare il lz4 algoritmo di compressione per nuove installazioni ZFS. Va bene lasciarlo sempre acceso.

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

Crea ZFS zvol:
Per ZFS su Linux, è molto importante utilizzare blocchi di grandi dimensioni. -o volblocksize=128k è assolutamente essenziale qui. Il -s L'opzione crea uno zvol sparse e non consuma lo spazio del pool fino a quando non è necessario. Puoi eseguire l'overcommit qui, se conosci bene i tuoi dati. In questo caso, ho circa 444 GB di spazio su disco utilizzabile nel pool, ma sto presentando un volume da 800 GB a XFS.

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

Dispositivo partizione zvol:
(dovrebbe essere /dev/zd0 per il primo zvol; /dev/zd16, /dev/zd32, ecc. per i successivi zvol )

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

Crea e monta il filesystem:
mkfs.xfs o ext4 sulla partizione appena creata, /dev/zd0p1.

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

Prendi l'UUID con blkid e modifica /etc/fstab .

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

Monta il nuovo filesystem.

mount /ppro/

Risultati...

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

Elenco dei filesystem 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

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

Proprietà ZFS zvol (prendi nota di referenced , compressratio e 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

Soluzione 2:

È inoltre necessario abilitare l'eliminazione sul filesystem ext4. Senza scarto, zfs non recupera lo spazio quando i file vengono rimossi. Questo può portare a grandi discrepanze di spazio tra ciò che riporta il filesystem ext4 e il volume zfs.


Linux
  1. Configura ZFS su Linux con yum

  2. Come aumentare il numero di inode in un filesystem Ext4?

  3. Annullare l'eliminazione di un file appena eliminato su Ext4 con Extundelete?

  4. Quale filesystem di cui eseguire il backup è il migliore??

  5. Esempi di comandi mkfs.ext4 in Linux

Introduzione a btrfs per Linux

Rilevamento delle violazioni con l'analisi forense del filesystem Linux

Comprensione dei filesystem Linux:ext4 e oltre

Guida introduttiva al filesystem ZFS su Ubuntu 19.10

Du risultati sul filesystem incoerenti con Df?

Convertire il filesystem di avvio da Xfs a Ext4?