Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "emanuc/pagina-iniziale-btrfs"
Differenze tra le versioni 16 e 17
Versione 16 del 17/04/2020 21.07.52
Dimensione: 7731
Autore: emanuc
Commento:
Versione 17 del 17/04/2020 21.09.26
Dimensione: 7738
Autore: emanuc
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 70: Linea 70:
 * Bench di compressione '''zstd''': || Livelli di compressione '''zstd''': ||

Introduzione

Btrfs è un moderno filesystem copy on write (CoW) per Linux che mira a implementare funzionalità avanzate concentrandosi anche sulla tolleranza agli errori, sulla riparazione e sulla facile amministrazione. Sviluppato congiuntamente da più società, Btrfs è concesso in licenza ai sensi della GPL e aperto al contributo di chiunque.

Maggiori dettagli: https://btrfs.wiki.kernel.org/index.php/Main_Page

Installare Ubuntu con filesystem Btrfs

Per installare Ubuntu con il filesystem btrfs e sfruttare tutte le sue funzionalità, dobbiamo procedere con l’installazione manuale indicata QUI, scegliere btrfs al posto di ext4.

Consigli post installazione:

  • Installare timeshift, fatte le configurazioni iniziali, creare uno snapshot, utile al ripristino del sistema in caso di update o problemi vari.

  • Se si vuole fare ulteriori personalizzazioni per ottimizzare la gestione degli snapshot e le

prestazione, consultare questa guida

  • Se non si ha nessuno swap abilitato e si vuole abilitare lo swapfile su btrfs seguire questa guida

Subvolume

Dettagli

Un sottovolume Btrfs è un filetree POSIX montabile indipendentemente e non un dispositivo a blocchi (e non può essere trattato come uno). La maggior parte degli altri filesystem POSIX ha una singola radice montabile, Btrfs ha una radice montabile indipendente per il volume (sottovolume di livello superiore) e per ogni sottovolume; un volume Btrfs può contenere più di un singolo filetree, può contenere una foresta di filetree. Un sottovolume Btrfs può essere pensato come uno spazio dei nomi di file POSIX.

Per Maggiori dettagli sui subvolume QUI

Nota:

  1. L'installer di Ubuntu di default crea due subvolumi:

    @: È la radice di Ubuntu /@/file di sistema, ci sono tutti i file di sistema.

    @home: È la home degli utente /@home/utenti.

  2. Per creare ed eliminare i subolumi, il filesystem radice deve essere montato, nel nostro esempio è montato su /mnt, /dev/sdYN è il numero della partizione radice dove si è installato Ubuntu. Il nome al subvolume @nomesubvolume può essere nominato a piacere, il consiglio è di nominarlo in modo da ricordare il mount.

  3. Esempio: per la cartella /var/log è buona norma nominarlo in @varlog: La @ iniziale si mantiene per lo standard di Ubuntu e si mostra subito che è un subvolume btrfs, varlog ci ricorda che è il mount del percorso /var/log.

Gestione subvolume

  1. Creare un subvolume:

    sudo btrfs subvolume create /mnt/@nomesubvolume
  2. Lista subvolumi:

    sudo btrfs subvolume list /
  3. Eliminare un subvolume:

    sudo btrfs subvolume delete /mnt/@nomesubvolume
  4. Mount di un subvolume:

    sudo mount -t btrfs -o subvol=@nomesubvolume /dev/sdYN /mnt

Compressione

Dettagli

Btrfs supporta la compressione trasparente e automatica. Ciò non solo riduce la dimensione dei file, ma può anche migliorare le prestazioni, in alcuni casi d'uso specifici (ad esempio thread singolo con I/O di file pesanti), danneggiando ovviamente le prestazioni in altri casi (ad esempio attività multithread e/o cpu con grandi attività file I/O). Le prestazioni migliori si ottengono generalmente con gli algoritmi di compressione più veloci, zstd e lzo , e alcuni benchmark forniscono confronti dettagliati.

Nota

  • Cosa succede ai file incomprimibili?
    • Esiste una semplice logica decisionale: se la prima porzione di dati da comprimere non è più piccola dell'originale, la compressione del file è disabilitata, a meno che non ci sia l'opzione di mount compress-force=algoritmo. In tal caso, la compressione verrà sempre tentata sul file solo per essere successivamente scartata, con maggior cicli di CPU. Questo non è ottimale e soggetto a ottimizzazioni e ulteriori sviluppi.

  • Cosa succede se abilito la compressione con i file già scritti?
    • Solo i file creati, modificati e dopo averli montati con l'opzione compress=algoritmo verranno compressi. Per applicare la compressione ai file esistenti utilizzare il comando "btrfs filesystem defragment -calgoritmo".

  • Posso impostare la compressione di un file, cartella o subvolume senza utilizzare l'opzione di mount (attualmente non si può avere opzioni di mount per singolo subvolume)?
    • Sì. L'utilità chattr supporta l'impostazione dell'attributo del file c che contrassegna l'inode per comprimere i nuovi dati scritti. L'impostazione della proprietà di compressione di un file utilizzando btrfs property set <file> compression <zlib|lzo|zstd> forzerà la compressione da utilizzare su quel file, cartella o subvolume utilizzando l'algoritmo specificato. Per disattivare la compressione btrfs property set <file> compression none

Supporto compressione:

  • zstd è disponibile dal kernel 4.14, i livelli di compressione per zstd sono disponibili dal kernel 5.1, se non si specifica nessun livello, il default è 3.

  • zlib supporta i livelli di compressione da 1 a 9, default è 3.

  • lzo non ha nessun livello di compressione su btrfs

  • ATTENZIONE: Per usare la compressione zstd sulla radice di Ubuntu /@ si deve avere la versione di GRUB 2.04, altrimenti al riavvio il sistema non si avvierà. Il requisito per Ubuntu è dalla versione 19.10.

  • Ad oggi non è possibile impostare i livelli di compressione con il comando user space btrfs filesystem defragment -r -v -czstd

Livelli di compressione zstd:

Level

Ratio

Compression (MB/s)

Decompression (MB/s)

1

2.658

438.47

910.51

2

2.744

364.86

886.55

3

2.801

336.33

828.41

4

2.858

286.71

886.55

5

2.916

212.77

556.84

6

2.363

119.82

990.85

7

3.000

154.06

849.30

8

3.011

159.54

875.03

9

3.025

100.51

940.15

10

3.033

118.97

616.26

11

3.036

94.19

802.11

12

3.037

73.45

931.49

13

3.041

55.17

835.26

14

3.087

44.70

716.78

15

3.126

37.30

878.84

Esempi

  1. Comprimere un subvolume con zstd:

    sudo btrfs filesystem defragment -r -v -czstd /mnt/@subvolume
  2. Comprimere un file o cartella con zstd:

    sudo btrfs filesystem defragment -r -v -czstd /percorso
  3. Opzione di mount con zstd livello 1:

    UUID=UUID / btrfs noatime,compress=zstd:1,autodefrag,subvol=@

Deframmentazione

Riparazione filesystem

Scrub

Balance

Deduplicazione

Snapshot

Btrfs send receive