Nozioni di base
Il file system btrfs è progettato per soddisfare i requisiti di scalabilità in espansione dei sottosistemi di archiviazione di grandi dimensioni. Poiché il file system btrfs utilizza B-trees nella sua implementazione, il suo nome deriva dal nome di quelle strutture dati, sebbene non sia un vero acronimo. Un B-tree è una struttura di dati simile ad un albero che consente ai file system e ai database di accedere e aggiornare in modo efficiente blocchi di dati di grandi dimensioni, indipendentemente dalle dimensioni dell'albero.
Il file system btrfs fornisce le seguenti importanti funzionalità:
- La funzionalità di copia su scrittura consente di creare snapshot sia leggibili che scrivibili e di ripristinare un file system a uno stato precedente, anche dopo averlo convertito da un file system ext3 o ext4.
- La funzionalità di checksum garantisce l'integrità dei dati.
- La compressione trasparente consente di risparmiare spazio su disco.
- La deframmentazione trasparente migliora le prestazioni.
- La gestione del volume logico integrato consente di implementare configurazioni RAID 0, RAID 1 o RAID 10 e di aggiungere e rimuovere dinamicamente la capacità di archiviazione.
A partire da CentOS/RHEL 6 Update 3, l'ISO di avvio consente di configurare un file system radice btrfs. Prima di CentOS/RHEL 6 Update 3, non era possibile creare un file system radice btrfs durante l'installazione.
Con UEK R3, btrfs supporta le seguenti funzionalità aggiuntive:
- La funzione di invio/ricezione consente di registrare le differenze tra due sottovolumi, che possono essere istantanee dello stesso sottovolume o sottovolumi padre e figlio.
- I gruppi di quote (qgroups) ti consentono di impostare limiti di dimensioni differenti per un volume e i suoi sottovolumi.
- Puoi sostituire i dispositivi senza smontare o interrompere in altro modo l'accesso al file system.
Questo documento spiega come creare un file system BTRFS in un singolo dispositivo su un sistema CentOS/RHEL. I passaggi seguenti sono stati eseguiti su una macchina virtuale che esegue CentOS/RHEL 7 con un disco virtuale di 5 GB.
Crea un file system BTRFS
Aggiungi il disco desiderato in cui verrà configurato il filesystem btrfs e assicurati che il sistema riconosca il disco:
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 20G 0 disk ├─xvda1 202:1 0 1G 0 part /boot └─xvda2 202:2 0 19G 0 part ├─ol-root 251:0 0 17G 0 lvm / └─ol-swap 251:1 0 2G 0 lvm [SWAP] xvdb 202:16 0 5G 0 disk
Nell'output sopra, il nostro disco sarà "xvdb". I dispositivi possono essere semplici partizioni del disco, dispositivi di loopback (ovvero immagini disco nella memoria), dispositivi multipath o LUN che implementano RAID nell'hardware.
1. Installa il pacchetto btrfs-progs se non è già installato sul tuo sistema:
# yum install btrfs-progs
2. Crea il file system Btrfs usando il comando mkfs.brtfs:
# mkfs.btrfs /dev/xvdb btrfs-progs v4.9.1 See http://btrfs.wiki.kernel.org for more information. Detected a SSD, turning off metadata duplication. Mkfs with -m dup if you want to force metadata duplication. Label: (null) UUID: c7d1687d-fe91-4837-b14a-4870466d1a3f Node size: 16384 Sector size: 4096 Filesystem size: 5.00GiB Block group profiles: Data: single 8.00MiB Metadata: single 8.00MiB System: single 4.00MiB SSD detected: yes Incompat features: extref Number of devices: 1 Devices: ID SIZE PATH 1 5.00GiB /dev/xvdb
3. Utilizzare il comando btrfs filesystem show per verificare che il file system sia stato creato sul dispositivo:
# btrfs filesystem show Label: none uuid: c7d1687d-fe91-4837-b14a-4870466d1a3f Total devices 1 FS bytes used 112.00KiB devid 1 size 5.00GiB used 20.00MiB path /dev/xvdb
Il comando sopra mostra tutti i file system btrfs nel sistema
o
# btrfs filesystem show /dev/xvdb Label: none uuid: c7d1687d-fe91-4837-b14a-4870466d1a3f Total devices 1 FS bytes used 112.00KiB devid 1 size 5.00GiB used 20.00MiB path /dev/xvdb
Il comando sopra mostra le informazioni sul file system btrfs solo sul dispositivo specificato necessario (/dev/xvdb)
4. Montare il file system corrispondente:
# mount /dev/xvdb /btrfsTest
5. Assicurati che il file system btrfs sia ora montato:
# mount | grep btrfs /dev/xvdb on /btrfsTest type btrfs (rw,relatime,seclabel,ssd,space_cache)
Interroga un file system BTRFS
Esegui il comando btrfs filesystem df per visualizzare informazioni più accurate sullo spazio utilizzato da un file system btrfs.
# btrfs filesystem df /btrfsTest/ Data, single: total=8.00MiB, used=64.00KiB System, single: total=4.00MiB, used=16.00KiB Metadata, single: total=264.00MiB, used=112.00KiB GlobalReserve, single: total=16.00MiB, used=0.00B
Possiamo usare il normale comando df per interrogare il file system ma le informazioni visualizzate potrebbero non essere accurate.
# df -h /btrfsTest/ Filesystem Size Used Avail Use% Mounted on /dev/xvdb 5.0G 17M 4.8G 1% /btrfsTest
Maggiori informazioni e opzioni possono essere trovate nella pagina di manuale di mkfs.btrfs:
# man mkfs.btrfs