btrfs管理及应用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了btrfs管理及应用相关的知识,希望对你有一定的参考价值。
btrfs管理及应用
1. 基础简介
Btrfs(又名:B-tree, Butter FS, Better FS),GPL授权, Oracle从2007研发,写实复制更新机制 CoW,其主要是为了取代ext2,ext3,ext4,其主要功能有:
- 多物理卷支持:btrfs可由多个底层物理卷组成,内建支持RAID(即支持条带、mirror等功能),以联机“添加”、“移除”,“修改”操作
- 写时复制更新机制(英译CoW):复制、更新及替换指针,而非“就地”更新机制。例如我们现在去修改一个文件A,COW机制是先将目标文件A复制一份为文件B,那么我们修改文件时是修改的复制文件B,相当于对源文件A做了快照,如对文件B修改操作失误,可以有效的恢复源文件A。
- 数据及源数据校验码机制checksum:我们存储某个文件时,checksum会将数据的源数据和数据的校验码,分别通过文件的属性扩展进行保存,当我们再次读取数据时可以方便的检测数据是否受损,如果文件受损系统可以完成自动修复。
- 支持b-tree文件功能即支持子卷功能,如在vg中创建lv一样
- 支持子卷sub_volume:可以在一个卷上创建子卷,然后分别挂载使用
- 快照:支持快照的快照功能即增量快照
- 透明压缩:即数据自动实现压缩和解压缩,以节约空间,会消耗一定的cpu的
2. 文件系统创建
mkfs.btrfs
-L ‘LABEL‘
-d <type>: raid0, raid1, raid5, raid6, raid10, single
-m <profile>: raid0, raid1, raid5, raid6, raid10, single, dup
-O <feature>
-O list-all: 列出支持的所有feature;
属性查看:
btrfs filesystem show
挂载文件系统:
mount -t btrfs /dev/sdb MOUNT_POINT
透明压缩机制:
mount -o compress={lzo|zlib} DEVICE MOUNT_POINT
子命令:filesystem, device, balance, subvolume
3. 创建应用示例
3.1 创建并挂载btrfs文件系统
[[email protected] ~]# mkfs.btrfs /dev/sdb6
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
fs created label (null) on /dev/sdb6
nodesize 16384 leafsize 16384 sectorsize 4096 size 2.00GiB
[[email protected] ~]# mkdir /tmp/mybtrfs
[[email protected] ~]# mount /dev/sdb6 /tmp/mybtrfs
Btrfs(又名:B-tree, Butter FS, Better FS),GPL授权, Oracle从2007研发,写实复制更新机制 CoW,其主要是为了取代ext2,ext3,ext4,其主要功能有:
- 多物理卷支持:btrfs可由多个底层物理卷组成,内建支持RAID(即支持条带、mirror等功能),以联机“添加”、“移除”,“修改”操作
- 写时复制更新机制(英译CoW):复制、更新及替换指针,而非“就地”更新机制。例如我们现在去修改一个文件A,COW机制是先将目标文件A复制一份为文件B,那么我们修改文件时是修改的复制文件B,相当于对源文件A做了快照,如对文件B修改操作失误,可以有效的恢复源文件A。
- 数据及源数据校验码机制checksum:我们存储某个文件时,checksum会将数据的源数据和数据的校验码,分别通过文件的属性扩展进行保存,当我们再次读取数据时可以方便的检测数据是否受损,如果文件受损系统可以完成自动修复。
- 支持b-tree文件功能即支持子卷功能,如在vg中创建lv一样
- 支持子卷sub_volume:可以在一个卷上创建子卷,然后分别挂载使用
- 快照:支持快照的快照功能即增量快照
- 透明压缩:即数据自动实现压缩和解压缩,以节约空间,会消耗一定的cpu的
2. 文件系统创建
mkfs.btrfs
-L ‘LABEL‘
-d <type>: raid0, raid1, raid5, raid6, raid10, single
-m <profile>: raid0, raid1, raid5, raid6, raid10, single, dup
-O <feature>
-O list-all: 列出支持的所有feature;
属性查看:
btrfs filesystem show
挂载文件系统:
mount -t btrfs /dev/sdb MOUNT_POINT
透明压缩机制:
mount -o compress={lzo|zlib} DEVICE MOUNT_POINT
子命令:filesystem, device, balance, subvolume
[[email protected] ~]# mkfs.btrfs /dev/sdb6
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
fs created label (null) on /dev/sdb6
nodesize 16384 leafsize 16384 sectorsize 4096 size 2.00GiB
[[email protected] ~]# mkdir /tmp/mybtrfs
[[email protected] ~]# mount /dev/sdb6 /tmp/mybtrfs
3.2 增加减少btrfs文件系统
[[email protected] mybtrfs]# btrfs filesystem resize -1G /tmp/mybtrfs
Resize ‘/tmp/mybtrfs‘ of ‘-1G‘
[[email protected] mybtrfs]# btrfs filesystem resize +1G /tmp/mybtrfs
Resize ‘/tmp/mybtrfs‘ of ‘+1G‘
3.3 在线增加/减少磁盘,并均衡数据
[[email protected] mybtrfs]# btrfs device add -f /dev/sdb7 /tmp/mybtrfs
[[email protected] ~]# btrfs filesystem balance /tmp/mybtrfs
Done, had to relocate 5 out of 5 chunks
[[email protected] ~]# btrfs filesystem show
Label: none uuid: b82450a3-d903-4913-b4d1-ad68fb0e193f
Total devices 2 FS bytes used 256.00KiB
devid 1 size 2.00GiB used 288.00MiB path /dev/sdb6
devid 2 size 2.00GiB used 704.00MiB path /dev/sdb7
btrfs-progs v3.19.1
在线删除挂载磁盘
[[email protected] ~]# btrfs device delete /dev/sdb8 /tmp/mybtrfs/
3.4 创建删除子卷
可以卸载父卷,只挂载子卷。
[[email protected] ~]# btrfs subvolume create /tmp/mybtrfs/subbtrfs
Create subvolume ‘/tmp/mybtrfs/subbtrfs‘
[[email protected] ~]# btrfs subvolume delete /tmp/mybtrfs/subbtrfs
Delete subvolume (no-commit): ‘/tmp/mybtrfs/subbtrfs‘
以上是关于btrfs管理及应用的主要内容,如果未能解决你的问题,请参考以下文章