linux btrfs文件系统管理与应用

时间:2022-06-02 22:59:47

btrfs文件系统管理与应用

1、btrfs文件系统

基本介绍

  btrfs文件系统在CentOS7.x上属于技术预览版

  btrfs文件系统英文名:B-tree  FileSystem或者Butter FileSystem或者Better FilSystem,遵循GPL协议,是2007年由oracle研发。btrfs文件系统支持写时复制(CoW)。设计目标取代早期linux发行版上的ext3/ext4文件系统的不足。而后在CentOS6.x版本已经对ext系列文件系统不足提出了一个更为可靠的文件系统xfs。这个是早期unix提供的文件系统

  btrfs文件系统设计就是用来取代ext系列的文件系统,它的核心特性包括:

    支持非常大的单个文件

    实现文件检查

    快照可以对单个文件进行

    内建支持RAID功能

    多物理卷支持(btrfs文件系统可以有多个底层物理卷组成)

    支持写时复制更新机制(CoW):

    数据及元数据校验码:极大保证数据的可靠性

    支持子卷

    直接支持快照:同时也支持累积性快照

    支持透明压缩:能够存储文件时自动压缩,在读取文件时自动解压,但是,这个过程会特别消耗cpu时钟周期

2、btrfs文件系统的使用

创建btrfs文件系统使用命令mkfs.btrfs

  基本语法

    mkfs.btrfs   [options...]  <device>

  常用选项

    -L  LABEL:指定文件系统的卷标

    -m  <metadata_profile>:指定元数据是否要跨多个底层物理卷,btrfs文件系统底层可以有多个物理设备组成。跨越的时候基于什么机制(metadata_profile)存储元数据呢?可以选择有RAID0、RAID1、RAID5、RAID6、RAID10、RAID01、single等

    -d  type:指定数据存放时是基于什么机制进行存放的。跟元数据差不多。type可以选择有RAID0、RAID1、RAID5、RAID6、RAID10、RAID01、single、dup等

    -o   <feature[,.....]>:通过-o选项可以指名btrfs文件系统开启那些特性

      feature包括:

        -O  list-all:列出btrfs文件系统的所有特性

btrfs文件系统的管理

  btrfs  filesystem命令

    基本语法

       btrfs  filesystem  <subcommand>  <args>

        subcommand:btrfs  filesystem这个命令内建了许多子命令,如下

          df  [options]  <path> :查看当前挂载btrfs文件系统空间使用情况

            options:表示可选的选项,如下(常用选项)

              -h:表示人类可读的方式显示空间使用情况

            path:表示btrfs文件系统挂载的路径

          defragment  [options] <file>|<dir> [<file>|<dir>...]:表示清除磁盘的碎片,做碎片整理的

           resize  [<devid>:][+/-]<size>[kKmMgGtTpPeE]|[<devid>:]max <path>:修改btrfs文件系统的大小的  

          label  [<dev>|<mountpoint>] [<newlabel>]:表示指明或者显示卷标

          show [options] [<path>|<uuid>|<device>|<label>]:显示btrfs文件系的一些关于设备和空间分配的附加信息

  btrfs文件系统的挂载

    mount  -t  btrfs  指定磁盘设备  挂载点

  btrfs文件系统挂载时开启透明压缩

    mount  -o  compress={lzo|zlib}  指定磁盘设备  挂载点

调整btrfs文件系统的大小

  将btrfs文件系统大小减少10G

    btrfs  filesystem  resize  -10G  /mydata

将btrfs文件系统的大小增加5G

  btrfs  filesystem  resize  5G  /mydata

将btrfs文件系统大小增加到最大

  btrfs  filesystem  resize  max  /mydata

将btrfs文件系统大小增加到最小

  trfs  filesystem  resize  max  /mydata

调整以后可以通过命令查看调整后的大小

  btrfs  filesystem  df  -h  /dev/sdb

btrfs  device命令是支持联机添加或者减少磁盘设备,并且不会影响原有数据,并且拆除设备时,会将拆除设备的数据移动到其他的设备上。

  基本语法

    btrfs  device  <subcommand> <args>

      subcommand:这个命令内建了许多子命令,如下:

        add [-Kf] <dev> [<dev>...] <path>:表示增加一个设备到btrfs文件系统

          使用案例

            btrfs  device  add  /dev/sdd  /mydata

          使用注意

            通过这个命令增加了一个设备文件进入btrfs文件系统,但是新的数据不会存放到这个新加的设备中。当数据要进行存储时,如果想均衡向新设备文件中输入数据。使用btrfs  balance命令

