btrfs(通常念成Butter FS),由Oracle2007年开发的遵循GPL协定的开源文件系统。Btrfs 支持创建快照 (snapshot)以及支持递归的快照(即支持快照的快照),内建磁盘阵列(RAID)支援,支持子卷,支持写时复制更新机制,即cow机制,支持数据及元数据的效验码机制,自动压缩和解压缩的透明压缩机制。btrfs 文件系统可以单独使用于一个设备,如硬盘、分区等,也可以应用于整个系统。

一 btrfs文件系统的创建

  btrfs --help:获取相关帮助

  mkfs.btrfs  [option] DEVICE  创建btrfs文件系统

      -L:指定卷标

      -d :指明数据如何存放,指定raid级别

      -m:指明元数据如何存放

      -O : 指明特性

  mkfs.btrfs - o list-all  显示支持的所有特性

下面演示如何创建btrfs文件系统:首先再虚拟机中加入三块大小均为20G的磁盘,在这三块磁盘创建btrfs文件系统

Btrfs文件系统管理及应用_第1张图片


btrfs filesystem show :显示btrfs文件系统属性,它的常用子命令如下:

               --mounted:显示已经挂载的btrfs文件系统属性

               --all-devices:显示所有btrfs文件系统属性

               resize {+|-}{Gg|Mm|Bb} 挂载点 :增加或者减小挂载点的btrfs文件系统的大小

Btrfs文件系统管理及应用_第2张图片

使用blkid命令也可以查看,如下所示:

wKioL1YKU8LyYAjOAAHlUzZR1tM438.jpg

sdb与sdc的卷标为mydate,两块磁盘创建为一个btrfs系统,故两者UUID相同,但二者为一个btrfs系统下的两个子卷,故子卷UUID_SUB不同

挂载btrfs文件系统:   mount -t btrfs /dev/DEVICE MOUNT_POINTwKioL1YKZOfB8MquAAB34kitXOI711.jpg

wKiom1YKZN3w6z9FAAFOiB9yXvs307.jpg


btrfs的透明压缩机制介绍:

mount -o compress={lzo|zlib} 挂载设备 挂载点

wKioL1YKdWSi72OBAAB8Yg8JOxg163.jpg

wKiom1YKdVqTY7OrAAFUVWDP8aI244.jpg

使用了透明压缩机制后,再向此设备写入文件时会自动启用压缩机制存放。

减小btrfs文件系统的容量:

Btrfs文件系统管理及应用_第3张图片

增加5G容量:增加减小的是逻辑边界,最大不能超过其物理边界,此处为40G,要想大于40G,需要添加物理设备,才能继续扩大容量

Btrfs文件系统管理及应用_第4张图片

下面说明如何添加物理设备:

    btrfs device

            add 设备 挂载点:添加物理设备

          delete 设备 挂载点:移除物理设备

wKiom1YKfF2wwjMEAABgYL3O-x0505.jpg

Btrfs文件系统管理及应用_第5张图片

拆除一个物理设备

Btrfs文件系统管理及应用_第6张图片

子卷

 子卷相当于一个独立的文件系统,可以单独挂载和分配大小等。并且子卷可以方便管理员在文件系统上创建不同用途的子文件系统,并对其进行一些特殊 的配置,比如有些目录下的文件关注节约磁盘空间,因此需要打开压缩,或者配置不同的 RAID 策略等。

创建子卷:btrfs subvolume create  

列出子卷:btrfs subvolumelist [-p]

Btrfs文件系统管理及应用_第7张图片


删除子卷:btrfs subvolume delete

wKiom1YKgfqRHaHoAADEteS0gHg615.jpg

挂载子卷:mount -t btrfs -osubvol=/path/subvolume /dev/sd* /path

   单独挂载子卷则只能访问子卷内容,若挂载父卷,则其子卷中的内容也可访问

快照

 快照可以理解为文件系统某一瞬间的影像,其最大的好处就是可以用最小

的空间起到备份整个文件系统的作用。快照在系统中会被识别为子卷。因此要

列出和删除快照可以使用子卷相同的操作。快照必须与原卷在同一个卷组中。

 

创建快照:btrfs subvolume snapshot [-r] [/]

wKioL1YKhF6i09mYAADTBtyUEzs308.jpg

注:添加-r 将创建只读快照

删除快照:btrfs subvolume delete

 wKioL1YKhR3TnkRWAADONocY0FM349.jpg