#12btrfs文件系统

author author     2022-09-01     550

关键词:

btrfs

Technical Preview, 技术预览版

BtrFS(B-tree文件系统,又称为Butter FS或Better FS),2007由oracle开源后,得到了IBM、intel等厂商的大力支持,其目标计划是替代linux目前的ext3/4,成为下一代linux标准的文件系统。

运行在linux上,并遵循GPL协议的强大文件系统。在2014年8月发布了稳定版。


btrfs的特性:

1.可扩展性:

1) ext系列文件系统使用块位图来保存每个块空闲与否的信息(每个块用一个位来表示是否空闲),当容量扩展时,块位图所占的空间会线性的增加,试想一下如果快位图变得很大时,那么查找空闲块就需要大量的时间;BtrFS管理磁盘空间的最小单位是extent,一个extent由一组连续的block组成,extent由extent树进行管理,因此相比ext系列10个块需要10个bit来表示,btrfs只需要一个extent就可以,因此减少了元数据的量。对于大文件,extent表现出更加优异的管理性能。


2) ext系统inode是预分配的且大小固定,比如,100G的分区中,inode table只能存放131072个inode,意味着不可能创建131072个文件;同时, inode分配过小,容易导致磁盘空间无法充分利用,过大,容易造成磁盘空间浪费;btrfs为了解决这个问题,使用了动态分配inode,如下图,每个inode只是FS tree中的一个节点,用户可以无限制地任意插入新的inode,其物理存储位置是动态分配的,所以没有对文件个数的限制。


2.多物理卷支持:

btrfs可以跨越多个物理磁盘设备,动态的增加/减少设备来达到扩容/缩容的目的,技术上还支持(raid0、raid1、raid5、raid10等特性),以及联机“添加”、“移除”以及“修改”

3.写时复制更新机制(CoW):

复制、更新及替换指针,而非“就地”更新;btrfs的数据一致性是通过COW(Copy On Write)事务来保证的,所谓COW,即每次写磁盘数据时,先当前块数据复制到一个新块,然后在新块上进行更新写入,当新块写入完成时,只需将原来指向旧块的指针指向新块。


4.数据及元数据校验码:checksum

btrfs的另一特点是使用checksum来保证数据的可靠性,假设从磁盘读取一个块数据,可以通过比较其checksum来判断数据是否完整,其他文件系统在文件系统级别上是无法得知数据是否损坏的;同时由于checksum数据存储在checksum树的节点上,与块数据是分开管理的,这样的好处是能避免checksum和数据保存在同一个块的时候,文件系统上层获取了一个错误位置的块时无从得知(因为checksum只计算块数据是否完整而不是数据应该存在哪个块,只要块内数据并无损坏,checksum永远都是正确的)


5.子卷:sub_volume

在一个文件系统(或逻辑卷)上创建子卷,并没有层级限制,并且所有卷的空间大小都是可以动态调整的。其应用场景是可以为每个用户分配一个单独隔离的卷空间,来达到权限控制和配额管理的目的。


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}

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

    例:btrfs balance 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>

    创建子卷

  例:btrfs subvolume create /mnt/btrfs/mysub1/


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

    删除子卷

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


  btrfs subvolume show <subvol-path>

  显示子卷的信息

  例:btrfs subvolume 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/4 filesystem to btrfs or rollback

btrfs-convert [options] <device>


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

~]# btrfs-convert /dev/sdb1


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


将文件系统从btrfs回滚到ext

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


btrfs文件系统学习

btrfs文件系统由Oracle开发,btrfs设计目标为取代早期ext文件系统。核心特性:1.多物理卷支持:btrfs可由多个底层物理卷组成,支持RAID,以联机“添加”、“移除”、“修改”。2.写时复制更新机(COW):复制、更新及替换指针,而... 查看详情

btrfs文件系统

文档:btrfs文件系统.note链接:http://note.youdao.com/noteshare?id=9a54dbb303a8e629147ee6d8da17e007&sub=40582DAB28DC42C5A6AD56F23867F681 查看详情

btrfs文件系统学习及练习

###########################################################################################    Btrfs(通常念成ButterFS),由Oracle于2007年宣布并进行中的COW(copy-on-write式)文件系统。目标是取代Linux目前的ext3文件系统 查看详情

btrfs学习笔记

一、Btrfs文件系统Btrfs(B-tree,ButterFS,BetterFS),Oracle从2007年开始研发的一种新的文件系统,目标是用于取代ext3和ext4文件系统,2014年8月发布稳定版本;采用GPL授权.1.1Btrfs文件系统特性多物理卷支持:Btrfs可由多个底层物理卷组成;支持RAID,以... 查看详情

