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
fsck
pro 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
mount
a 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.