GNU/Linux >> Znalost Linux >  >> Linux

Začínáme s btrfs pro Linux

Btrfs je pro Linux k dispozici již několik let, takže jej možná již znáte. Pokud ne, můžete mít otázky ohledně toho, zvláště pokud používáte Fedora Workstation (Btrfs je nyní jejím výchozím souborovým systémem). Cílem tohoto článku je pomoci vám seznámit se s ním a jeho pokročilými funkcemi, jako je kopírování při zápisu a kontrolní součty.

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Btrfs, zkratka pro B-Tree Filesystem, je ve skutečnosti souborový systém a správce svazků sloučený do jednoho. Často je vnímáno jako odpověď na ZFS, představený v Solaris OS Sun Microsystem již v roce 2005, nyní z velké části nahrazený open source implementací nazvanou OpenZFS. Ubuntu Linux a FreeBSD často obsahují OpenZFS. Další příklady s podobnými funkcemi jsou Stratis společnosti Red Hat a Linux Logical Volume Manager (LVM).

Nastavení

Pro vyzkoušení Btrfs jsem si stáhl soubor ISO Fedora 33 Workstation a nainstaloval jej do nového virtuálního stroje (VM). Proces instalace se oproti předchozím verzím nezměnil. Neupravoval jsem žádná nastavení, včetně rozdělení disku a formátování, abych zachoval přesné nastavení tohoto návodu. Jakmile byl virtuální počítač v provozu, nainstaloval jsem a spustil GNOME Partition Editor (GParted) pro pěkný, z výroby čerstvý pohled na rozložení disku.

Od tohoto okamžiku se to příliš neliší od toho, na co jste zvyklí. ve skutečnosti můžete systém normálně používat a možná si ani nevšimnete, že souborovým systémem je Btrfs. Toto nové výchozí nastavení vám však umožňuje využít několik skvělých funkcí.

Prozkoumat souborový systém Btrfs

Nevím o žádných grafických nástrojích specifických pro Btrfs, ačkoli některé jeho funkce byly začleněny do existujících nástrojů pro správu disků.

Z příkazového řádku se můžete blíže podívat na formát Btrfs:

# btrfs filesystem show
Label: 'fedora_localhost-live'  uuid: f2bb02f9-5c41-4c91-8eae-827a801ee58a
        Total devices 1 FS bytes used 6.36GiB
        devid    1 size 10.41GiB used 8.02GiB path /dev/vda3

Změnit štítky Btrfs

První věc, které jsem si všiml, byl štítek souborového systému nastavený instalačním programem:fedora_localhost-live . To je nepřesné, protože se nyní jedná o nainstalovaný systém a již nejde o živé CD. Tak jsem to změnil pomocí btrfs filesystem label příkaz.

Změna štítku souborového systému Btrfs je jednoduchá:

# btrfs filesystem label /
fedora_localhost-live
# btrfs filesystem label / fedora33workstation
# btrfs filesystem label /
fedora33workstation

Správa dílčích svazků Btrfs

Zdá se, že podsvazek je standardní adresář, který lze spravovat pomocí Btrfs. Na mé nové pracovní stanici Fedora 33 je několik podsvazků:

# btrfs subvolume list /
ID 256 gen 2458 top level 5 path home
ID 258 gen 2461 top level 5 path root
ID 265 gen 1593 top level 258 path var/lib/machines

Vytvořte nový subvolume pomocí btrfs subvolume create nebo odstraňte dílčí svazek pomocí btrfs subvolume delete :

# btrfs subvolume create /opt/foo
Create subvolume '/opt/foo'
# btrfs subvolume list /
ID 256 gen 2884 top level 5 path home
ID 258 gen 2888 top level 5 path root
ID 265 gen 1593 top level 258 path var/lib/machines
ID 276 gen 2888 top level 258 path opt/foo
# btrfs subvolume delete /opt/foo
Delete subvolume (no-commit): '/opt/foo'

