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)

Background scrub process for finding and fixing errors on files with redundant copies #后台进程自动检测并修复错误

Online filesystem defragmentation   #在线的文件系统碎片管理

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 简介

https://www.ibm.com/developerworks/cn/linux/l-cn-btrfs/ Btrfs 简介 文件系统似乎是内核中比较稳定的部分,多年来,人们一直使用 ext2/3 ...

Linux学习之二十-Linux文件系统

Linux文件系统 文件系统的定义 文件系统是操作系统的必备软件,文件系统是对一个存储设备上的数据(block)和元数据(inode)进行组织的一种机制.文件系统可以帮助用户管理磁盘空间,进行文件的快 ...

Linux 入门记录:二、Linux 文件系统基本结构

一.树状目录结构 Linux 文件系统是一个倒置的单根树状结构.文件系统的根为"/":文件名严格区分大小写:路径使用"/"分割(Windows 中使用&quot ...

【Linux学习二】Linux文件系统

Linux文件系统结构 ●Linux文件系统是一种倒转的单根结构 ●文件系统的根是"/" ●文件系统严格区分大小写 ●路径使用"/"分割(window下为&qu ...

存储那些事儿(五):BTRFS文件系统之Btree结构详解

Btree数据结构可以说是BTRFS文件系统的基础.它提供了一个通用的方式去存储不同的数据类型.它仅仅存储3个数据类型:key, item和block header. btrfs_header的定义如 ...

第十二章Linux文件系统与日志

1.inode 包含文件的元信息(1)inode 内容:文件的字节数.拥有者的 UID.GID.文件的读写执行权限.时间戳等,但不包含文件名.文件名是储存在目录的目录项中.(2)查看文件的 inode ...

二、linux文件系统之linux启动

Linux组成 kernel  shell  文件系统  application(应用程序) 标准库函数 内核源码位置: /usr/src   /boot/vmlinuz*(内核压缩文件,启动要加载) ...

二、Linux文件系统之内存管理

虚拟内存  32位:4G 64位:2^64 内存管理: 进程管理 自动分配和管理 支持模块化程序设计 保护和访问控制 长期存储 虚拟内存  物理内存

磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]

1.磁盘基础知识 1.1 物理结构 硬盘的物理结构一般由磁头与碟片.电动机.主控芯片与排线等部件组成:当主电动机带动碟片旋转时,副电动机带动一组(磁头)到相对应的碟片上并确定读取正面还是反面的碟面,磁 ...

随机推荐

【BZOJ】3996: [TJOI2015]线性代数

题意 给出一个\(N \times N\)的矩阵\(B\)和一个\(1 \times N\)的矩阵\(C\).求出一个\(1 \times N\)的01矩阵\(A\),使得\[ D = ( A * B ...

ProgressDialog使用总结

以前对ProgressDialog不太熟练,特地看到的这个文章 ProgressDialog的使用  ProgressDialog 继承自AlertDialog,AlertDialog继承自Dialo ...

CF# 334 Lieges of Legendre

C. Lieges of Legendre time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

寻找研究基于NS2研究覆盖网络的小伙伴:)

如题,本人菜鸟刚刚入门,想找些基于NS2研究覆盖网络方面的小伙伴,具体点是关于覆盖网络中QoS服务调度方法方面的,有的小伙伴可以留下联系方式,或者加我QQ:245939069  :P:P:P

paip.编程语言到底有没有优劣之分优秀之分

paip.编程语言到底有没有优劣之分优秀之分 人有没有优秀之分之分呢??狗有没有优秀之分呢?? 当然是有的,有好人坏人的说法,或者精英平民的区分..狗也有好狗狗,坏狗,疯狗嘛.. 所以,自然,编程语言 ...

bzoj 1034 (田忌赛马++)

/* 这类题的最优策略: 自己最好的干掉对方最好的 或者 自己最差的干掉对方最差的 不能的话 用自己最差的 对阵对方最好的 这样是最优的 实现嘛 搞两个队列跑一跑 */ #include

Android单元测试之二:本地测试

Android单元测试之二:本地测试 本地测试 本地测试( Local tests):只在本地机器 JVM 上运行,以最小化执行时间,这种单元测试不依赖于 Android 框架,或者即使有依赖,也很方 ...

django_视图层_编写url

URL的配置 django中,url也称urlconf,默认的django项目设定两个url地址,分别是admin站点管理和首页地址.from diango.urls import path,incl ...

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

  1. linux脚本查看系统内存,二个linux下查看内存使用情况的shell脚本()

    摘要 腾兴网为您分享:二个linux下查看内存使用情况的shell脚本(),政务易,悦作业,优化大师,王者荣耀等软件知识,以及单向历app,优路教育app,kimoji,开关电源设计软件,皮皮高清影视 ...

  2. linux云存储软件,推荐5个Linux云存储解决方案

    在发生系统崩溃时,没有什么比恢复你所有的文件更能够得到安慰.然而,以你的经验来讲,您可能需要选择一个更好的平台来储存你的文件.这里我们将讨论Linux最好的云存储解决方案,使用户能够轻松地体验到云. ...

  3. 【Linux环境搭建】十二、Linux(CentOS7) 时序数据库InfluxDB及Influx-proxy安装配置

    一.安装InfluxDB 安装 wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.0.x86_64.rpm sudo yum ...

  4. 嵌入式 Linux 入门(二、Linux 文件系统、文件类型及权限管理)

    嵌入式 Linux入 门第二课, linux 文件系统.文件类型及权限管理. ...... 矜辰所致 目录 前言 一.Linux 文件属性 1.1 Linux 文件类型 1.2 Linux 文件权限及 ...

  5. linux中vfs和fs区别,解析Linux中的 VFS 文件系统机制(rootfs)一

    本文阐述 Linux 中的文件系统部分,源代码来自基于 IA32 的 2.4.20 内核.总体上说 Linux 下的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统 VFS(V ...

  6. 怎么修改服务器图片存储路径,linux服务器存储图片路径

    linux服务器存储图片路径 内容精选 换一换 本节操作介绍在Windows和Linux环境中使用SSH密钥对方式登录Linux裸金属服务器的操作步骤.裸金属服务器状态必须为"运行中&quo ...

  7. Linux环境搭建基础(二)

    Linux上搭建项目的环境基础(二) 一.Linux上安装中文字体 二.Linux上安装rar解压工具 (做个笔记,自己以后忘了方便查找,会持续更新-) 一.Linux上安装中文字体 重要程度 ✮✮ ...

  8. 两台linux之间实现共享文件夹挂载实例,linux之间实现共享文件夹挂载实力

    学习linux之间存储挂载基本配置理论 linux之间实现共享文件夹挂载: 一.linux存储服务器(10.89.8.5 域名:http://doc.xuehai.net),linux客户端服务器(1 ...

  9. Linux 操作系统原理 — 文件系统 — 存储布局

    目录 文章目录 目录 磁盘分区 MBR 与分区表 创建 MBR 分区 创建 GPT 分区 分区的格式化 分区的特性 引导块 空闲空间块 inode 区块.data block 区块与超级块 LVM 与 ...

最新文章

  1. MapReduce的序列化案例
  2. c++ mat to numpy array
  3. 案例研究设计与方法-罗伯_旭进口重新设计-用户体验案例研究
  4. 浅谈.Net异步编程的前世今生----APM篇
  5. pom env.java home_关于java:aven:POM.xml中缺少工件com.sun:tools:jar:1.6.0编译时异常...
  6. mysql 备份 没有自动删除文件_删掉spfile在没有自动备份控制文件下从以前的rman备份中恢复数据库...
  7. MQTT服务器Mosquitto安装及使用
  8. Windows服务器系统的端口要求
  9. 利用matlab进行Vissim二次开发,史上最详细
  10. 整整1600套Axure原型图设计源文件UI UX交互设计案例
  11. Win10系统下安装Ubuntu系统(双系统)
  12. 离散ziggurat算法python实现_SLAM的数学基础(3):几种常见的概率分布的实现及验证。...
  13. linux oel7没有网络,OEL7.2下Oracle11.2.0.4RAC部署
  14. oracle定时执行某个任务,oracle 里面定时执行任务,比如存储过程内容等
  15. Unity3D射击类游戏制作第三节--游戏模型
  16. 宣化科技职业学院计算机网络技术,职业技术学校专业建设-宣化科技职业技术学院-计算机网络技术.doc...
  17. get请求图片出现403 防盗链解决方式 no-referrer
  18. python关于二手房的课程论文_用Python对2019年二手房价格进行数据分析
  19. 答题微信小程序实现(4):数据库题库的调用/上一题、下一题/题量length的获取
  20. 个人能用的短信平台有哪些?看这一篇就够了

热门文章

  1. js中sort()字母排序和自定义多列排序
  2. 抓娃娃机按钮按几下_揭秘娃娃机抓娃娃技巧全攻略
  3. Elasticsearch生产实战(ik分词器、拼音分词、自动补全、自动纠错)
  4. wro4j的js和css压缩技术
  5. 电影评论系统C语言,源代码电影评论
  6. dotnet 进行二进制差分压缩文件
  7. 将二进制文件或者脚本打包成rpm安装包
  8. 图片如何批量重命名?一步一步教会你
  9. 史上最强C语言教程----指针(初阶)
  10. 关于调用淘宝IP获取城市信息-- 随笔