How to Create and Manage Btrfs File System in Linux

Channel: Open Source Linux
Abstract: Update Partition Table Setup Logical Volume 6. Create Physical volume and volume group on /dev/sdb1 disk using pvcreate and vgcreate command. # pvcrea

Btrfs or B-tree file system is a GPL-licensed copy-on-write (COW) was developed by multiple companies as follows Oracle, Redhat, Fujitsu, Intel, Facebook, Linux Foundation, Suse, etc. Brtfs will support maximum up-to 16 exbibyte and filesize can be maximum up-to 8 exbibyte, due to limitation of kernel.

Create Btrfs Filesystem in Linux

Files can be created in any characters except 「/」 and NULL. Btrfs has self-healing features and have the capability of spanning multiple volumes. In Btrfs we can shrink, grow the file-system, add or remove block device in online mode.

It also provides subvolumes, Subvolumes are not a separate block devices, we can create snapshots and restore the snapshot for those subvolumes. Instead of using LVM we can use btrfs. Btrfs file-system are still under testing not yet included in production, If we have any important data, currently advised not to use btrfs in Production environments.

Btrfs released it’s 3.18 version by last month Dec 2014 with several new features.

Features of Btrfs

This new version of btrfs filled with many new features as follows:

  1. By default mkfs skinny-metadata feature is available from kernel 3.10.
  2. To repair the severely corrupted file-systems with care.
  3. Added convert option to show progress.
  4. Ability to link lost files to lost+found. This is a fix for a recent kernel Bug.
  5. To see the overview of file-system usage rather than df.
  6. And many more bug-fixes with and improved documentation.
  7. Subvolumes for file-system.
My Environment Setup
Hostname	:	btrfs.tecmintlocal.com
IP addrress 	:	192.168.0.120
Disk Size Used	:	8GB [/dev/sdb]
Btrfs Setup Step 1: Installing and Creating Btrfs Filesystem

1. In most of the today’s latest Linux distributions, btrfs package comes as pre-installed. If not, install btrfs package using the following command.

# yum install btrfs-progs -y		[On RedHat based Distro's]
# sudo apt-get install btrfs-tools -y	[On Debian based Distro's]

2. After btrfs package has been installed on the system, now we need to enable the Kernel module for btrfs using below command.

# modprobe btrfs

3. Here, we’ve used only one disk (i.e. /dev/sdb) in this disk, we’re going to setup logical volumes and create the btrfs file-system. Before creating them, let’s first verify the disk attached to the system.

# ls -l /dev | grep sd
Verify Disk

4. Once you’ve confirmed that the disk is properly attached to the system, now it’s time to create partition for LVM. We will use ‘fdisk‘ command to create partitions on the /dev/sdb disk. Follow the instructions as explained below to create new partition on the drive.

# fdisk -c /dev/sdb
  1. Press ‘n‘ for creating new partition.
  2. Then choose ‘P‘ for Primary partition.
  3. Next choose the partition number as 1.
  4. Define the default value by just pressing two times Enter key.
  5. Next press ‘P‘ to print the defined partition.
  6. Press ‘L‘ to list all available types.
  7. Type ‘t‘ to choose the partitions.
  8. Choose ‘8e‘ for Linux LVM and press Enter to apply.
  9. Then again use ‘p‘ to print the changes what we have made.
  10. Use ‘w‘ to write the changes.
Create Partition for LVM

5. Once you’ve created partition successfully, you need to update the partition table changes to kernel for that let us run the partprobe command to add the disk information to kernel and after that list the partition as shown below.

# partprobe -s
# ls -l /dev | grep sd
Update Partition Table Setup Logical Volume

6. Create Physical volume and volume group on /dev/sdb1 disk using pvcreate and vgcreate command.

# pvcreate /dev/sdb1
# vgcreate tecmint_vg /dev/sdb1

7. Create Logical volume in the volume group. Here I have created two logical volumes.

# lvcreate -L +2G -n tecmint_lv1 tecmint_vg
# lvcreate -L +2G -n tecmint_lv2 tecmint_vg

8. List the created Physical volume, Volume group and logical volumes.

# pvs && vgs && lvs
Create Logical Volumes Creating Btrfs Filesystem

9. Let us create the file-system now for our logical volumes.

# mkfs.btrfs /dev/tecmint_vg/tecmint_lv1
Create Btrfs Filesystem

10. Next, create a mount point and mount the file-system.

# mkdir /mnt/tecmint_btrfs1
# mount /dev/tecmint_vg/tecmint_lv1 /mnt/tecmint_btrfs1/
Mount Btrfs Filesystem

11. Verify the mount point with the help of df command.

# df -h

Here available size was 2 GB

Verify Btrfs Filesystem Pages: 1 2 3

Ref From: tecmint
Channels: btrfs

Related articles