Dílčí svazky umožňují akce, jako je nastavení kvóty, pořízení snímku a replikace do jiných umístění a hostitelů. Jak mohou správci systému využít těchto možností? A co domovské adresáře uživatelů?

Přidat uživatele

Jak tomu bylo od dávných dob, přidáním nového uživatelského účtu se vytvoří domovský adresář, který bude účet používat:

# useradd student1
# getent passwd student1
student1:x:1006:1006::/home/student1:/bin/bash
# ls -l /home
drwx------. 1 student1 student1  80 Oct 29 00:21 student1

Tradičně je domovským adresářem uživatele podadresář /home . Vlastnictví a privilegia jsou přizpůsobeny vlastníkovi, ale neexistují žádné speciální funkce pro jejich správu. Dalším scénářem je prostředí podnikového serveru. Často je adresář vyhrazen pro použití konkrétní aplikací a jejím uživatelem. Ke správě a aplikaci omezení na tyto adresáře můžete využít Btrfs.

Aby bylo možné přizpůsobit podsvazky Btrfs jako domovy uživatelů, existuje nová možnost useradd příkaz:--btrfs-subvolume-home . Přestože manuálové stránky nebyly aktualizovány (v době psaní tohoto článku), můžete tuto možnost zobrazit spuštěním useradd --help . Předáním této možnosti při přidávání nového uživatele se vytvoří nový podsvazek Btrfs. Funguje stejně jako -d volba dělá pro vytvoření běžného adresáře:

# useradd --btrfs-subvolume-home student2
Create subvolume '/home/student2'

Ověřte uživatele pomocí getent passwd student2 a bude vypadat normálně. Spusťte však btrfs subvolume příkaz k výpisu podsvazků a uvidíte něco zajímavého:domovský adresář nového uživatele!

# btrfs subvolume list /
ID 256 gen 2458 top level 5 path home
ID 258 gen 2461 top level 5 path root
ID 265 gen 1593 top level 258 path var/lib/machines
ID 272 gen 2459 top level 256 path home/student2

Prozkoumejte druhý scénář prostředí podnikového serveru. Předpokládejme, že potřebujete nainstalovat server WildFly v /opt a nasadit webovou aplikaci Java. Často je vaším prvním krokem vytvoření wildfly uživatel. Udělejte to pomocí nového --btrfs-subvolume-home spolu s -b možnost zadat /opt jako základní adresář:

# useradd -b /opt --btrfs-subvolume-home wildfly
Create subvolume '/opt/wildfly'

Nyní wildfly uživatel se může přihlásit a dokončit instalaci v /opt/wildfly .

Smazat uživatele

Když odstraníte uživatele, někdy budete chtít smazat soubory tohoto uživatele a domovský adresář současně. userdel příkaz má -r a také odstraní dílčí svazky Btrfs:

# userdel -r student2
Delete subvolume (commit): '/home/student2'

Nastavte kvóty využití disku

V jedné z mých hodin informatiky student spustil program v jazyce C, který se vymkl kontrole a zapisoval na disk, dokud nebyl celý /home byl vyplněn na unixovém systému oddělení! Server se stal nedostupným, dokud admin nezabil ubíhající proces a neuvolnil nějaké místo. Totéž platí pro scénář výše; že podniková aplikace Wildfly bude mít pro své uživatele rostoucí počet souborů protokolů a úložišť obsahu. Jak můžete zabránit tomu, aby se server zastavil, protože se disk zaplnil? Nastavení omezení využití disku je dobrý nápad. Naštěstí to Btrfs podporuje prostřednictvím kvót.

Konfigurace kvót vyžaduje několik kroků. Prvním krokem je povolení quota na souborovém systému Btrfs:

# btrfs quota enable /

