Btrfs
Btrfs is a modern copy on write (CoW) filesystem for Linux aimed at implementing advanced features while also focusing on fault tolerance, repair and easy administration. Btrfs is licensed under the GPL and open for contribution from anyone.
Create the filesystem
Single Device:
mkfs.btrfs -L _mylabel_ /dev/partitionMultiple Devices (similiar to RAID):
mkfs.btrfs -d single -m raid1 /dev/part1 /dev/part2 ...Subvolumes
Subvolumes are their own seperated namespaces and work like ZFS Datasets. They can be mounted seperately. Each Btrfs file system has a top-level subvolume with ID 5.
Create a subvolume:
btrfs subvolume create /path/to/subvolumeList suvolumes:
btrfs subvolume list -p pathDelete subvolume:
btrfs subvolume delete /path/to/subvolumeUsing Swapfiles
Swapfiles can be used by disabling CoW:
chattr +C /path/to/swapsubvolumeUse swapfile:
touch /swapfile
chattr +C /swapfile
fallocate -l 8G /swapfile
chmod 0600 /swapfile
mkswap /swapfile
swapon /swapfileFilesystem Usage
See Usage:
btrfs filesystem usage /Available Space:
btrfs filesystem df /Scrub
Btrfs can self heal itself or check for errors with scrubbing. Start:
btrfs scrub start /See Status:
btrfs scrub status /Balance
Rebalance the filesystem.
btrfs balance start --bg /
btrfs balance status /Snapshots
Btrfs can use snapshots
btrfs subvolume snapshot source [dest/]nameResizing
Btrfs can be resized.
To extend the file system size to the maximum available size of the device:
btrfs filesystem resize max /To extend the file system to a specific size:
btrfs filesystem resize size /Add or remove size
btrfs filesystem resize +size /
btrfs filesystem resize -size /