`
anzhsoft
  • 浏览: 23356 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类
最新评论

存储那些事儿(二): 下一代Linux文件系统BTRFS简介

阅读更多

BTRFS,通常念成 Butter FS,Better FS 或B-tree FS。下一代的Linux文件系统。

它基于写时拷贝(copy-on-write),支持高效的snapshot和clone。它使用b-tree作为存储的数据结构。在BTRFS项目主页上对自己是这么描述的:"一个新的针对Linux的写时复制文件系统,致力于实施高级的功能,同时关注容错、修复和管理方便性。"

它有哪些高级功能呢?下面的feature来自BTRFS的项目主页:http://btrfs.wiki.kernel.org/

  • Extent based file storage #扩展了
  • 2^64 byte == 16 EiB maximum file size #支持16EB的文件大小, 1PB = 1024 TB, 1EB = 1024 PB
  • Space-efficient packing of small files #高效支持小文件, 通过inline files实现的
  • Space-efficient indexed directories #高效的目录索引
  • Dynamic inode allocation #动态inode分配。我们知道,传统Linux文件系统的inode格式化好后inode的节点数就确定了,也就是说文件系统的文件数确定
  • Writable snapshots, read-only snapshots #支持可读,可写的快照
  • Subvolumes (separate internal filesystem roots) #支持subvolumes,可以理解成在文件系统上创建子的文件系统,方便用户的权限控制
  • Checksums on data and metadata (crc32c) #支持数据和元数据的检验,保证数据的正确性
  • Compression (zlib and LZO) #支持在线压缩
  • Integrated multiple device support #多设备支持
    • File Striping, File Mirroring, File Striping+Mirroring, Striping with Single and Dual Parity implementations
  • SSD (Flash storage) awareness (TRIM/Discard for reporting free blocks for reuse) and optimizations (e.g. avoiding unnecessary seek optimizations, sending writes in clusters, even if they are from unrelated files. This results in larger write operations and faster write throughput)
  • Efficient Incremental Backup #高效的增量备份
  • Background scrub process for finding and fixing errors on files with redundant copies #后台进程自动检测并修复错误
  • Online filesystem defragmentation #在线的文件系统碎片管理
  • Offline filesystem check#离线的文件系统检查
  • Conversion of existing ext3/4 file systems #ext3/4文件系统的转换
  • Seed devices. Create a (readonly) filesystem that acts as a template to seed other Btrfs filesystems. The original filesystem and devices are included as a readonly starting point for the new filesystem. Using copy on write, all modifications are stored on different devices; the original is unchanged.
  • Subvolume-aware quota support #支持subvolume配额,就是支持subvolume的大小限制设定
  • Send/receive of subvolume changes
    • Efficient incremental filesystem mirroring
  • Batch, or out-of-band deduplication (happens after writes, not during) #支持写后的数据消重

以下这些features正在开发,或者计划中:

  • Very fast offline filesystem check #快速离线文件系统检查
  • Object-level mirroring and striping #对象级别的镜像和条带
  • Alternative checksum algorithms #可选择的校验算法
  • Online filesystem check #在线文件系统检查
  • Other compression methods (snappy, lz4) #其他的压缩算法
  • Hot data tracking and moving to faster devices (currently being pushed as a generic feature available through VFS): 热数据转移到更快的设备上,比如SSD
  • In-band deduplication (happens during writes) #支持写时数据消重


既然BTRFS的目标是下一代的Linux文件系统,那么它不单单能作为智能手持设备的文件系统,还能作为企业生产环境下的文件系统。它需要能搭建在众多的硬件平台上。

BTRFS的实现视图可以看成需要btree构成的一个森林,使用copy-on-write(COW,写时复制)作为更新的方法。硬盘的block以extent的形式被管理。

这篇文章作为该系列文章的开篇,简单的介绍一下BTRFS。接下来的文章我讲更详细的去分享这些feature的具体实现。敬请期待!


尊重原创,转载请注明出处 anzhsoft: http://blog.csdn.net/anzhsoft/article/details/20359531


分享到:
评论

相关推荐

    Linux 文件系统 btrfs 简介

    linux文件系统btrfs介绍,设计原理

    cpp-WinBtrfs是一个用于下一代Linux文件系统Btrfs的Windows驱动程序

    WinBtrfs是一个用于下一代Linux文件系统Btrfs的Windows驱动程序

    次世代Linux文件系统Btrfs(上).pdf

    次世代Linux文件系统Btrfs(上).pdf

    btrfs:WinBtrfs-Windows的开源btrfs驱动程序

    WinBtrfs是下一代Linux文件系统Btrfs的Windows驱动程序。 从头开始的重新实现,它不包含来自Linux内核的代码,并且可以在Windows XP以后的任何版本上使用。 它也作为免费操作系统一部分包含在内。 如果您的Btrfs...

    Linux 文件系统性能对比

    Ext2、Ext3、Ext4、XFS、JFS、ReiserFS 和 Btrfs 的全面性能测试,对比结果如下:本次测试所使用的 Linux kernel 版本为 2.6.29-rc3,文件系统性能测试工具为 IOzone 3.318。 测试数据单位:Kbytes/sec 请作参考。

    btrfs_exporter:光滑的BTRFS文件系统的Prometheus导出器

    BTRFS出口商 用于BTRFS卷的Prometheus导出器。 如何 pip3 install btrfs flask FLASK_APP=btrfs_exporter.py STAT_URL=/metrics flask run --host=127.0.0.1 --port 9101 样本输出: $ curl localhost:9101/metrics...

    linux_btrfs——snapshot.txt

    该笔记由博主本人亲自整理撰写,介绍以及各方面的操作都进行了简化提示,很适合linux的萌新进行学习,内容大致:【基础介绍】【子卷创建及介绍】【快照创建及介绍】【常见疑惑及解答】

    btrfs 文件系统快照清理工具

    btrfs 文件系统快照清理...在 openSUSE 系统下使用 Btrfs 文件系统时,快照管理工具 snapper 会自动生成许多快照,而 snapper 自带的快照清理功能又不是很方便,因此便写了这个脚本,用以辅助 snapper 进行快照的清理。

    timeshift:Linux的系统还原工具。 使用rsync + hardlinks或BTRFS快照创建文件系统快照。 支持计划的快照,多个备份级别,并排除过滤器。 可以在系统运行时或从Live CDUSB恢复快照

    在BTRFS模式下,使用BTRFS文件系统的内置功能拍摄快照。 BTRFS快照仅在具有Ubuntu型子卷布局(带有@和@home子卷)的BTRFS系统上受支持。 时移类似于 , 和类的应用程序,但目标不同。 它旨在仅保护系统文件和设置。...

    openEuler文件系统-svg

    openEuler内核源于Linux,Linux内核支持十多种不同类型的文件系统,比如Btrfs、JFS、ReiserFS、ext、ext2、ext3、ext4、ISO9660、XFS、Minix、MSDOS、UMSDOS、VFAT、 NTFS、HPFS、NFS、SMB、SysV、PROC等; ...

    Linux内核解析案例详解

    Linux内核解析是指对Linux操作...文件系统:分析Linux内核中的文件系统实现,如Ext4、Btrfs、FAT等,了解文件系统缓存、文件操作接口等。 网络协议栈:研究Linux内核中的网络协议栈实现,包括TCP/IP协议族、套接字编

    Btrfs_Current status_and_future_prospects

    来自富士通Linux开发部门的Satoru Takeuchi在本演讲幻灯中,为我们介绍了当前Brtfs的状况。Btrfs作为Linux系统下一代文件系统,在文件卷性能、健壮性等方面都有非常明显的进步。

    Professional Linux Kernel Architecture

    "Professional Linux Kernel Architecture"是一本关于Linux内核架构的专业书籍。该书由Wolfgang Mauerer撰写,旨在深入介绍Linux内核的设计...文件系统:深入研究Linux内核中的文件系统实现,包括Ext4、Btrfs、FAT等

    rsbtbackup:一个设计用于通过 Btrfs 子卷进行增量备份的工具

    安装只需获取 rsbtbackup 文件并将其放在备份机器上的任何位置(包括 btrfs 备份分区之外)。配置RsbtBackup 可以用作另一个 python 脚本中的可导入库。 只需在您的脚本中导入它: $ vi /your/path/yourscript#!/usr...

    btrfs-initrd:创建 initrd 以支持从 btrfs 子卷启动

    BTRFS初始化 btrfs-initrd 创建一个 initrd 映像以支持在引导期间以 root 身份挂载 btrfs 子卷。 用法 $ mount /boot # Creates /boot/initrd-btrfs-$KERNEL.gz $ ./btrfs_create_initrd.sh 之后,更新您的引导加载...

    btrfs-register:最少的静态链接“ btrfs设备扫描”替换

    btrfs注册基于busybox的initramfs构建的最小静态链接“ btrfs设备扫描”替代。 btrfs-progs具有太多的依赖关系,因此无法轻松地进行静态编译。 initramfs脚本用法示例: echo "Waiting for ...然后继续挂载根文件系统。

    bedup:Btrfs重复数据删除

    bedup查找新文件和更改过的文件,以确保相同文件的多个副本共享磁盘上的空间。 它与btrfs进行了深度集成,因此扫描是渐进的且影响较小。要求您需要Python 3.3或更高版本,以及Linux 3.3或更高版本。 建议使用Linux ...

    anurbs-0.5.1-cp38-cp38-linux2010-x86-64.whl

    同时,虚拟文件系统技术使得Linux能够支持多种不同的文件系统类型,如ext4、XFS、Btrfs等,从而在不同的硬件和场景下都能发挥出最佳性能。 此外,Linux文件系统还具备强大的权限控制机制。它采用了基于用户和组的...

    anurbs-0.5.1-cp37-cp37m-linux2010-x86-64.rar

    同时,虚拟文件系统技术使得Linux能够支持多种不同的文件系统类型,如ext4、XFS、Btrfs等,从而在不同的硬件和场景下都能发挥出最佳性能。 此外,Linux文件系统还具备强大的权限控制机制。它采用了基于用户和组的...

    anurbs-0.6.0-cp35-cp35m-linux2010-x86-64.whl

    同时,虚拟文件系统技术使得Linux能够支持多种不同的文件系统类型,如ext4、XFS、Btrfs等,从而在不同的硬件和场景下都能发挥出最佳性能。 此外,Linux文件系统还具备强大的权限控制机制。它采用了基于用户和组的...

Global site tag (gtag.js) - Google Analytics