码迷,mamicode.com
首页 > 其他好文 > 详细

btrfs管理及应用

时间:2016-06-16 19:44:44      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:

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. 文件系统创建

    1. mkfs.btrfs
    2. -L LABEL
    3. -d <type>: raid0, raid1, raid5, raid6, raid10, single
    4. -m <profile>: raid0, raid1, raid5, raid6, raid10, single, dup
    5. -O <feature>
    6. -O list-all: 列出支持的所有feature
    7. 属性查看:
    8. btrfs filesystem show
    9. 挂载文件系统:
    10. mount -t btrfs /dev/sdb MOUNT_POINT
    11. 透明压缩机制:
    12. mount -o compress={lzo|zlib} DEVICE MOUNT_POINT

子命令:filesystem, device, balance, subvolume

3. 创建应用示例

3.1 创建并挂载btrfs文件系统

    1. [root@localhost ~]# mkfs.btrfs /dev/sdb6
    2. btrfs-progs v3.19.1
    3. See http://btrfs.wiki.kernel.org for more information.
    4. Turning ON incompat feature extref: increased hardlink limit per file to 65536
    5. Turning ON incompat feature skinny-metadata: reduced-size metadata extent refs
    6. fs created label (null) on /dev/sdb6
    7. nodesize 16384 leafsize 16384 sectorsize 4096 size 2.00GiB
    8. [root@localhost ~]# mkdir /tmp/mybtrfs
    9. [root@localhost ~]# mount /dev/sdb6 /tmp/mybtrfs

技术分享

3.2 增加减少btrfs文件系统

    1. [root@localhost mybtrfs]# btrfs filesystem resize -1G /tmp/mybtrfs
    2. Resize ‘/tmp/mybtrfs of ‘-1G

技术分享

    1. [root@localhost mybtrfs]# btrfs filesystem resize +1G /tmp/mybtrfs
    2. Resize ‘/tmp/mybtrfs of ‘+1G

技术分享

3.3 在线增加/减少磁盘,并均衡数据

    1. [root@localhost mybtrfs]# btrfs device add -f /dev/sdb7 /tmp/mybtrfs
    2. [root@localhost ~]# btrfs filesystem balance /tmp/mybtrfs
    3. Done, had to relocate 5 out of 5 chunks
    4. [root@localhost ~]# btrfs filesystem show
    5. Label: none uuid: b82450a3-d903-4913-b4d1-ad68fb0e193f
    6. Total devices 2 FS bytes used 256.00KiB
    7. devid 1 size 2.00GiB used 288.00MiB path /dev/sdb6
    8. devid 2 size 2.00GiB used 704.00MiB path /dev/sdb7
    9. btrfs-progs v3.19.1

在线删除挂载磁盘

    1. [root@localhost ~]# btrfs device delete /dev/sdb8 /tmp/mybtrfs/

3.4 创建删除子卷

可以卸载父卷,只挂载子卷。

    1. [root@localhost ~]# btrfs subvolume create /tmp/mybtrfs/subbtrfs
    2. Create subvolume ‘/tmp/mybtrfs/subbtrfs
    3. [root@localhost ~]# btrfs subvolume delete /tmp/mybtrfs/subbtrfs
    4. Delete subvolume (no-commit): ‘/tmp/mybtrfs/subbtrfs




btrfs管理及应用

标签:

原文地址:http://www.cnblogs.com/song0156/p/5591907.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!