btrfs文件系统的简介和用法

btrfs文件系统:
      Btrfs(B-tree 档案系统, 通常念成 Butter FS,Better FS 或 Btree FS),采用 GPL 授权,是由 Oracle 于 2007 年宣布并进行中的支持写入 时复制(COW)的文件系统。目标是取代 Linux 目前的 ext3 文 件系统,改善 ext3 的限制,特别是单个文件的大小,总文件系统大小或文件检查和加入 ext3 未支持的功能,如可写快照(writable snapshots)、快照的快照 (snapshots of snapshots)、内建磁盘阵列(RAID),以及子卷 (subvolumes)。Btrfs 也宣称专注于“容错、修复及易于管理”。

核心特性:
          多物理卷支持:btrfs可由多个底层物理卷组成;支持RAID,以联机“添加”、“移除”,“修改”;
          写时复制更新机制(CoW): 所谓 COW,即每次写磁盘数据时,先将更新数据写入一个新的 block,当新数据写入成功之后,再更新相关的数据结构指向新 block 。复制、更新及替换指针,而非“就地”更新;
          数据及元数据校验码(checksum):btrfs在读取数据的同时会读取其相应的 checksum 。如果最终从磁盘读取出来的数据和 checksum 不相同,btrfs 会首先尝试读取数据的镜像备份,如果数据没有镜像备份,btrfs 将返回错误。写入磁盘数据之前,btrfs 计算数据的 checksum 。然后将 checksum 和数据同时写入磁盘。
          子卷:Subvolume 是很优雅的一个概念。即把文件系统的一部分配置为一个完整的子文件系统,称之为 subvolume 。

采用 subvolume,一个大的文件系统可以被划分为多个子文件系统,这些子文件系统共享底层的设备空间,在需要磁盘空间时便从底层设备中分配,类似应用程序调用 malloc() 分配内存一样。可以称之为存储池。这种模型有很多优点,比如可以充分利用 disk 的带宽,可以简化磁盘空间的管理等

快照:支持快照的快照;
          透明压缩:就是用户调用数据的过程其实是一个解压缩的过程,但是这个过程,对用户来说是透明的,是自动进行的。

多设备管理:Btrfs 支持动态添加设备。用户在系统中增加新的磁盘之后,可以使用 btrfs 的命令将该设备添加到文件系统中。为了灵活利用设备空间,Btrfs 将磁盘空间划分为多个 chunk 。每个 chunk 可以使用不同的磁盘空间分配策略。比如某些 chunk 只存放 metadata,某些 chunk 只存放数据。一些 chunk 可以配置为 mirror,而另一些 chunk 则可以配置为 stripe 。这为用户提供了非常灵活的配置可能性。

文件系统创建: 
                mkfs.btrfs
               -L ‘LABEL‘:建立卷标。
               -d <type>: raid0, raid1, raid5, raid6, raid10, single指明确文件系统的类型
               -m <profile>: raid0, raid1, raid5, raid6, raid10, single, dup指明类型
               -O <feature>指明格式化是,启动的特性
                    -O list-all: 列出支持的所有feature;

挂载文件系统:
               mount -t btrfs /dev/sdb MOUNT_POINT

透明压缩机制:
               mount -o compress={lzo|zlib} DEVICE MOUNT_POINT

一下是btrfs filesystem子命令的用法:

btrfs filesystem show:显示详细信息

btrfs filesystem show --mounted:显示已经挂载的文件系统的详细信息

btrfs filesystem show --all-device:显示所有文件系统的详细信息

btrfs filesystem show /PATH:    显示指定的文件系统的详细

btrfs filesystem label:显示文件系统的label

btrfs filesystem resize:缩减或者增大文件系统的容量

btrfs filesystem df:显示已经挂载的文件系统的信息

btrfs filesystem sync同步操作

接下来我们来操作操作吧如下图所示范:

1.mkfs.btrfs -L mydata /dev/sdb /dev/sdc:就是把sdb和sdc两块硬盘格式化成以卷标为mydata的文件系统

2.mount /dev/sdb 或者/dev/sdc都可以挂载

3.btrfs filesystem df /mnt 可以看到挂载文件系统的详细信息

接着我们用blkid命令分别查看一下/dev/sdc和/dev/sdb

从下图中我们可以发现他们的UUID都是一样的,但是子UUID是不一样的,因此它是支持多卷的。

btrfs filesystem resize -10G /MYDATA   df -lh 通过这两个命令可以看到Btree系统的size减小到30G了

btrfs filesystem resize  +10G /MYDATA  df -lh 然后我给加回到40G了

如下图:

现在我们在认识认识btrfs device 下面的子命令吧:

btrfs device add <device> <path>:添加设备

btrfs device delete <device> <path>:从文件系统中移除或者去除设备

btrfs device ready <device>:

btrfs device stats [-z] <path>|<device>:

从上面的执行结果中,可以看到新增加的/dev/sdd的利用率是0,怎么样均衡的分布,接下来我们就用到btrfs balance 的子命令了:

btrfs balance  start:开始均衡文件系统

btrfs balance start <path> -d<filters>convert:修改数据的组织机制,即raid级别

btrfs balance start <path> -m<filters>convert修改元数据的组织机制,即raid级别

btrfs balance start <path> -s<filters>convert:修改系统的组织机制,即raid级别

btrfs balance pause<path>:停止

btrfs balance cancel<path>取消

btrfs balance resume<path>继续

btrfs balance status   <path>查看均衡状态

下图给出了均衡的过程

从下图我们可以看出我们移除一个设备后,其之前的Btree系统里面的内容还可以查看,说明Btree可以自动的将卸载设备的文件保存到其他的地方。

从上图可以看到我们可以改变Btree文件系统或者里面存储的数据和元数据的raid级别。
如果我们想把Btree文件系统进行子卷操作的话,有一下命令可以供我们选择使用:

btrfs  subvolume create <name>:创建子卷

btrfs  subvolume  delete <subvloume>删除子卷

btrfs  subvolume   list:列出所有子卷

btrfs  subvolume snapshot <source> <dest> | <name>:创建快照

btrfs  subvolume  get-default<path>:默认卷

btrfs  subvolume set-default<path>:设置默认卷

btrfs  subvolume show:用来查看子卷的详细信息

在创建子卷的过程中,如果父卷挂载了,则表示子卷也挂载完毕,如果想单独挂载,那么就得先卸载父卷

下图是挂载子卷的过程:

以下是创建快照的过程:

以上的这些简介都是一个初学者的浅薄认知,如有不适当的地方,欢迎指正和修改。

时间: 2024-10-12 17:26:15

btrfs文件系统的简介和用法的相关文章

Btrfs文件系统应用简介

一.Btrfs文件系统介绍 Btrfs(Butter FS),由Oracle于2007年宣布并进行中的COW(copy-on-write式)文件系统.目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单一文件大小的限制,总文件系统大小限制以及加入文件校验和特性.加入目前ext3/4未支持的一些功能,例如可写的磁盘快照(snapshots),以及支持递归的快照(snapshots of snapshots),内建磁盘阵列(RAID)支持,支持子卷(Subvolumes)的概念,

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

btrfs文件系统简介及CentOS7下实例 由Oracle于2007年宣布并进行中的COW(copy-on-write式)文件系统.目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单一文件大小的限制,总文件系统大小限制以及加入文件校验和特性.加入目前ext3/4未支持的一些功能,例如可写的磁盘快照(snapshots),以及支持递归的快照(snapshots of snapshots),内建磁盘阵列(RAID)支持,支持子卷(Subvolumes)的概念,允许在线调整文件

Linux学习笔记之 Btrfs文件系统简介及使用

