Souborový systém Btrfs můžete používat jak na desktopu, tak serveru nebo i jinde. Všude ale můžete těžit z jeho výhod. Pro začátek je však dobré Btrfs začít používat například na desktopu nebo pokusném serveru. Tam se s ním naučit pracovat.
Co se dozvíte v článku
Predispozice systému
Předpokládám, že používáte operační systém na bázi GNU/Linuxu. Nejspíše nějakou distribuci a pokud je aktuální (rok 2019), tak základní podporu souborového systému Btrfs máte již v jádře. Ideální je samozřejmě používat aktuální verzi. V tomto případně zvlášť, protože Btrfs se průběžně vyvíjí a tak na starších systémech nemusí být dostupné všechny funkce. Obecně vzato je přibližně od roku 2014 Btrfs považováno za stabilní.
Instalace nástrojů
V distribucích debianího typu nainstalujete potřebné nástroje pro Btrfs příkazem:
# apt-get install btrfs-tools btrfs-progs
V distribuci Mageia použijeme následující instalační příkaz:
# urpmi btrfs-progs
Na ostatních distribucích obdobně. Název balíčku s nástroji pro práci s souborový systémem Btrfs bude mít určitě v názvu btrfs.
Vytvoření souborového systému Btrfs
Následujícím příkazem, vytvoříte na daném oddíle souborový systém Btrfs:
# mkfs.btrfs /dev/diskX
Pozor příkazem přijdete o data na daném oddíle! Buďte proto opatrní a dvakrát zkontrolujte, že nový souborový systém vytváříte na oddíle, kde žádná živá data nemáte.
Nyní můžete oddíl připojit do adresářové struktury příkazem:
# mount /dev/diskX /mnt/btrfsbackup
Následně již můžete začít oddíl používat jako jakýkoli jiný souborový systém a ukládat data, aniž byste věděli, že je použit souborový systém Btrfs. Ten vám bude v operačním systému fungovat stejně jako jakýkoli jiný unixový souborový systém.
Samozřejmě pro automatické připojení po startu operačního systému zapište do souboru /etc/fstab, kam se má v adresářové struktuře tento oddíl připojit. Nový řádek může vypadat například takto:
/dev/diskX /mnt/btrfsbackup btrfs defaults 0 0
Možno je uvést i různé parametry připojení. Některých se zmíním v dalších článcích. Kompletní výčet s popisem je v dokumentaci souborového systému Btrfs.
Konverze souborového systému EXT
Kdo nemá volný disk/oddíl, pro toho asi bude zajímavou volbou možnost konverze existujícího souborového systému. Je možné konvertovat souborový systémy EXT2/3/4 a ReiserFS. Doporučený postup je však vytvářet souborový systém nový.
Předpokládejme, že oddíl, který chcete konvertovat, je v tomto stavu:
# df -hP /data Filesystem Size Used Avail Use% Mounted on /dev/sda1 9.8G 37M 9.2G 1% /data
- Je potřeba odpojit existující souborový systém, který chcete konvertovat. Příkazem:
# umount /data
- Použijte utilitu
fsckpro kontrolu integrity souborového systému. Příkazem:# fsck /dev/sda1
Úspěšná bezproblémová kontrola integrity může vypadat např. takto:
# fsck from util-linux 2.23.2 e2fsck 1.42.9 (28-Dec-2013) /dev/sda: clean, 11/655360 files, 83137/2621440 blocks
- Použijete utilitu
btrfs-convert, která váš EXT souborový systém konvertuje na souborový systém Btrfs.# btrfs-convert /dev/sda1
Úspěšné konvertování a informace o provedení může vypadat např. takto:
create btrfs filesystem: blocksize: 4096 nodesize: 16384 features: extref, skinny-metadata (default) creating ext2 image file creating btrfs metadatacopy inodes [o] [ 2/ 11] conversion complete - Upravte soubor
/etc/fstab, kde změníte typ souborového systému z původního EXT na Btrfs./dev/sda1 /data btrfs defaults 0 0
- Nyní můžete připojit oddíl, na kterém již je souborový systém Btrfs. Následujícím příkazem ho připojíte do původního místa:
# mount /dev/sda1
- Informace o připojených souborových systémech můžete vypsat příkazem
mounta zkontrolovat tak parametry připojení.
Stav souborového systému Btrfs
Standardní příkazem df můžete zjistit základní informace, které se týkají všech aktuálně používaných souborových systémů. Konkrétně: jaký oddíl je kam připojen, jak je velký a kolik místa na něm již je zabráno.
Poznámka: Dříve příkaz df ukazoval obsazení místa na souborovém systému Btrfs nesprávně, ale dneska už zabrané místo souhlasí.
Vzhledem ke specifikům souborového systému Btrfs se vám bude občas hodit nahlédnout i na podrobnější informace o stavu vašeho oddílu, k čemuž existují další příkazy.
Pro zjištění podobnějších informací slouží následující příkaz:
# btrfs filesystem df /mnt/btrfsbackup/
Zkrácená verze:
# btrfs fi df /mnt/btrfsbackup/
Výpis informací pak může vypadat například takto:
Data, single: total=203.34GiB, used=183.37GiB System, single: total=4.00MiB, used=48.00KiB Metadata, single: total=3.01GiB, used=1.48GiB GlobalReserve, single: total=275.30MiB, used=0.00B
Z výpisu je vidět, kolik místa zabírají data, metadata a systémové informace. Všechny tyto informace jsou na disku uloženy v módu single, což znamená, že nejsou nijak zdvojené.
Další podrobnosti k tomuto tématu si řekneme v pokračování seriálu.Kvůli komplikovanosti souborový systému Btrfs v počátcích příkaz df neukazoval pravdivé informace o volném/zaplněném místě, což bylo matoucí. Dneska tomu je už jinak, ale tenkrát se pro získaní informací o kompletním obsazeném (volném) místě dal použít pro výpis smysluplných údajů pouze následující příkaz.Jako parametr je potřeba uvést cestu k disku:
# btrfs filesystem show /dev/sda2
Label: 'systembtrfs' uuid: 525820fd-b8a6-4927-b943-4dca26452333
Total devices 1 FS bytes used 368.79GiB
devid 1 size 441.41GiB used 441.41GiB path /dev/sda2
Krom zaplnění jsou vidět i další podrobnosti úložiště. Vidíme pojmenovávání disku, jeho UUID a cestu k zařízení. Pokud by byl souborový systém roztažen přes více disků, byly by vypsány také.
Následujícím příkazem můžete zjistit, zdali při práci se souborovým systémem nebyly zaznamenány nějaké chyby:
# btrfs device stats /
Výstup může vypadat takto:
[/dev/sda2].write_io_errs 0 [/dev/sda2].read_io_errs 0 [/dev/sda2].flush_io_errs 0 [/dev/sda2].corruption_errs 0 [/dev/sda2].generation_errs 0
Pokud by například na disku docházelo ke skryté degradaci dat, tak právě zde byste se to dozvěděli. Podrobnosti o konkrétním problému pak můžete dohledat v systémovém logu.
Pro pravidelné zasílání tohoto výpisu si můžete vytvořit cronjob, který vám bude tyto informace pravidelně zasílat na e-mail. Konfigurace pro cron:
MAILTO=admin@example.com @hourly /sbin/btrfs device stats /data | grep -vE ' 0$'
Takovéto automatické zasílání využijete nejvíce na linuxovém serveru, kde chce mít disky a stav souborového systému pod automatickým dohledem.
První použití
Právě díky tomu, že Btrfs souborový systém je Copy On Write, dostal do vínku i efektivní kopírování souborů. Soubory mezi sebou totiž mohou sdílet bloky. Tímto příkazem provedete kopii souboru, takže nový a původní soubor sdílí datové bloky:
# cp -ar --reflink soubor souborCopy
Toto chování příkazu cp už je nastaveno jako výchozí. Takže bez jakékoli vaší snahy už automaticky dochází k využívaní této funkce. Výhoda je, že kopírování je pak rychlé a zároveň šetříte místo.
Používáte nebo jste začali používat souborový systém Btrfs? Napište svoje zkušenosti do diskuze. V pokračování se dozvíte, jak používat snapshoty.