btrfs   balance命令实现联机数据在磁层各个设备的均衡。同时我们还可以使用这个命令修改数据或者元数据的组织RAID级别(当你修改数据或者元数据级别时,指定的级别没由呢么多设备文件是不会修改成功的)

  基本语法

    btrfs  balance  <subcommand> <args>

      subcommand:这个命令内建了许多子命令,如下:

        cancel  <path>:取消正在执行的均衡操作

        pause  <path>:暂停正在执行的均衡操作

        resume <path>:继续执行均衡操作

        start [options] <path>:开始执行均衡操作

  使用注意

    使用这个balance操作时会占据电脑相当大的IO能力,所以当系统服务繁忙时,我们可以用过暂停balance操作来停止均衡执行

btrfs文件系统管理或者挂载子卷

  基本语法

     btrfs  subvolume  <subcommand>  [<args>]

      subcommand:这个命令内建了许多子命令,如下:

        create  [-i <qgroupid>]  [<dest>/] <name>:创建一个子卷

        delete  [options]  <subvolume>  [<subvolume>...]:删除一个子卷或者快照卷

        find-new <subvolume> <last_gen>:寻找btrfs文件系统中最近修改过的子卷

        get-default <path>:查看btrfs文件系统中那个是默认的子卷

        list [options] [-G [+|-]<value>] [-C [+|-]<value>] [--sort=rootid,gen,ogen,path]  <path>:列出btrfs文件系统的所有或者指定子卷的详细信息

        snapshot  [-r]  <source>  <dest>|[<dest>/]  <name>:创建一个子卷快照

          注意:快照卷必须与原来的子卷在同一个父卷下

   使用案例

     在父卷mydata下创建子卷logs

       btrfs  volume  create  /mydata/logs

  使用注意

    如果要挂载子卷,需要将父卷卸载下来,单独挂载子卷上。如果挂载到父卷上,那么子卷会自动挂载

  挂载子卷步骤:

    第一步:在父卷下面创建一个子卷

      btrfs  volume  create  /mydata/logs

    第二步:如果父卷被挂载那么卸载父卷

      umount  /mydata

    第三步:使用mount命令挂载子卷

      mount  -o   subvol=logs  /dev/sdb  /mnt

      mount  -o   subvolid=子卷id  /dev/sdb  /mnt

      注意:可以通过btrfs  subvolume  list  父卷来查看子卷的id

    第四步:列出子卷的详细信息

      btrfs  subvolume  show  /mnt

    挂在父卷的注意事项

      当我们挂载父卷时,子卷里边的数据都能通过父卷的访问路径自动访问到。但是如果你单独挂载子卷,那么父卷就没法访问了

3、怎么ext系列文件系统转化成btrfs文件系统?

转换分为两步:

第一步:将ext系列文件系统挂载的挂载点卸掉

第二步:使用btrfs-convert  设备文件。将ext系列文件系统转换成btrfs文件系统

第三步:查看是否转换成功,使用命令btrfs  filesystem  list  设备文件

第四不:将这个设备文件挂载到挂载点上

4、怎么btrfs文件系统转化成ext系列文件系统?(回滚)

转换分为两步:

第一步:将btrfs文件系统挂载的挂载点卸掉

第二步:使用btrfs-convert  -r 设备文件。-r选项表示回滚的意思。将btrfs文件系统转换成ext系列文件系统

第三步:查看是否转换成功,使用命令blkid命令查看当前设备文件的简要信息

第四不:将这个设备文件挂载到挂载点上