Btrfs相关介绍: Btrfs 是一个 Linux 中的新的写时复制(copy-on-write (COW))的文件系统,目的是实现高级功能的同时着重与容错功能,修复功能以及易于管理.目前由Oracle, Red Hat, 富士通, Intel, SUSE以及其他组织共同开发,在 GPL 许可证下发行,同时向任何人公开代码. Btrfs核心特性: 多物理卷支持:btrfs可由多个底层物理卷组成:支持RAID,以联机"添加"."移除"."修改":

btrfs文件系统的管理及使用

Btrfs简介 文件系统似乎是内核中比较稳定的部分,多年来,人们一直使用 ext2/3,ext 文件系统以其卓越的稳定性成为了事实上的 Linux 标准文件系统.近年来 ext2/3 暴露出了一些扩展性问题,于是便催生了 ext4 .在 2008 年发布的 Linux2.6.19 内核中集成了 ext4 的 dev 版本. 2.6.28 内核发布时,ext4 结束了开发版,开始接受用户的使用.似乎 ext 就将成为 Linux 文件系统的代名词.然而当您阅读很多有关 ext4 的文章时,会发现都

Btrfs文件系统

一.Btrfs简介 Btrfs(B-tree,Butter FS,Better FS)是Oracle公司在2007年左右开始研发的一个开源文件系统,由GPL授权.该文件系统最重要的特性就是支持写时复制,写时复制在修复文件数据方面比传统就地修改的文件系统有着极大的优势,其目的是用来取代Linux早些年来一直使用的ext系列文件系统,ext系列文件系统的反删除功能一直不太好.Btrfs能够支持非常大的单个文件大小和总大小,并且有文件检查功能,快照功能.还能做累积性快照(快照的快照),能实现和增量备份

Linux学习之btrfs文件系统

btrfs是Linux系统上一种非常强大的文件系统,全称:B-tree,是Oracle公司基于GPL协定于2007年研发的.那么对于btrfs文件系统我们如何去创建使用它呢.下面我们将以CentOS7系统在实验中研究它. 一.了解btrfs的特性 btrfs文件系统有很多的特性 ,我们这边就它的几个核心的特性说下: 1.多物理卷支持:btrfs可由多个底层物理卷组成:支持RAID,以联机"添加"."移除"."修改". 2.写时复制更新机制:复制.

btrfs文件系统、压缩工具及for语句、程序包管理

btrfs(b-tree.butter fs.better fs)oracle 公司研发的替代ext系列的cow(写时复制)机制的文件系统,并遵循GPL协定 核心特性:1.多物理卷支持:支持将多个底层物理设备组织成同一个文件系统,类似物理卷,btrfs可由多个地城物理卷组成,支持raid,以联机实现物理卷的"添加"."移除"."修改"2.写时复制更新机制(CoW);复制.更新及替换指针,而非"就地"更新不修改文件时,复制的文件

btrfs文件系统学习

btrfs文件系统由Oracle开发,btrfs设计目标为取代早期ext文件系统. 核心特性: 1.多物理卷支持:btrfs可由多个底层物理卷组成,支持RAID,以联机"添加"."移除"."修改". 2.写时复制更新机(COW):复制.更新及替换指针,而非就地修改更新. 3.数据及元数据效验码(checksum). 4.支持子卷(sub_volume). 5.快照及快照的快照. 6.透明压缩,支持两种压缩算法lzo和zlib通过命令mount -

centos7之btrfs文件系统

btrfs文件系统 一.Btrfs(B-tree,butter FS,better FS) btrfs是centos7默认支持的文件系统,btrfs有着ext系列文件系统之外的众多功能,可是说功能非常强大: 特性 1. 支持跨物理设备(磁盘及分区)创建,数据和元数据分别支持RAID,可在线添加.移除.修改等操作 其支持诸多RAID,譬如数据支持raid0,raid1 raid5,raid6,raid10,single 元数据支持raid0, raid1, raid5, raid6, raid10