GNU/Linux >> Znalost Linux >  >> Cent OS

Jak vytvořit a připojit Btrfs snímky

Btrfs je open source, univerzální souborový systém pro Linux. Název je odvozen od použití B-stromů k ukládání vnitřních struktur souborového systému. Pro systém souborů se používají různé názvy, včetně „Butter F S“ a „B-tree F S“. Vývoj Btrfs začal ve společnosti Oracle v roce 2007 a nyní se na vývoji podílí řada společností (včetně Red Hat, Fujitsu, Intel, SUSE a mnoha dalších). Btrfs je součástí hlavního linuxového jádra.

Snímky Btrfs

Dílčí svazky Btrfs mohou být snapshoty a klonovány, což vytváří další B-stromy. Snímek začíná jako kopie dílčího svazku pořízeného v určitém okamžiku. Můžete vytvořit snímek zapisovatelný a použít jej jako vyvíjející se klon původního dílčího svazku. Nebo můžete snímek použít jako stabilní obraz dílčího svazku pro účely zálohování nebo migrace na jiné systémy. Snímky lze vytvářet rychle a zpočátku zabírají velmi málo místa na disku.

Pomocí příkazu btrfs subvolume snapshot vytvořte zapisovatelný/čitelný snímek subvolume. Následující příklad vytvoří snímek podsvazku SV1:

# btrfs subvolume snapshot /btrfs/SV1 /btrfs/SV1/SV1-snap
Create a snapshot of '/btrfs/SV1' in '/btrfs/SV1/SV1-snap'

Použijte snímek subvolume btrfs -r možnost vytvořit snímek pouze pro čtení:

# btrfs subvolume snapshot -r /btrfs/SV1 /btrfs/SV1-rosnap
Create a readonly snapshot of '/btrfs/SV1' in '/btrfs/SV1-rosnap'

Při použití příkazu ls se snímky objeví jako běžný adresář. Snímky se také objeví ve výstupu příkazu btrfs subvolume list.

# btrfs subvolume list /btrfs
ID 257 gen 10 top level 5 path SV1
ID 258 gen 9 top level 257 path SV1/SV1-snap
ID 259 gen 10 top level 5 path SV1-rosnap

Pořízení snímku souboru

Můžete použít „cp –reflink ” pro pořízení snímku souboru. S touto volbou systém souborů nevytvoří nový odkaz ukazující na existující inode, ale místo toho vytvoří nový inode, který sdílí stejné bloky disku jako původní kopie. Zdá se, že nový soubor je kopií původního souboru, ale datové bloky nejsou duplikovány. To umožňuje téměř okamžité kopírování a také šetří místo na disku. Jak se obsah souboru v průběhu času liší, roste jeho velikost požadovaného úložiště. Jedním omezením je, že tato operace může fungovat pouze v rámci stejného souborového systému a ve stejném podsvazku.

Následující příklad zkopíruje soubor pomocí příkazu cp –reflink. Použitý prostor je dán před i po operaci kopírování. Všimněte si, že použitý prostor se nezvětší.

# df -hP /btrfs
Filesystem       Size  Used   Avail  Use%   Mounted on
/dev/sda         10G   23M    8.0G    1%    /btrfs
# cp --reflink /btrfs/SV1/vmlinuz-3.10.0-693.17.1.el7.x86_64 /btrfs/SV1/copy_of_vmlinuz
# df -h /btrfs
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda         10G   23M  8.0G   1% /btrfs

Připojení dílčího svazku nebo snímku

Ve výchozím nastavení Linux připojí nadřazený svazek Btrfs, který má ID 0. V tomto příkladu byl před vytvořením jakýchkoli podsvazků a snímků zadán následující příkaz mount:

# mount /dev/sdb /btrfs

Podsvazek SV1 byl vytvořen v /btrfs. Příkaz ls zobrazí podsvazek:

# ls -l /btrfs
total 0
drwxr-xr-x. 1 root root 84 Mar 29 11:01 SV1

