zoukankan      html  css  js  c++  java
  • linux btrfs文件系统管理与应用

    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)存储元数据呢?可以选择有RAID0RAID1RAID5RAID6RAID10RAID01single

        -d  type:指定数据存放时是基于什么机制进行存放的。跟元数据差不多。type可以选择有RAID0RAID1RAID5RAID6RAID10RAID01singledup

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

          feature包括:

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

    btrfs文件系统的管理

      btrfs  filesystem命令

        基本语法

           btrfs  filesystem  <subcommand>  <args>

            subcommandbtrfs  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命令查看当前设备文件的简要信息

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

  • 相关阅读:
    HDU-2896 病毒侵袭 字符串问题 AC自动机
    HDU-2222 Keywords Search 字符串问题 AC自动机
    pyhton3 logging模块
    pyhton3 sys模块
    pyhton3 hashlib模块
    pyhton3 os模块
    pyhton3 time模块
    pyhton3 random模块
    变种XSS:持久控制
    富文本存储型XSS的模糊测试之道
  • 原文地址:https://www.cnblogs.com/lanxiansen/p/10533411.html
Copyright © 2011-2022 走看看