BTRFS- Multiple Device Support(多重设备支持)

BTRFS为解决Linux设备映射系统不支持checksums的问题,实现了自己的设备管理。它将设备划分为大型chunks,并根据RAID级别组织数据。在写入时支持RAID0, 1, 10,还有实验性的RAID5/6支持。通过chunk和device树,BTRFS能高效管理存储并允许设备的动态添加和移除,以实现数据均衡和故障恢复。默认元数据使用RAID1确保高可靠性。" 132519821,19694743,R语言:掌握包的下载、使用与管理,"['R语言', '信息可视化', '开发语言']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

备注:本文翻译自 IBM Research Report BTRFS - Linux Btree Filesystem

Linux 有设备映射(DMs)子系统去管理存储设备。举个例子,LVM和mdadm,这些时软件模型,主要功能是管理raw disks,合并他们到虚拟的连续的块地址空间,并且将其抽象话到更高级别的内核层。他们支持镜像,剥离和RAID5/6。无论如何,checksums是不支持的,这样会导致BTRFS有一个问题。举个例子,考虑一种情况,数据存储在磁盘上是RAID-1的格式,每个4KB块有一个额外的拷贝。 如果文件系统在一个拷贝上检测到一个checksum的错误,它需要从其他拷贝恢复。DMs隐藏了虚拟地址空间抽象化背后的信息,并且返回其中一份拷贝。为了规避这个问题,BTRFS做了自己的设备管理。它计算checksums,将他们存储在一个单独的树中,然后更好的确定当媒介错误发生的时候合适恢复数据。

一台机器可以被附加到多个存储设备上;BTRFS分离每个设备到large chunks,经验法则是chunk大约是一个设备尺寸的1%。

在写的时刻, 1GB chunks 被用于数据, 256Mchunks用于元数据。

一个chunk tree 包含一个从逻辑chunks到物理chunks的映射。 一个device tree包含反向映射,文件系统剩余部分可以看到有逻辑的chunks,所有的extent references 地址逻辑chunks。这个允许移动物理的chunks under the covers无需回溯和引用修复。 chunk/device trees 是很小的,并且典型的可以在内存中缓存。这个减少增加间接层的性能开销。 

物理的chunks根据逻辑chunk的需要的RAID级别被分成组。对于镜像,chunk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值