linux btrfs文件系统管理与应用的更多相关文章

  1. linux的文件系统管理&lpar;ext4-tune2fs-e2fsck-xfs文件系统&rpar;

    文件系统管理 文件系统是Linux系统存放文件的空间.文件系统的类型有很多种,CentOS支持多种文件系统,目前常用的是ext4和xfs文件系统.我们以ext4文件系统为例来说明对文件系统的管理. U ...

  2. Linux高级文件系统管理&lpar;8&rpar;

    如果您的 Linux 服务器有多个用户经常存取数据时,为了维护所有使用者在硬盘容量的公平使用,磁碟配额 (Quota) 就是一项非常有用的工具,另外,如果你的用户常常抱怨磁盘容量不够用,那么更进阶的文 ...

  3. linux备忘录-文件系统管理

    Extx 文件系统原理 block group 每个分区(partition)的组成为 boot sector -> block group -> block group -> bl ...

  4. Linux学习 -- 文件系统管理

    1 分区和文件系统 分区类型 主分区:<= 4个 扩展分区:只能有一个,也算主分区的一种   不能存储数据和格式化,只能用来包含逻辑分区 逻辑分区:扩展分区中划分的   IDE--最多59个   ...

  5. Linux进阶文件系统管理之RAID

    RAID 1.引言 RAID全称Redundant Arrays of Inexpensive Disks / Redundant Arrays of Independent Disks,即独立冗余磁 ...

  6. 『学了就忘』Linux文件系统管理 — 57、Linux文件系统介绍

    目录 1.了解硬盘结构(了解即可) (1)硬盘的逻辑结构 (2)硬盘接口 2.Linux文件系统介绍 (1)Linux文件系统的特性 (2)Linux常见文件系统 3.整理一下对文件系统的认识 在了解 ...

  7. linux下fdisk分区管理、文件系统管理、挂载文件系统等

    分区管理工具有:fdisk, parted, sfdisk fdisk:对于一块硬盘来讲,最多只能管理15分区: # fdisk -l [-u] [device...]  查看硬盘设备分区信息 # f ...

  8. 【linux相识相知】磁盘分区及文件系统管理详解

    磁盘,提供持久的数据存储,它不像我们的内存,如果突然断电了,在内存中的数据一般都会被丢掉了,内存中的数据在保存的时候,会被写到硬盘里面,磁盘也是一种I/O设备. 我们都知道磁盘分区完成之后,还要进行格 ...

  9. Linux:Day7&lpar;下&rpar; 磁盘管理、文件系统管理

    Linux入门 Linux系统管理: 磁盘管理.文件系统管理 RAID基本原理.LVM2 网络管理:TCP/IP协议.Linux网络属性配置 程序包管理:rpm,yum 进程管理:htop,glanc ...

随机推荐

  1. C&num; Socket连接 无法访问已释放的对象

    在进行Socket长连接时,若服务器或客户端出现异常时,另外一端对Socket对话进行操作时,程序会出现无法访问已释放的对象的问题.例如客户端出现问题主动断开Socket时,当服务器操作Socket时 ...

  2. 使用ACE遇到无法打开包括文件&colon;&ldquo&semi;inttypes&period;h&rdquo&semi;的解决方案

    本来想使用ACE_Get_Opt类来做一个命令行解析的功能,但是当项目中配置好了ACE库的路径后,编译时遇到"无法打开包括文件: inttypes.h : No such file or d ...

  3. 如何申请Autodesk ReCap 360 photo的云币(Cloud Credit&rpar;

    在之前的博客中我介绍过Autodesk的照片建模云服务—Autodesk ReCap 360 photo,通过Autodesk ReCap 360 photo,你可以非常方便的通过照片生成三维模型.如 ...

  4. iOS开源项目教程大合集

    UI篇 1.MMDrawerController http://www.cnblogs.com/shangdahao/p/3142204.html 2.SVPullToRefresh http://w ...

  5. 【转】kylin优化

    转自: http://www.bitstech.net/2016/01/04/kylin-olap/ http://www.csdn.net/article/2015-11-27/2826343 ht ...

  6. java环境变量设置方法

    1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08:    2.安装完成后,右击“我的电脑”,点击“属性”:         3.选择“高 ...

  7. 大数据技术之&lowbar;19&lowbar;Spark学习&lowbar;03&lowbar;Spark SQL 应用解析小结

    ========== Spark SQL ==========1.Spark SQL 是 Spark 的一个模块,可以和 RDD 进行混合编程.支持标准的数据源.可以集成和替代 Hive.可以提供 J ...

  8. unix2dos和dos2unix处理换行问题

    今天同事QQ给发来一个文件内容如下: 希望把文件内容转换为update table_name set col_name=第一列 where col_name=第二列;这种SQL格式,使用UE列模式秒秒 ...

  9. Cesium添加水面

    var viewer = new Cesium.Viewer('cesiumContainer');var waterPrimitive = new Cesium.Primitive({ //show ...

  10. B&period; Sleepy Game

    http://codeforces.com/problemset/problem/936/B Petya and Vasya arranged a game. The game runs by the ...