1. 程式人生 > >btrfs雜記

btrfs雜記

btrfs

查看命令狀態特性
[root@CentOS7 ~]# mkfs.btrfs -O list-all
Filesystem features available at mkfs time:
mixed-bg            - mixed data and metadata block groups (0x4)
extref              - increased hardlink limit per file to 65536 (0x40, default)
raid56              - raid56 extended format (0x80)
skinny-metadata     - reduced-size metadata extent refs (0x100, default)
no-holes            - no explicit hole extents for files (0x200

創建btrfs文件系統

[root@CentOS7 ~]# mkfs.btrfs -L mydata /dev/sdb /dev/sdc
btrfs-progs v3.19.1
See http://btrfs.wiki.kernel.org for more information.

Turning ON incompat feature ‘extref‘: increased hardlink limit per file to 65536
Turning ON incompat feature ‘skinny-metadata‘: reduced-size metadata extent refs
adding device /dev/sdc id 2
fs created label mydata on /dev/sdb
    nodesize 16384 leafsize 16384 sectorsize 4096 size 40.00GiB

顯示btrfs文件系統信息,默認顯示所有

[root@CentOS7 ~]# btrfs filesystem show
Label: ‘mydata‘  uuid: af9a4b5a-8c4e-4cde-91ef-bb62c5662969
    Total devices 2 FS bytes used 112.00KiB
    devid    1 size 20.00GiB used 2.03GiB path /dev/sdb
    devid    2 size 20.00GiB used 2.01GiB path /dev/sdc

btrfs-progs v3.19.1

只顯示指定btrfs文件系統

[root@CentOS7 ~]# btrfs filesystem show /dev/sdc
Label: ‘mydata‘  uuid: af9a4b5a-8c4e-4cde-91ef-bb62c5662969
    Total devices 2 FS bytes used 112.00KiB
    devid    1 size 20.00GiB used 2.03GiB path /dev/sdb
    devid    2 size 20.00GiB used 2.01GiB path /dev/sdc

btrfs-progs v3.19.1

壓縮掛載

[root@CentOS7 ~]# mount -o compress=lzo /dev/sdb /mydata
[root@CentOS7 ~]# df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6        23G   56M   23G   1% /
devtmpfs        109M     0  109M   0% /dev
tmpfs           119M     0  119M   0% /dev/shm
tmpfs           119M  4.8M  114M   4% /run
tmpfs           119M     0  119M   0% /sys/fs/cgroup
/dev/sda5        30G  1.2G   29G   4% /usr
/dev/sda2        79G  152M   78G   1% /var
/dev/sda3        40G   33M   40G   1% /usr/local
/dev/sda7        10G   33M   10G   1% /home
/dev/sda9       6.9G   33M  6.8G   1% /tmp
/dev/md0        3.9G   16M  3.7G   1% /backup
/dev/sda1       197M  108M   90M  55% /boot
tmpfs            24M     0   24M   0% /run/user/0
/dev/sdb         40G   18M   38G   1% /mydata

使用LABEL查看btrfs文件系統

[root@CentOS7 ~]# btrfs filesystem show /mydata
Label: ‘mydata‘  uuid: af9a4b5a-8c4e-4cde-91ef-bb62c5662969
    Total devices 2 FS bytes used 912.00KiB
    devid    1 size 20.00GiB used 2.02GiB path /dev/sdb
    devid    2 size 20.00GiB used 2.01GiB path /dev/sdc

聯機修改分區大小

[root@CentOS7 ~]# btrfs filesystem resize -10G /mydata/
Resize ‘/mydata/‘ of ‘-10G‘
[root@CentOS7 ~]# btrfs filesystem show /mydata
Label: ‘mydata‘  uuid: af9a4b5a-8c4e-4cde-91ef-bb62c5662969
    Total devices 2 FS bytes used 912.00KiB
    devid    1 size 10.00GiB used 2.02GiB path /dev/sdb
    devid    2 size 20.00GiB used 2.01GiB path /dev/sdc

[root@CentOS7 ~]# btrfs filesystem  df /mydata
Data, RAID0: total=2.00GiB, used=784.00KiB
System, RAID1: total=8.00MiB, used=16.00KiB
System, single: total=4.00MiB, used=0.00B
Metadata, RAID1: total=1.00GiB, used=112.00KiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=16.00MiB, used=0.00B
[root@CentOS7 ~]# df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6        23G   56M   23G   1% /
devtmpfs        109M     0  109M   0% /dev
tmpfs           119M     0  119M   0% /dev/shm
tmpfs           119M  4.7M  114M   4% /run
tmpfs           119M     0  119M   0% /sys/fs/cgroup
/dev/sda5        30G  1.2G   29G   4% /usr
/dev/sda2        79G  152M   78G   1% /var
/dev/sda3        40G   33M   40G   1% /usr/local
/dev/sda7        10G   33M   10G   1% /home
/dev/sda9       6.9G   33M  6.8G   1% /tmp
/dev/md0        3.9G   16M  3.7G   1% /backup
/dev/sda1       197M  108M   90M  55% /boot
tmpfs            24M     0   24M   0% /run/user/0
/dev/sdb         30G   18M   18G   1% /mydata

增加5G空間大小

[root@CentOS7 ~]# btrfs filesystem resize +5G /mydata/
Resize ‘/mydata/‘ of ‘+5G‘
[root@CentOS7 ~]# df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6        23G   56M   23G   1% /
devtmpfs        109M     0  109M   0% /dev
tmpfs           119M     0  119M   0% /dev/shm
tmpfs           119M  4.7M  114M   4% /run
tmpfs           119M     0  119M   0% /sys/fs/cgroup
/dev/sda5        30G  1.2G   29G   4% /usr
/dev/sda2        79G  152M   78G   1% /var
/dev/sda3        40G   33M   40G   1% /usr/local
/dev/sda7        10G   33M   10G   1% /home
/dev/sda9       6.9G   33M  6.8G   1% /tmp
/dev/md0        3.9G   16M  3.7G   1% /backup
/dev/sda1       197M  108M   90M  55% /boot
tmpfs            24M     0   24M   0% /run/user/0
/dev/sdb         35G   18M   28G   1% /mydata
[root@CentOS7 ~]# btrfs filesystem df /mydata/
Data, RAID0: total=2.00GiB, used=784.00KiB
System, RAID1: total=8.00MiB, used=16.00KiB
System, single: total=4.00MiB, used=0.00B
Metadata, RAID1: total=1.00GiB, used=112.00KiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=16.00MiB, used=0.00B

添加到最大分區容量

[root@CentOS7 ~]# btrfs filesystem resize max /mydata
Resize ‘/mydata‘ of ‘max‘
[root@CentOS7 ~]# df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6        23G   56M   23G   1% /
devtmpfs        109M     0  109M   0% /dev
tmpfs           119M     0  119M   0% /dev/shm
tmpfs           119M  8.7M  110M   8% /run
tmpfs           119M     0  119M   0% /sys/fs/cgroup
/dev/sda5        30G  1.2G   29G   4% /usr
/dev/sda2        79G  152M   78G   1% /var
/dev/sda3        40G   33M   40G   1% /usr/local
/dev/sda7        10G   33M   10G   1% /home
/dev/sda9       6.9G   33M  6.8G   1% /tmp
/dev/md0        3.9G   16M  3.7G   1% /backup
/dev/sda1       197M  108M   90M  55% /boot
tmpfs            24M     0   24M   0% /run/user/0
/dev/sdb         40G   18M   38G   1% /mydata

添加一塊硬進去,如果設置了max,會自動擴展

[root@CentOS7 ~]# btrfs device add /dev/sdd /mydata
[root@CentOS7 ~]# df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6        23G   56M   23G   1% /
devtmpfs        109M     0  109M   0% /dev
tmpfs           119M     0  119M   0% /dev/shm
tmpfs           119M  8.7M  110M   8% /run
tmpfs           119M     0  119M   0% /sys/fs/cgroup
/dev/sda5        30G  1.2G   29G   4% /usr
/dev/sda2        79G  152M   78G   1% /var
/dev/sda3        40G   33M   40G   1% /usr/local
/dev/sda7        10G   33M   10G   1% /home
/dev/sda9       6.9G   33M  6.8G   1% /tmp
/dev/md0        3.9G   16M  3.7G   1% /backup
/dev/sda1       197M  108M   90M  55% /boot
tmpfs            24M     0   24M   0% /run/user/0
/dev/sdb         60G   18M   56G   1% /mydata

將數據負載至各個磁盤

[root@CentOS7 ~]# btrfs balance start /mydata/
Done, had to relocate 5 out of 5 chunks

從分區移除一個磁盤

[root@CentOS7 ~]# btrfs device delete /dev/sdb /mydata
[root@CentOS7 ~]# btrfs filesystem show 
Label: ‘mydata‘  uuid: af9a4b5a-8c4e-4cde-91ef-bb62c5662969
    Total devices 2 FS bytes used 912.00KiB
    devid    2 size 20.00GiB used 2.03GiB path /dev/sdc
    devid    3 size 20.00GiB used 2.03GiB path /dev/sdd

重新加入一個設備

[root@CentOS7 mydata]# btrfs device add /dev/sdb /mydata    

將分區轉換成RAID5

[root@CentOS7 mydata]# btrfs balance start -dconvert=raid5 /mydata
Done, had to relocate 1 out of 3 chunks
[root@CentOS7 mydata]# 
[root@CentOS7 mydata]# 
[root@CentOS7 mydata]# btrfs balance start -mconvert=raid5 /mydata

查看子卷信息

[root@CentOS7 mydata]# btrfs subvolume list /mydata/

創建並查看子卷

[root@CentOS7 mydata]# btrfs subvolume create /mydata/logs
Create subvolume ‘/mydata/logs‘
[root@CentOS7 mydata]# btrfs subvolume list /mydata
ID 265 gen 109 top level 5 path logs

取消掛載父卷,只掛載子卷

[root@CentOS7 ~]# umount /mydata/
[root@CentOS7 ~]# mount -o subvol=logs /dev/sdb /mnt
[root@CentOS7 ~]# df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6        23G   56M   23G   1% /
devtmpfs        109M     0  109M   0% /dev
tmpfs           119M     0  119M   0% /dev/shm
tmpfs           119M  8.7M  110M   8% /run
tmpfs           119M     0  119M   0% /sys/fs/cgroup
/dev/sda5        30G  1.2G   29G   4% /usr
/dev/sda2        79G  152M   78G   1% /var
/dev/sda3        40G   33M   40G   1% /usr/local
/dev/sda7        10G   33M   10G   1% /home
/dev/sda9       6.9G   33M  6.8G   1% /tmp
/dev/md0        3.9G   16M  3.7G   1% /backup
/dev/sda1       197M  108M   90M  55% /boot
tmpfs            24M     0   24M   0% /run/user/0
/dev/sdc         60G   17M   58G   1% /mnt

查看子卷詳細信息

[root@CentOS7 ~]# btrfs subvolume show /mnt
/mnt
    Name:           logs
    uuid:           757e5898-97be-8942-a9bb-a1bd3bc01506
    Parent uuid:        -
    Creation time:      2016-07-18 10:30:13
    Object ID:      265
    Generation (Gen):   109
    Gen at creation:    109
    Parent:         5
    Top Level:      5
    Flags:          -
    Snapshot(s):

通過卷id掛載子卷

[root@CentOS7 ~]# btrfs subvolume list /mydata
ID 265 gen 112 top level 5 path logs
ID 266 gen 110 top level 5 path cache

[root@CentOS7 ~]# mount -o subvolid=266 /dev/sdb /mnt

刪除子卷,需要父卷也有掛載

[root@CentOS7 ~]# btrfs subvolume delete /mydata/logs
Delete subvolume (no-commit): ‘/mydata/logs‘
[root@CentOS7 ~]# btrfs subvolume list /mydata/
[root@CentOS7 ~]# 

創建快照

Create a snapshot of ‘/mydata/logs‘ in ‘/mydata/logs_snapshot‘
[root@CentOS7 ~]# btrfs subvolume list /mydata
ID 265 gen 118 top level 5 path logs
ID 266 gen 118 top level 5 path logs_snapshot

刪除快照

[root@CentOS7 logs_snapshot]# cd 
[root@CentOS7 ~]# btrfs subvolume delete /mydata/logs_snapshot
Delete subvolume (no-commit): ‘/mydata/logs_snapshot‘

什麽意思,得查一下,馬哥說是對一個文件做快照

[root@CentOS7 logs]# cp --reflink grub2.cfg grub2.cfg_snap

拆除文件系統

[root@CentOS7 logs]# btrfs balance start -dconvert=single /mydata #更改數據類型
Done, had to relocate 1 out of 3 
[root@CentOS7 logs]# btrfs balance start -mconvert=raid1 /mydata #更改元數據類型
Done, had to relocate 2 out of 3 chunks
[root@CentOS7 logs]# btrfs device delete /dev/sdd /mydata/   #拆除文件系統

轉換文件系統

[root@CentOS7 ~]# umount /mnt/                       #先卸載文件系統
[root@CentOS7 ~]# fsck -f /dev/sdd1                  #強制檢查文件系統是否正常
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdd1: 12/327680 files (0.0% non-contiguous), 58463/1310720 blocks
[root@CentOS7 ~]# btrfs-convert /dev/sdd1            #文件系統轉換成btrfs
creating btrfs metadata.
copy inodes [o] [         0/        12]
creating ext2fs image file.
cleaning up system chunk.
conversion complete.
[root@CentOS7 ~]# btrfs filesystem show              #查看文件系統,發現/dev/sdd1已經變成btrfs文件系統           
Label: ‘mydata‘  uuid: af9a4b5a-8c4e-4cde-91ef-bb62c5662969
    Total devices 2 FS bytes used 672.00KiB
    devid    2 size 20.00GiB used 2.03GiB path /dev/sdc
    devid    4 size 20.00GiB used 1.03GiB path /dev/sdb

Label: none  uuid: 42290a33-9e06-4cfb-89a4-6fb660e30915
    Total devices 1 FS bytes used 228.50MiB
    devid    1 size 5.00GiB used 5.00GiB path /dev/sdd1

btrfs-progs v3.19.1
[root@CentOS7 ~]# 
[root@CentOS7 ~]# mount /dev/sdd1 /mnt/               #重新掛載文件系統
[root@CentOS7 ~]# mount
/dev/sdd1 on /mnt type btrfs (rw,relatime,seclabel,space_cache)

從btrfs文件系統轉換回原來的系統

[root@CentOS7 ~]# umount /mnt
[root@CentOS7 ~]# btrfs-convert -r /dev/sdd1
[root@CentOS7 ~]# blkid /dev/sdd1
/dev/sdd1: UUID="6ef58403-3584-413e-bc11-6f5281917caa" TYPE="ext4" 

btrfs雜記