The `b-tree` file system, `btrfs`, is a Linux filesystem that implements several advanced features such as volume management, snapshots, and copy-on-write. In this hands-on lab, you will be tasked with creating and interacting with a `btrfs` file system.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Create a btrfs filesystem based on the information provided in the instructions.
- Create a
btrfs
filesystem using/dev/xvdf1, /dev/xvdg1
, and/dev/xvdj1
:
mkfs -t btrfs /dev/xvdf1 /dev/xvdg1 /dev/xvdj1
- Mount the
btrfs
filesystem on/mnt/data
:
mount -t btrfs /dev/xvdg1 /mnt/data
- Use a text editor (i.e.,
vim
) to open/etc/fstab
and add the following entry:
UUID=filesystem_UUID /mnt/data btrfs defaults 0 0
- Create a
- Create two subvolumes for /mnt/data based on the information provided in the instructions.
- Create the
user
andadmin
subvolumes in the/mnt/data
filesystem:
btrfs subvolume create /mnt/data/user btrfs subvolume create /mnt/data/admin
- Mount the
admin
subvolume at/mnt/admin
and theuser
subvolume at/mnt/user
:
mount -t btrfs -o subvol=user /dev/xvdg1 /mnt/user mount -t btrfs -o subvol=admin /dev/xvdg1 /mnt/admin
- Use a text editor (i.e.,
vim
) to open/etc/fstab
and add entries for/mnt/user and /mnt/admin
:
UUID=filesystem_UUID /mnt/user btrfs subvol=user,defaults 0 0 UUID=filesystem_UUID /mnt/admin btrfs subvol=admin,defaults 0 0
- Create the
- Add the /dev/xvdj2 device to the filesystem mounted on /mnt/backup
- Add
/dev/xvdj2
to filesystem mounted on/mnt/backup
using thebtrfs
command:
btrfs device add /dev/xvdj2 /mnt/backup
- Balance the filesystem to spread block groups across all devices:
btrfs balance start --full-balance /mnt/backup
- Add
- Create two snapshots of /mnt/backup/user_data based on the information provided in the instructions.
- Create a snapshot called
user_data_snap”
from theuser_data
volume:
btrfs subvolume snapshot /mnt/backup/user_data/ /mnt/backup/user_data_snap
- Create a read-only snapshot called
user_data_snap_ro
from theuser_data
volume:
btrfs subvolume snapshot -r /mnt/backup/user_data/ /mnt/backup/user_data_snap_ro
- Create a snapshot called