btrfs notes:
Contents
SubVolume & SnapShot
# btrfs subvolume create /mnt/data/subvolume_name
Create subvolume '/mnt/data/subvolume_name'
# ls -ld /mnt/data/subvolume_name
drwxr-xr-x 1 root root 0 Aug 11 23:21 /mnt/data/subvolume_name
# ls -la /mnt/data/subvolume_name/
total 4
drwxr-xr-x 1 root root 0 Aug 11 23:21 .
drwxr-xr-x 1 root root 70 Aug 11 23:21 ..
# btrfs subvolume show /mnt/data/subvolume_name/
/mnt/data/subvolume_name
Name: subvolume_name
uuid: 8c19d666-2700-ed49-b7cc-483b82076d6b
Parent uuid: –
Creation time: 2013-08-11 23:21:25
Object ID: 1294
Generation (Gen): 13705
Gen at creation: 13705
Parent: 5
Top Level: 5
Flags: –
Snapshot(s):
# btrfs subvolume list -a /mnt/data/subvolume_name/
ID 1294 gen 13705 top level 5 path <FS_TREE>/subvolume_name
# dmesg > /mnt/data/subvolume_name/dmesg.log
# ls -la /mnt/data/subvolume_name/
total 52
drwxr-xr-x 1 root root 18 Aug 11 23:22 .
drwxr-xr-x 1 root root 70 Aug 11 23:21 ..
-rw-r--r-- 1 root root 47948 Aug 11 23:22 dmesg.log
# btrfs subvolume snapshot -r /mnt/data/subvolume_name/ /mnt/data/subvolume_name_snap_01
Create a readonly snapshot of '/mnt/data/subvolume_name/' in '/mnt/data/subvolume_name_snap_01'
# ls -la /mnt/data/subvolume_name_snap_01/
total 52
drwxr-xr-x 1 root root 18 Aug 11 23:22 .
drwxr-xr-x 1 root root 114 Aug 11 23:23 ..
-rw-r--r-- 1 root root 47948 Aug 11 23:22 dmesg.log
# rm -f /mnt/data/subvolume_name_snap_01/dmesg.log
rm: cannot remove '/mnt/data/subvolume_name_snap_01/dmesg.log': Read-only file system
# ls -la /mnt/data/subvolume_name/
total 52
drwxr-xr-x 1 root root 18 Aug 11 23:22 .
drwxr-xr-x 1 root root 114 Aug 11 23:23 ..
-rw-r--r-- 1 root root 47948 Aug 11 23:22 dmesg.log
# rm -f /mnt/data/subvolume_name/dmesg.log
removed '/mnt/data/subvolume_name/dmesg.log'
# ls -la /mnt/data/subvolume_name_snap_01/
total 52
drwxr-xr-x 1 root root 18 Aug 11 23:22 .
drwxr-xr-x 1 root root 114 Aug 11 23:23 ..
-rw-r--r-- 1 root root 47948 Aug 11 23:22 dmesg.log
# btrfs subvolume delete /mnt/data/subvolume_name_snap_01/
Delete subvolume '/mnt/data/subvolume_name_snap_01'
# btrfs subvolume delete /mnt/data/subvolume_name
Delete subvolume '/mnt/data/subvolume_name'
mount a subvolume
# mount -t btrfs -o subvol=subvolume_name /dev/disk/by-uuid/a9b086df-d62b-40f7-bd05-4ff6911c3d24 /media/ # ls -la /media/ total 52 drwxr-xr-x 1 root root 18 Αύγ 11 23:37 . drwxr-xr-x 19 root root 4096 Αύγ 11 11:00 .. -rw-r--r-- 1 root root 48104 Αύγ 11 23:37 dmesg.log
remove a disk
from a live mount point !
The btrfs is on UUID=a9b086df-d62b-40f7-bd05-4ff6911c3d24
# blkid /dev/mapper/seagate250: LABEL="data" UUID="a9b086df-d62b-40f7-bd05-4ff6911c3d24" UUID_SUB="a12e4786-7033-4dd0-9c7c-11719e82ab2e" TYPE="btrfs" /dev/mapper/maxtor250 : LABEL="data" UUID="a9b086df-d62b-40f7-bd05-4ff6911c3d24" UUID_SUB="113ca627-caaf-453d-b29e-b2218fc9ac43" TYPE="btrfs" /dev/mapper/western1T : LABEL="data" UUID="a9b086df-d62b-40f7-bd05-4ff6911c3d24" UUID_SUB="8e6c89ad-7efc-4677-8242-db0e05337359" TYPE="btrfs" # df -h /mnt/data/ Filesystem Size Used Avail Use% Mounted on /dev/dm-6 1,4T 549G 366G 61% /mnt/data # btrfs device delete /dev/mapper/seagate250 /mnt/data ... [wait] ...
on another shell:
# dmesg | tail [ 3251.338634] btrfs: relocating block group 1671040073728 flags 9 [ 3292.008232] btrfs: found 14 extents [ 3295.327223] btrfs: found 14 extents [ 3295.990889] btrfs: relocating block group 1667818848256 flags 9 # df -h /mnt/data/ Filesystem Size Used Avail Use% Mounted on /dev/dm-6 1,4T 550G 1,4T 30% /mnt/data
in the end
# btrfs fi show Label: 'data' uuid: a9b086df-d62b-40f7-bd05-4ff6911c3d24 Total devices 2 FS bytes used 547.53GB devid 1 size 931.51GB used 382.04GB path /dev/dm-6 devid 3 size 233.76GB used 169.03GB path /dev/dm-5 Btrfs v0.20-rc1-253-g7854c8b
and
# df -h /mnt/data/ Filesystem Size Used Avail Use% Mounted on /dev/dm-6 1,2T 549G 132G 81% /mnt/data
and
# btrfs fi df /mnt/data/ Data, RAID0: total=336.00GB, used=334.03GB Data: total=213.01GB, used=212.88GB System, RAID1: total=32.00MB, used=56.00KB System: total=4.00MB, used=0.00 Metadata, RAID1: total=1.00GB, used=628.14MB
add a new disk
before:
$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/western1T 1221875864 575344768 137364560 81% /mnt/data
adding:
# btrfs dev add /dev/mapper/western1Tb /mnt/data/
after:
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/western1T 2,1T 549G 1,2T 33% /mnt/data
balance the data between disks
eg. raid0 example
# btrfs balance /mnt/data # btrfs balance resume /mnt/data # btrfs balance pause /mnt/data
scrubbing the btrfs mount point
# btrfs scrub start /mnt/data/ scrub started on /mnt/data/, fsid a9b086df-d62b-40f7-bd05-4ff6911c3d24 (pid=12408) # btrfs scrub status /mnt/data/ scrub status for a9b086df-d62b-40f7-bd05-4ff6911c3d24 scrub started at Thu Dec 5 13:58:47 2013, running for 200 seconds total bytes scrubbed: 18.49GB with 0 errors