http://blog.chinaunix.net/uid-9185047-id-445141.html

上一篇介绍完btrfs文件系统  现在来说一下简单的使用

创建文件系统

mkfs.btrfs 命令建立一个 btrfs 格式的文件系统。可以用如下命令在设备 sda5 上建立一个 btrfs 文件系统,并将其挂载到 /btrfsdisk 目录下:

 #mkfs.btrfs /dev/sda5#mkdir /btrfsdisk#mount – t btrfs /dev/sda5 /btrfsdisk

这样一个 Btrfs 就在设备 sda5 上建立好了。值得一提的是在这种缺省情况下,即使只有一个设备,Btrfs 也会对 metadata 进行冗余保护。如果有多个设备,那么您可以在创建文件系统的时候进行 RAID 设置。详细信息请参见后续的介绍。

这里介绍其他几个 mkfs.btrfs 的参数。

Nodesize 和 leafsize 用来设定 btrfs 内部 BTree 节点的大小,缺省为一个 page 大小。但用户也可以使用更大的节点,以便增加 fanout,减小树的高度,当然这只适合非常大的文件系统。

Alloc-start 参数用来指定文件系统在磁盘设备上的起始地址。这使得用户可以方便的预留磁盘前面的一些特殊空间。

Byte-count 参数设定文件系统的大小,用户可以只使用设备的一部分空间,当空间不足时再增加文件系统大小。

修改文件系统的大小

当文件系统建立好之后,您可以修改文件系统的大小。 /dev/sda5 挂载到了 /btrfsdisk 下,大小为 800M 。假如您希望只使用其中的 500M,则需要减小当前文件系统的大小,这可以通过如下命令实现:

#dfFilesystem   1K-blocks     Used      Available   Use%   Mounted on/dev/sda1    101086        19000       76867         20%     /boot/dev/sda5    811248         32       811216         1%     /btrfsdisk#btrfsctl – r -300M /btrfsdisk#dfFilesystem  1K-blocks      Used      Available   Use%   Mounted on/dev/sda1    101086        19000       76867         20%     /boot/dev/sda5    504148         32       504106         1%     /btrfsdisk

同样的,您可以使用 btrfsctl 命令增加文件系统的大小。

创建 Snapshot

下面的例子中,创建快照 snap1 时系统存在 2 个文件。创建快照之后,对 test1 的内容进行修改。再回到 snap1,打开 test1 文件,可以看到 test1 的内容依旧是之前的内容。

#ls /btrfsdisktest1 test2#vi test1This is a test#btrfsctl – s snap1 /btrfsdisk#vi test1Test1 is modified#cd /btrfsdisk/snap1#cat test1This is a test

可以从上面的例子看到,快照 snap1 保存的内容不会被后续的写操作所改变。

创建 subvolume

使用 btrfs 命令,用户可以方便的建立 subvolume 。假设 /btrfsdisk 已经挂载到了 btrfs 文件系统,则用户可以在这个文件系统内创建新的 subvolume 。比如建立一个 /sub1 的 subvolume,并将 sub1 挂载到 /mnt/test 下:

#mkdir /mnt/test#btrfsctl – S sub1 /btrfsdisk#mount – t btrfs – o subvol=sub1 /dev/sda5 /mnt/test

Subvolme 可以方便管理员在文件系统上创建不同用途的子文件系统,并对其进行一些特殊的配置,比如有些目录下的文件关注节约磁盘空间,因此需要打开压缩,或者配置不同的 RAID 策略等。目前 btrfs 尚处于开发阶段,创建的 subvolme 和 snapshot 还无法删除。此外针对 subvolume 的磁盘 quota 功能也未能实现。但随着 btrfs 的不断成熟,这些功能必然将会进一步完善

创建 RAID

mkfs 的时候,可以指定多个设备,并配置 RAID 。下面的命令演示了如何使用 mkfs.btrfs 配置 RAID1 。 Sda6 和 sda7 可以配置为 RAID1,即 mirror 。用户可以选择将数据配置为 RAID1,也可以选择将元数据配置为 RAID1 。

将数据配置为 RAID1,可以使用 mkfs.btrfs 的 -d 参数。如下所示:

#mkfs.btrfs – d raid1 /dev/sda6 /dev/sda7#mount – t btrfs /dev/sda6 /btrfsdisk

添加新设备

当设备的空间快被使用完的时候,用户可以使用 btrfs-vol 命令为文件系统添加新的磁盘设备,从而增加存储空间。下面的命令向 /btrfsdisk 文件系统增加一个设备 /sda8

#btrfs-vol – a /dev/sda8 /btrfsdisk

在最新的Debian下变成了btrfs device add 了。

SSD 支持

用户可以使用 mount 参数打开 btrfs 针对 SSD 的优化。命令如下:

#mount – t btrfs – o SSD /dev/sda5 /btrfsdisk

开启压缩功能

用户可以使用 mount 参数打开压缩功能。命令如下

#mount – t btrfs – o compress /dev/sda5 /btrfsdisk

同步文件系统

为了提高效率,btrfs 的 IO 操作由一些内核线程异步处理。这使得用户对文件的操作并不会立即反应到磁盘上。您可以做一个实验,在 btrfs 上创建一个文件后,稍等 5 到 10 秒将系统电源切断,再次重启后,新建的文件并没有出现。