btrfs文件系统笔记

    发现一篇美文,先贴上链接,后续填坑。https://www.ibm.com/developerworks/cn/linux/l-cn-btrfs/index.html#ibm-pconhttp://www.ibm.com/developerworks/cn/linux/l-cn-btrfs/index.html#ibm-pcon本文出自“799540 查看详情

btrfs文件系统的简单使用方法

简单介绍btrfs文件系统的使用,包括创建、挂载、子卷的创建、挂载、快照、在线添加和移除物理设备、重新均衡数据btrfs的特性:    多块磁盘支持:btrfs可由多个底层磁盘组成,支持RAID,可以联机添加、移除、... 查看详情

btrfs

btrfs TechnicalPreview,技术预览版 BtrFS(B-tree文件系统,又称为ButterFS或BetterFS),2007由oracle开源后,得到了IBM、intel等厂商的大力支持,其目标计划是替代linux目前的ext3/4,成为下一代linux标准的文件系统。 运行在linux上,并遵循GPL... 查看详情

btrfs文件系统管理与应用

...:sub_volume快照:支持快照的快照(增量快照)透明压缩文件系统 查看详情

raidlvm和btrfs文件系统

一、RAID:    RedundantArraysofInexpensiveDisks,廉价磁盘冗余阵列;    RedundantArraysofIndependentDisks,独立磁盘冗余阵列;    将多个相对廉价的IDE接口的磁盘组合成一个"阵列" 查看详情

raidlvm和btrfs文件系统

一、RAID:    RedundantArraysofInexpensiveDisks,廉价磁盘冗余阵列;    RedundantArraysofIndependentDisks,独立磁盘冗余阵列;    将多个相对廉价的IDE接口的磁盘组合成一个"阵列" 查看详情

btrfs文件系统简介及centos7下实例

btrfs文件系统简介及CentOS7下实例由Oracle于2007年宣布并进行中的COW(copy-on-write式)文件系统。目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单一文件大小的限制,总文件系统大小限制以及加入文件校验和特性。加入目... 查看详情

linux高级文件系统管理——btrfs

前几天,关于高级文件系统方面也给大家分享过RAID和LVM,今天给大家分享的这款文件系统可能比这两者更先进,可以将其二者合二为一。第一,它可以使用磁盘或者分区大小不一样的设备组建RAID;第二,它可以做到像LVM一样,... 查看详情

btrfs

btrfs文件系统: 技术预览版 核心特征: 多物理卷支持:btrfs可以由多个底层物理卷组成:支持RAID,以联机“添加”,“删除”,“修改” 写时复制更新:复制,更新及替换指针,而非“就地”更新 数据及元数据校验码:checksu... 查看详情

btrfs的介绍与使用

...现还不是很明白,还需要研究,在此做个记号。Btrfs简介文件系统似乎是内核中比较稳定的部分,多年来,人们一直使用ext2/3,ext文件系统以其卓越的稳定性成为了事实上的Linux标准文件系统。 查看详情

如何使用 C++ 代码中的 BTRFS 写入时复制?

...时间】:2018-10-1118:03:10【问题描述】:如何使用C++在BTRFS文件系统中的文件上从假定支持的Linux系统上的C++代码复制文件?该解决方案是否适用于所有Unix系统?文件系统的C++标准的任何部分都没有包含CoW。它也没有出现在Linux的... 查看详情

linuxbtrfs文件系统及管理

参考技术ALinuxbtrfs文件系统及管理  linux文件系统,具有写时复制COW(copy-on-write),改善ext3文件系统单文件大小限制,并加入其他特性,如可写快照,快照的快照,内建RAID,子卷(subvloume),专注于容错,修复和易于管理,下面一起... 查看详情

linux如何通过快照数据盘拷贝到系统盘?

之前linux云服务器出现故障,系统文件丢失,然后我把系统盘做了快照,现在客服给的建议是快照加载数据盘,然后将数据盘内容拷贝到系统盘,然后释放数据盘。。求教高手怎么操作呀现在是快照已经加载数据盘了,通过parted-... 查看详情

lvm逻辑卷的缩减与删除,lvm逻辑卷快照,btrfs文件系统,网络管理

逻辑卷缩减缩减的时候要注意缩减的空间不要超过文件系统的空间,不然缩减的时候会损坏文件系统。第一步要先取消挂载(必须)第二部检查文件完整性(必须)e2fsck-f/dev/vg0/lv0650)this.width=650;"src="http://www.178linux.com/ueditor/php/upl... 查看详情