首页 > 代码库 > btrfs及子卷

btrfs及子卷

btrfs

    Balance-tree FS

    Better FS

    Butter FS

 

    2007年有Oracle开源,到目前为止,仍然是技术预览版(Technical Preview)。

 

    btrfs开发目的就是取代ext系列文件系统,成为下一代Linux的标准文件系统。

 

    在Linux上运行的btrfs,遵循GPL开源协定;2014年8月,稳定版推出。

 

    btrfs的特性:

        1.可扩展性

            extent是最小管理逻辑单元,每个extent是由一组连续的block组成

            ext文件系统inode数量是一定的,btrfs的inode数量是动态可调整的

 

        2.多物理卷支持:

            btrfs可以跨越多个物理设备,动态的增加或减少设备来达到扩容或缩容的目的;

            而且,从技术角度来讲,btrfs还支持RAID-0,RAID-1,RAID-5,RAID-10等

            还支持在线添加,删除,及修改设备;

 

        3.写时复制更新机制(CoW, Copy onWrite)

            所谓的CoW,就是每次写磁盘数据的时候,先将当前块的数据复制到一个新块中,然后在新块中进行数据更新写入,当新块写入完成后,只需要将原来指向旧块的指针指向新块即可。

 

        4.双重校验机制——数据及元数据都有校验码:checksum

 

        5.支持子卷:

 

        6.快照卷:

            对父卷做快照

            对子卷做快照

            对快照卷做快照

 

        7.透明压缩,隐形压缩:

 

mkfs.btrfs

    选项:

         -L|--label <name>:为即将创建的btrfs文件系统指定卷标

         -d|--data <type>:为数据存储指定类型;可以选择的类型有:raid0, raid1, raid5, raid6, raid10 or single

         -m|--metadata <profile>:指定元数据的存储方式;可以选择的类型有:raid0, raid1, raid5, raid6, raid10, single or dup

         -O|--features<feature1>[,<feature2>...]:指定btrfs文件系统的特性,如果想要查看哪些特性,可以使用命令:mkfs.btrfs -O list-all

 

可以用支持btrfs文件系统的mount命令中使用下列方式开启透明压缩功能:

    mount -o compress={lzo|zlib} DEVICE MOUNT_POINT

 

btrfs

    btrfs - control a btrfs filesystem

    btrfs <command> [<args>]

 

    btrfs filesystem show

        查看btrfs文件系统的详细属性;

 

    btrfs filesystem df MOUNT_POINT

        查看文件系统的挂载和使用情况

            例:btrfs filesystem df/mnt/btrfs/

 

在线修改文件系统大小:

    btrfs filesystem resize {+|-}SIZE[KkMmGgTtPpEe]MOUNT_POINT

 

        例:btrfs filesystem resize-15G /mnt/btrfs/

                btrfs filesystem resize +5G/mnt/btrfs/

                btrfs filesystem resize max/mnt/btrfs/

 

向btrfs文件系统中添加或删除设备

    btrfs device

        btrfs device add [options]<device> [<device>...] <path>

      向文件系统中添加一个新设备

    btrfs device delete <device>[<device>...] <path>

      从文件系统中删除一个设备

 

 

平衡数据:

    btrfs balance start [options] <path>

      开启跨设备的chunk的数据平衡

     -mconvert={radi0|raid1|raid5|radi10|raid6|single|dup}

        改变元数据的数据平衡布局方式

        例:btrfsbalance start -mconvert=raid5 /mnt/btrfs/

 

     -dconvert={radi0|raid1|raid5|radi10|raid6|single}

        改变数据的数据平衡布局方式

            例:btrfs balance start-dconvert=raid6 /mnt/btrfs/

 

    btrfs balance pause <path>

      暂停数据平衡

    btrfs balance cancel <path>

      取消正在进行的或已经暂停的数据平衡

    btrfs balance resume <path>

      恢复被打断的数据平衡

    btrfs balance status [-v] <path>

      显示正在进行的或已经暂停的数据平衡的状态信息

 

子卷管理:

    btrfs subvolume create [-i <qgroupid>][<dest>/]<name>

    创建子卷

    例:btrfssubvolume create /mnt/btrfs/mysub1/

 

  btrfs subvolume delete [options]<subvolume> [<subvolume>...]

    删除子卷

    例:btrfs subvolume delete/mnt/btrfs/mysub1/

 

  btrfs subvolume show <subvol-path>

    显示子卷的信息

    例:btrfssubvolume show /mnt/btrfs/mysub1/

 

 

子卷类似于ext文件系统中的将其他分区挂载到根目录下的某个空闲子目录的操作;

 

快照:

    btrfs subvolume snapshot [-r] [-i<qgroupid>] <source> <dest>|[<dest>/]<name>

    创建指定子卷的快照卷

 

        例:btrfs subvolume snapshot/mnt/btrfs/mysub1/ /mnt/btrfs/snap_mysub1

 

将btrfs和ext系列进行转换:

    btrfs-convert

        btrfs-convert - convert from ext2/3/4filesystem to btrfs or rollback

        btrfs-convert [options] <device>

 

        将文件系统从ext转换为btrfs:

            ~]# btrfs-convert /dev/sdb1

 

            注意:/dev/sdb1分区,应该事先格式化为ext系列文件系统;

 

        将文件系统从btrfs回滚到ext

            ~]# btrfs-convert -r /dev/sdb1


本文出自 “12657170” 博客,请务必保留此出处http://12667170.blog.51cto.com/12657170/1928975

btrfs及子卷