Btrfs

Da GolemWiki.
Versione del 24 mag 2014 alle 12:58 di $pooky Hunter (discussione | contributi) (Creata pagina con '= Introduzione = Btrfs è un filesystem di nuova generazione designato per rimpiazzare Ext3 e Ext4 sui sistemi Linux. Integra a livello di filesystem la gestione di volumi, ...')
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Jump to navigation Jump to search

Introduzione

Btrfs è un filesystem di nuova generazione designato per rimpiazzare Ext3 e Ext4 sui sistemi Linux.

Integra a livello di filesystem la gestione di volumi, snapshot e RAID rendendo non più necessario il ricorso a LVM

Utilizzo di base

Creazione del filesystem

# mkfs.btrfs /dev/partizione

Montaggio del filesystem

# mount -o compress=lzo /dev/partizione /mnt/punto_mount

(Si consiglia di usare l'opzione di compressione del filesystem per migliorare le performance ed ottimizzare l'utilizzo dello spazio)

Conversione da Ext3/4 a Btrfs

# btrfs-convert /dev/partizione

Automaticamente è creata una snapshot contenente il vecchio filesystem (/ext2_saved)

In caso di problemi può essere montata col comando

# mount -t btrfs -o subvol=ext2_saved /dev/xxx /ext2_saved
# mount -t ext3 -o loop,ro /ext2_saved/image /ext3

Se tutto è andato a buon fine può invece essere eliminata

# btrfs subvolume delete /ext2_saved


Gestione avanzata

Normalmente la root di sistema viene collocata in un subvolume (es.: @), per poter effettuare opzioni di snapshot etc e consigliabile montare il filesystem con l'opzione subvolid=0. Nella directory di mount saranno visibili tutti i subvolumi e le snapshot della partizione e sarà quindi possibile effettuare tutte le operazioni indicate nei passaggi successivi.

Ecco un esempio di file /etc/fstab

LABEL=ROOT       /             btrfs     defaults,compress=lzo,subvol=@            0 0
LABEL=ROOT       /             btrfs     defaults,compress=lzo,subvol=@home        0 0
LABEL=ROOT      /mnt/btrfs     btrfs     defaults,noauto,subvolid=0,compress=lzo   0 0

Mountando la partizione con label ROOT su /mnt/btrfs saranno visibili tutti i subvolumi.

Creazione e gestione delle snapshot

Controllare i subvolumi presenti sul sistema

# btrfs subvolume list /

In una tipica installazione Ubuntu avremo un output di questo tipo

ID 257 gen 9755 top level 5 path @
ID 292 gen 7624 top level 5 path @home

@ è il nome del subvolume contenente la root / del filesystem @home è il nome del subvolume della /home

Effettuare una snapshot

# btrfs subvolume snapshot @ rootsnap

Nell'esempio abbiamo effettuato il backup del filesystem di root e l'abbiamo chiamato rootsnap

Montare un subvolume/snapshot

# mount -t btrfs -o subvol=rootsnap /dev/partizione /mnt/snapshot

Cancellare un subvolume/snapshot

# btrfs subvolume delete rootsnap


Aggiungere a GRUB l'opzione per avviare una snapshot

Editare /boot/grub/grub.cfg aggiungere quanto segue per permettere l'avvio della snapshot rootsnap

menuentry 'Linux snapshot' {
       insmod gzio
       insmod part_gpt
       insmod btrfs
       set root='hd1,gpt3'
       linux   /rootsnap/boot/vmlinuz-linux root=/dev/partizione rw rootflags=subvol=rootsnap  quiet
       initrd  /rootsnap/boot/initramfs-linux.img
}


RAID

RAID 0

mirror in Btrfs

http://lwn.net/Articles/577961/


For more than one device, simply use mkfs.btrfs -m raid1 -d raid1 /dev/sda1 /dev/sdb1

btrfs fi df /mount

Data, RAID1: total=1.00GB, used=128.00KB Data: total=8.00MB, used=0.00 System, RAID1: total=8.00MB, used=4.00KB System: total=4.00MB, used=0.00 Metadata, RAID1: total=1.00GB, used=24.00KB Metadata: total=8.00MB, used=0.00