The btrfs utility is a toolbox for managing btrfs filesystems. There are command groups to work with subvolumes, devices, for whole filesystem or other specific actions.
[root@netkiller ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Nov 21 18:16:53 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=6634633e-001d-43ba-8fab-202f1df93339 / ext4 defaults,barrier=0 1 1
UUID=786f570d-fe5c-4d5f-832a-c1b0963dd4e6 /srv btrfs defaults 1 1
UUID=786f570d-fe5c-4d5f-832a-c1b0963dd4e6 /var/lib/mongo btrfs noatime,nodiratime,subvol=@mongo 0 2
UUID=786f570d-fe5c-4d5f-832a-c1b0963dd4e6 /var/lib/mysql btrfs noatime,nodiratime,subvol=@mysql 0 2
UUID=786f570d-fe5c-4d5f-832a-c1b0963dd4e6 /www btrfs noatime,nodiratime,subvol=www 0 2
[root@netkiller ~]# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/vda1 ext4 41151808 4902608 34135768 13% /
devtmpfs devtmpfs 8127268 0 8127268 0% /dev
tmpfs tmpfs 8133908 4 8133904 1% /dev/shm
tmpfs tmpfs 8133908 849468 7284440 11% /run
tmpfs tmpfs 8133908 0 8133908 0% /sys/fs/cgroup
/dev/vdb1 btrfs 104856576 1404116 101369420 2% /srv
/dev/vdb1 btrfs 104856576 1404116 101369420 2% /var/lib/mongo
/dev/vdb1 btrfs 104856576 1404116 101369420 2% /var/lib/mysql
tmpfs tmpfs 1626784 0 1626784 0% /run/user/0
/dev/vdb1 btrfs 104856576 1404116 101369420 2% /www
[root@netkiller ~]# ll /srv/
total 0
drwxr-xr-x 1 www www 132 2016-12-08 15:17 apache-tomcat-8.5.8
drwxr-xr-x 1 root root 132 2016-12-08 16:11 apache-tomcat-www
drwxr-xr-x 1 mongod mongod 608 2016-12-26 09:18 @mongo
drwxr-x--x 1 mysql mysql 448 2016-12-26 09:16 @mysql
drwxr-xr-x 1 root root 0 2016-11-30 13:24 @redis
drwxr-xr-x 1 root root 22 2016-12-08 16:32 sbin
drwxr-xr-x 1 www www 24 2016-12-08 16:54 www
yum install btrfs-progs
# mkfs.btrfs /dev/sdb1
指定卷标
# mkfs.btrfs /dev/sdb2 -L /backup
# mkdir /mnt/btrfs
# mount /dev/sdb1 /mnt/btrfs
查看挂载是否成功
# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 49G 15G 32G 32% /
tmpfs tmpfs 32G 264K 32G 1% /dev/shm
/dev/sda3 ext4 52G 1.3G 48G 3% /var
/dev/sdb1 btrfs 2.0T 14G 2.0T 1% /mnt/btrfs
针对 SSD 的优化:
# mount –t btrfs –o SSD /dev/sda5 /btrfsdisk
打开压缩功能:
# mount –t btrfs –o compress /dev/sda5 /btrfsdisk
mount -t btrfs -o subvol=your_snapshot /dev/sdb2 /mnt/snap
mount -t btrfs -o subvol=aaa /dev/md127p5 /mnt/snap
[root@r610 ~]# btrfs-show
Label: none uuid: 0b097eeb-1f0b-476a-955b-52122ef42bfc
Total devices 1 FS bytes used 13.03GB
devid 1 size 2.00TB used 24.04GB path /dev/sdb1
Btrfs Btrfs v0.19
UUID=0b097eeb-1f0b-476a-955b-52122ef42bfc /opt btrfs defaults 1 2
# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/md126p2 ext4 50395844 19952780 27883064 42% /
tmpfs tmpfs 4024944 800 4024144 1% /dev/shm
/dev/md126p1 ext4 495844 172140 298104 37% /boot
/dev/md126p6 btrfs 500084736 360835636 119893924 76% /opt
/dev/md126p5 btrfs 409600000 24927332 368284612 7% /www
# btrfs subvolume create /www/git
Create subvolume '/www/git'
# btrfs subvolume list /www
ID 641 gen 21351 top level 5 path git
fstab 挂在子卷
$ cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Oct 18 13:53:45 2012
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=88ec1ccf-7d8d-4107-a143-1ed0ec64a572 / ext4 defaults 1 1
UUID=c0786771-1c85-45be-a9ab-ef3ee16fccb4 /boot ext4 defaults 1 2
UUID=e1b89740-21f0-4507-97e9-a658cd7d3716 /opt btrfs defaults 1 2
UUID=76e46795-ebaf-4d2d-8996-1e15979bf3c8 /www btrfs defaults 1 2
UUID=76e46795-ebaf-4d2d-8996-1e15979bf3c8 /home/git btrfs defaults,subvol=git 1 2
UUID=c578f1b3-4bbe-4f48-b3d3-3929c65cb99c swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
创建快照
# btrfs subvolume snapshot /www /www/backup_2012
查看快照
# btrfs subvolume list -a /www
挂在快照
# mount -t btrfs -o subvol=backup_2012 /dev/md127p5 /mnt/snap
删除快照
# btrfs subvolume delete /www/backup_2012
Delete subvolume '/www/backup_2012'
13.8.6.1. Resizes the filesystem
Btrfs v0.19
# touch /mnt/btrfs/test1
# touch /mnt/btrfs/test2
# ls /mnt/btrfs/test?
/mnt/btrfs/test1 /mnt/btrfs/test2
# echo 'This is a test' > /mnt/btrfs/test1
# btrfsctl –s snap1 /mnt/btrfs
#vi test1
Test1 is modified
#cd /mnt/btrfs/snap1
#cat test1
This is a test
# btrfs-vol –a /dev/sdc1 /mnt/btrfs
# btrfsck /dev/sdb1
found 13994164224 bytes used err is 0
total csum bytes: 13588316
total tree bytes: 79728640
total fs tree bytes: 28860416
btree space waste bytes: 10282024
file data blocks allocated: 13931024384
referenced 13906980864
Btrfs Btrfs v0.19
13.8.10. btrfs-debug-tree
[root@r610 ~]# btrfs-debug-tree /dev/sdb1 |head
root tree
leaf 49463296 items 9 free space 2349 generation 298 owner 1
fs uuid 0b097eeb-1f0b-476a-955b-52122ef42bfc
chunk uuid 2826f868-c775-4835-8690-1020a2a9fbf5
item 0 key (EXTENT_TREE ROOT_ITEM 0) itemoff 3756 itemsize 239
root data bytenr 49446912 level 2 dirid 0 refs 1
item 1 key (DEV_TREE ROOT_ITEM 0) itemoff 3517 itemsize 239
root data bytenr 36139008 level 0 dirid 0 refs 1
item 2 key (FS_TREE INODE_REF 6) itemoff 3500 itemsize 17
inode ref index 0 namelen 7 name: default
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。