Ujistěte se, že znáte ID číslo skupiny kvót (qgroup) každého podsvazku, které se zobrazuje v btrfs subvolume list příkaz. Každý podsvazek potřebuje přidruženou skupinu qgroup na základě svého ID. To lze provést individuálně pomocí btrfs qgroup create , ale wiki Btrfs pohodlně poskytuje následující příkaz pro urychlení vytváření qgroups pro subvolume na souborovém systému:

>btrfs subvolume list \<path> | cut -d' ' -f2 | xargs -I{} -n1 btrfs qgroup destroy 0/{} \<path>

V čerstvě nainstalovaném systému pracovní stanice Fedora 33 pracujete na kořenové cestě souborového systému, / . Nahraďte \<path> s kořenovou cestou:

# btrfs subvolume list / | cut -d' ' -f2 | xargs -I{} -n1 btrfs qgroup create 0/{} /

Poté spusťte btrfs quota rescan a podívejte se na nové qgroups:

# btrfs quota rescan /
quota rescan started
# btrfs qgroup show /
qgroupid         rfer         excl
--------         ----         ----
0/5          16.00KiB     16.00KiB
0/256       272.04MiB    272.04MiB
0/258         6.08GiB      6.08GiB
0/265        16.00KiB     16.00KiB
0/271        16.00KiB     16.00KiB
0/273        16.00KiB     16.00KiB

Nyní můžete přiřadit kvótu jedné ze skupin qgroups, která se naopak použije na příslušný podsvazek. Pokud tedy chcete omezit využití domovského adresáře studenta3 na 1 GB, použijte btrfs qgroup limit příkaz:

# btrfs qgroup limit 1G /home/student3

Potvrďte kvótu pro konkrétní podsvazek:

# btrfs qgroup show -reF /home/student3
qgroupid         rfer         excl     max_rfer     max_excl
--------         ----         ----     --------     --------
0/271        16.00KiB     16.00KiB      1.00GiB         none

Mírně odlišné možnosti zobrazí všechny qgroups a všechny nastavené kvóty:

# btrfs qgroup show -re /
qgroupid         rfer         excl     max_rfer     max_excl
--------         ----         ----     --------     --------
0/5          16.00KiB     16.00KiB         none         none
0/256       272.04MiB    272.04MiB         none         none
0/258         6.08GiB      6.08GiB         none         none
0/265        16.00KiB     16.00KiB         none         none
0/271        16.00KiB     16.00KiB      1.00GiB         none
0/273        16.00KiB     16.00KiB         none         none

Další funkce

Tyto příklady poskytují určitou představu o funkcích Btrfs. Spusťte btrfs --help zobrazíte úplný seznam příkazů. Existuje mnoho dalších pozoruhodných schopností; například snímky a odesílání a přijímání stojí za to se naučit.

Poslední myšlenky

Btrfs nabízí mnoho příslibů pro poskytování pokročilé sady funkcí souborového systému pro Linux. Nebylo to první; Vděčím ZFS za to, že jsem před 15 lety představil tento typ souborového systému, ale Btrfs je plně open source a nezatížené patenty.

Pokud chcete prozkoumat tento souborový systém, doporučuji začít s virtuálním počítačem nebo náhradním systémem.

Rád bych viděl nějaké grafické nástroje pro správu vytvořené pro systémové administrátory, kteří rádi operují ve světě GUI. Naštěstí má Btrfs silnou vývojovou aktivitu, o čemž svědčí rozhodnutí projektu Fedora nastavit jej jako výchozí na Workstation 33.


Linux
  1. Začínáme s linuxovými firewally

  2. 5 tipů, jak začít se zabezpečením serveru Linux

  3. Začínáme se Sambou pro interoperabilitu

  1. Začínáme se socatem, víceúčelovým přenosovým nástrojem pro Linux

  2. Začínáme s PostgreSQL na Linuxu

  3. Začínáme s SSH v Linuxu

  1. Rady pro začátek s GNOME

  2. Začínáme s pracovním prostředím GNOME Linux

  3. Souborový systém SD karet odolný proti poškození pro vestavěný Linux?