Následující příklad zkopíruje soubory do SV1, vytvoří snímek SV1 a ověří, že podsvazek i snímek obsahují stejné soubory:

# cp -p /boot/vmlinuz-3.10.0-693.17.1.el7.x86_64 /btrfs/SV1
# btrfs sub snapshot /btrfs/SV1 /btrfs/SV1-snap
Create a snapshot of '/btrfs/SV1' in '/btrfs/SV1-snap'
# ls /btrfs/SV1*
/btrfs/SV1:
vmlinuz-3.10.0-693.17.1.el7.x86_64

/btrfs/SV1-snap:
vmlinuz-3.10.0-693.17.1.el7.x86_64

Pokud odpojíte /btrfs a znovu jej připojíte, bude výchozí svazek Btrfs připojen:

# ls /btrfs/
SV1  SV1-snap
# umount /btrfs
# mount /dev/sda /btrfs/
# ls /btrfs/
SV1  SV1-snap

Můžete však připojit podsvazek nebo snímek btrfs, jako by to bylo diskové zařízení. Pokud připojíte snímek místo jeho nadřazeného podsvazku, efektivně vrátíte stav systému souborů do doby, kdy byl snímek pořízen. Následující příklad zkopíruje soubor do SV1 tak, aby se obsah lišil od SV1-snap:

# cp testfile /btrfs/SV1
# ls -l /btrfs/SV1*
/btrfs/SV1:
total 5760
-rw-r--r--. 1 root root      19 Mar 29 11:44 testfile
-rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64

/btrfs/SV1-snap:
total 5756
-rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64

Chcete-li připojit podsvazek nebo snímek, musíte nejprve určit číslo ID podsvazku, který chcete připojit. K zobrazení čísel ID použijte příkaz btrfs subvolume list. V následujícím příkladu je ID kořenového podsvazku 257:

# btrfs sub list /btrfs
ID 257 gen 12 top level 5 path SV1
ID 258 gen 9 top level 5 path SV1-snap

Použijte btrfs „subvolume set-default ” pro nastavení výchozího dílčího objemu systému souborů. Chcete-li například připojit podsvazek SV1 Btrfs, který má ID 257:

# btrfs subvolume set-default 257 /btrfs

Poté musíte odpojit a znovu připojit souborový systém Btrfs. Kořenová úroveň pak obsahuje obsah podsvazku SV1 a kořenový podsvazek již není viditelný:

# ls -l /btrfs
total 5760
-rw-r--r--. 1 root root      19 Mar 29 11:44 testfile
-rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64

Můžete také použít „-o subvolid ” k příkazu mount pro připojení kořenového podsvazku nebo podsvazku nebo snímku. Chcete-li například připojit kořenový podsvazek:

# umount /btrfs
# mount -o subvolid=5 /dev/sda /btrfs
# ls -l /btrfs
total 0
drwxr-xr-x. 1 root root 84 Mar 29 11:44 SV1
drwxr-xr-x. 1 root root 68 Mar 29 11:17 SV1-snap
Jak vytvořit a připojit souborový systém Btrfs (vysvětleno na příkladech)
Jak změnit velikost/rozbalit svazek/systém souborů Btrfs


Cent OS
  1. Jak používat snímky, klony a replikace v ZFS na Linuxu

  2. Jak vytvořit uživatele Sudo na Rocky Linux a CentOS

  3. Jak připojit a odpojit disky v systému Linux

  1. Jak vytvořit soubor a připojit jej jako souborový systém?

  2. Jak vytvořit a připojit Btrfs snímky

  3. Jak vytvořit snímek LVM kořenového souborového systému a obnovit jej do dřívějšího stavu

  1. Jak vytvořit a připojit souborový systém Btrfs (vysvětleno na příkladech)

  2. Jak vytvořit a připojit souborové systémy v Linuxu

  3. Jak vytvořit a dotazovat souborový systém BTRFS