对于多数应用这并不是问题,但有些时候用户希望 IO 操作立即执行,此时就需要对文件系统进行同步。下面的 btrfs 命令用来同步文件系统:

#btrfsctl – c /btrfsdisk

Debug 功能

Btrfs 提供了一定的 debug 功能,对于想了解 Btrfs 内部实现原理的读者,debug 将是您最喜欢的工具。这里简单介绍一下 debug 功能的命令使用。

下面的命令将设备 sda5 上的 btrfs 文件系统中的元数据打印到屏幕上。

#btrfs-debug-tree /dev/sda5

btrfs 使用方法相关推荐

  1. 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群

    作者:Jeffrey Hunter 了解如何以低于 2,700 美元的费用在 Oracle Enterprise Linux 上安装并配置 Oracle RAC 11g 第 2 版开发集群. 本指南中 ...

  2. Java面试题大全2021版

    一.Java 基础 JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Run ...

  3. 镁光ssd管理工具 linux,在 SSD 上使用 Btrfs 文件系统的相关优化

    优化挂载参数 在 Linux 中挂载 SSD 上的 btrfs,可以采用各种参数进行优化: # UUID=/btrfs defaults,ssd,discard,noatime,compress=lz ...

  4. 新一代 Linux 文件系统 btrfs 简介

    btrfs 的特性和使用 Btrfs 被称为是下一代 Linux 文件系统.近年来 ext2/3 遇到越来越多的扩展性问题,在期待 ext4 的同时,人们发现了 btrfs,据说它采用了很多先进的文件 ...

  5. Linux 中 7 个判断文件系统类型的方法

    文件通过文件系统在磁盘及分区上命名.存储.检索以及更新,文件系统是在磁盘上组织文件的方式. 文件系统分为两个部分:用户数据和元数据(文件名.创建时间.修改时间.大小以及目录层次结构中的位置等). 在本 ...

  6. 资料收集新一代 Linux 文件系统 btrfs 简介

    来自: http://www.ibm.com/developerworks/cn/linux/l-cn-btrfs/ Btrfs 简介 文件系统似乎是内核中比较稳定的部分,多年来,人们一直使用 ext ...

  7. linux5.9安装教程,Linux内核5.9的最重要功能及安装方法

    原标题:Linux内核5.9的最重要功能及安装方法 Linux内核5.9带来了吸引数据中心管理员的诸多性能提升.本文作者着重介绍了改进之处,并介绍了如何安装主线内核. 与5.8一样,Linux内核5. ...

  8. linux 识别文件类型,技术|Linux 中 7 个判断文件系统类型的方法

    文件通过文件系统在磁盘及分区上命名.存储.检索以及更新,文件系统是在磁盘上组织文件的方式. 文件系统分为两个部分:用户数据和元数据(文件名.创建时间.修改时间.大小以及目录层次结构中的位置等). 在本 ...

  9. 大数据环境下的存储系统构建:挑战、方法和趋势

    大数据环境下的存储系统构建:挑战.方法和趋势 陈游旻, 李飞, 舒继武 清华大学计算机科学与技术系,北京 100084 摘要:互联网规模的迅速扩展促使全球数据总量呈现爆炸式的增长.物联网.电子商务等新 ...

最新文章

  1. POJ-1041 John's trip
  2. IOS7原生API进行二维码条形码的扫描
  3. java jersey使用总结_jersey使用指南
  4. Django+JWT实现Token认证
  5. java学习笔记十三
  6. Kubernetes与Docker基本概念与常用命令对照
  7. 使用 jQuery Mobile 与 HTML5 开发 Web App (十五) —— jQuery Mobile 与响应式
  8. BEIT:基于图像重建进行预训练!微软提出BEIT,Top-1准确率达86.3%!代码已开源!...
  9. 同质异质网络——(F(fraud) A(Analytics) UDPSNT(Wylie_2015))
  10. Html5 JumpStart学习笔记2:CSS Selectors and Style Properties
  11. 2017web前端实习生面试总结 - 360奇舞团 京东商户物流
  12. jdbc连接带密码的access数据库
  13. 银行登录页面html代码,银行管理系统(带界面)
  14. 软件架构师的12项修炼[2]——关系技能修炼(2)——领导力、政治
  15. 禁止使用搜狗浏览器打开QQ邮箱,更换成其他邮箱
  16. 10个优秀的Golang开源库类,武装生产力
  17. 【STM32笔记】HAL库低功耗模式配置(ADC唤醒无法使用、低功耗模式无法烧录解决方案)
  18. 抓包 把笔记本改造成无线路由器 —— 手机抓包牛刀小试
  19. Unity3D空战游戏模板 Air Warfare Pro
  20. 如何解决用户出差,脱域的问题

热门文章

  1. STM32F103学习笔记(1)——stlink和miniusb下载两种方式
  2. python人机对战小游戏
  3. eclipse集成php插件
  4. qiuzitao深度学习之PyTorch实战(六)
  5. sofa协议服务器,撸了几天的sofa-tracer之后,我悟了
  6. 朱其罡:推进主流芯片代码进主干,完善OpenHarmony芯片生态支撑
  7. 易语言从c盘开始搜索文件,易语言全盘查找指定文件并返回地址
  8. [译] 如何在六个月或更短的时间内成为 DevOps 工程师,第一部分 :基础
  9. Python生成Code128C条形码实现——轻松打造高效标识码!
  10. HT7017应用笔记