Configuring Btrfs in SUSE Linux Enterprise

30 minutes
  • 3 Learning Objectives

About this Hands-on Lab

In this hands-on lab, we will be working with the Btrfs filesystem. This will cover subvolumes as well as snapshots, including restoring from a snapshot.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Create a Btrfs Filesystem on One of the Empty Disks, Mount it at `/btrfs`, Create a Data Directory, and Copy `/etc/ssh` into This Directory
  1. Locate the empty disk (it will be the one with no partitions listed):

  2. Create the btrfs filesystem on the empty disk from Step 1:

    sudo mkfs.btrfs /dev/nvme0n1
  3. Create the btrfs directory:

    sudo mkdir /btrfs
  4. Mount the disk:

    sudo mount /dev/nvme0n1 /btrfs
  5. Change to the new /btrfs directory:

    cd /btrfs
  6. Create the "normal" directory:

    sudo mkdir data
  7. Copy the ssh directory to the data directory:

    sudo cp -r /etc/ssh ./data
Convert the `data` Directory from Normal to Btrfs Subvol, Get Rid of the Original, and Verify with `subvolume list`
  1. From the /btrfs directory, create the subvolume:

    sudo btrfs subvolume create ./data1
  2. Copy over the files from /data to /data1 (notice the . after data/):

    sudo cp -r data/. ./data1
  3. Remove the original directory:

    sudo rm -rf data
  4. Rename the subvolume:

    sudo mv ./data1/ ./data
  5. Verify the subvolume:

    sudo btrfs subvolume list .
Create a Btrfs Snapshot of the `data` Directory Named `data-snap`, touch a regular `file` in `data`, Compare the Snapshot and the Original, Delete `data/ssh/ssh_config`, Verify It Still Exists in the Snapshot, and Restore the Snapshot as Original Director
  1. From the /btrfs directory, create a snapshot of data:

    sudo btrfs subvolume snapshot ./data ./data-snap
  2. Touch a file named file in data, and compare ./data to ./data-snap:

    sudo touch data/file 
    ls data
    ls data-snap
  3. Remove data/ssh/ssh_config, and compare to see it still exists in data-snap:

    sudo rm data/ssh/ssh_config
    ls data/ssh/ssh_config

    The file should not be found.

  4. Now verify it’s in the snapshot:

    ls data-snap/ssh/ssh_config
  5. Delete data and then restore it from data-snap:

    sudo btrfs subvolume delete data
    sudo btrfs subvolume snapshot ./data-snap ./data
  6. Verify with subvolume list:

    sudo btrfs subvolume list .
  7. Finally, verify the file you had deleted is back:

    ls data/ssh/ssh_config

Additional Resources

You have been asked to demonstrate the benefits of Btrfs, including subvolumes and snapshots.

You will need to:

  • Create a Btrfs filesystem on one of the empty disks, mount it at /btrfs, create a data directory, and copy /etc/ssh into this directory.
  • Convert the data directory from normal to Btrfs subvol, get rid of the original, and verify with subvolume list.
  • Create a Btrfs snapshot of the data directory, touch a file file in data, compare snapshot and original, delete data/ssh/ssh_config, verify it still exists in the snapshot, and then restore snapshot as original directory.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?