Btrfs
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