我的编程空间,编程开发者的网络收藏夹
学习永远不晚

3.btrfs管理及应用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

3.btrfs管理及应用

btrfs简介:

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

 

btrfs特性:

扩展性 (scalability) 相关的特性,btrfs 最重要的设计目标是应对大型机器对文件系统的扩展性要求。 Extent,B-Tree和动态 inode 创建等特性保证了 btrfs 在大型机器上仍有卓越的表现,其整体性能而不会随着系统容量的增加而降低。

其次是数据一致性 (dataintegrity) 相关的特性。系统面临不可预料的硬件故障,Btrfs 采用 COW 事务技术来保证文件系统的一致性。 btrfs 还支持 checksum,避免了 silent corrupt 的出现。而传统文件系统则无法做到这一点。

第三是和多设备管理相关的特性。 Btrfs 支持创建快照 (snapshot),和克隆 (clone) 。 btrfs 还能够方便的管理多个物理设备,使得传统的卷管理软件变得多余。

最后是其他难以归类的特性。这些特性都是比较先进的技术,能够显著提高文件系统的时间 / 空间性能,包括延迟分配,小文件的存储优化,目录索引等。

 

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,则需要减小当前文件系统的大小,这可以通过如下命令实现:

#df

 Filesystem  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

 #df

 Filesystem 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 /btrfsdisk

 test1 test2

 #vi test1

 This is a test

 #btrfsctl – s snap1 /btrfsdisk

 #vi test1

 Test1 is modified

 #cd /btrfsdisk/snap1

 #cat test1

 This 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 – draid1 /dev/sda6 /dev/sda7

 #mount – t btrfs /dev/sda6 /btrfsdisk

 

添加新设备

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

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

 

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

 

 


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

3.btrfs管理及应用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

3.btrfs管理及应用

btrfs简介:Btrfs(通常念成Butter FS),由Oracle于2007年宣布并进行中的COW(copy-on-write式)文件系统。目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单一文件大小的限制,总文
2023-01-31

Outlook应用指南(3)——邮件管理

你的邮箱正在被越来越多的电子邮件所充斥,面对大量的邮件,怎样才能实现高效的管理呢?如何才能快速找到所需的邮件呢?以下给大家介绍一些Outlook的相关功能和操作技巧。1.  为邮件添加后续标志后续标记功能可以帮助你用不同的颜色来标记不同类型
2023-01-31

Kafka及场景应用(中3)

版权声明:欢迎转载,但是看在我辛勤劳动的份上,请注明来源:http://blog.csdn.net/yinwenjie(未经允许严禁用于商业用途!)                https://blog.csdn.net/yinwenji
2023-01-31

Outlook应用指南(3)——联系人管

我们在日常生活中,会将一些常用的电话记在电话本中,以便在需要时能够立即查阅。Outlook的“联系人”列表也具有相似的作用,你可以建立一些同事和亲朋好友的通讯簿,不仅能记录他们的电子邮件地址,还可以包括电话号码、联系地址和生日等各类资料。以
2023-01-31

nagios 3.X 简单部署及应用

################################# 欢迎与我交流                 ## 作者:守住每一天             ## QQ: 48431359                ## BLOG:
2023-01-31

Linux Basic 3:用户和组管理

1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 # who | cut -d' ' -f1 | sort -u        root2、取出最后登录到当前系统的用户的相关信息。# id `who
2023-01-31

项目管理系统定义、种类及应用

项目管理系统是一种用于管理和跟踪项目进度的工具,它可以帮助项目经理和团队成员更好地规划、组织、控制和监督项目活动,确保项目的顺利完成。本文将详细说明项目管理系统的种类和应用。一、项目管理系统的种类手动管理:这是最传统的项目管理方式,主要依赖于人工记录、跟踪和协调项目活动。这种方法效率低、易出错,而且难以在项目规模
项目管理系统定义、种类及应用
2023-12-13

python 3层装饰器及应用场景

#!/usr/bin/env python# -*- coding:utf-8 -*-# author: Changhua Gongimport time, functools'''实现装饰器:1.函数即变量;2.高阶函数;    1)把一
2023-01-31

客户管理工具的种类及其应用

简介:客户管理工具是企业管理中不可或缺的一部分,它们可以帮助企业更好地了解客户需求、提高客户满意度和忠诚度。本文将介绍客户管理工具的种类及其应用。1.CRM系统(CustomerRelationshipManagement)CRM系统是一种用于管理和跟踪客户关系的软件工具,它可以帮助企业更好地了解客户需求、提高客户满意
客户管理工具的种类及其应用
2024-01-22

3、Gerrit用户项目权限管理

在gerrit中权限控制是基于群组的. 每个用户有一个或者多个群组, 访问权限被赋予这些群组.访问权限不能赋予个人用户在Gerrit系统自带下面的群组Anonymous UsersChange OwnerProject OwnersRegi
2023-01-31

客户管理系统的重要性及其应用

客户管理系统是企业中不可或缺的重要工具,它可以帮助企业更好地管理和维护客户关系,提高客户满意度和忠诚度,从而促进业务的发展和增长。本文将探讨客户管理系统的定义、特点和应用,并举例说明其在不同行业的实际应用。客户管理系统的定义和特点客户管理系统是一种基于信息技术的工具,用于收集、存储、分析和管理客户数据,以便更好地
客户管理系统的重要性及其应用
2024-01-20

工程管理系统的重要性及其应用

工程管理系统是一种用于管理工程项目的技术工具,它能够帮助项目团队高效地组织、协调和控制工程项目的进度、资源和质量等方面的信息。本文将介绍工程管理系统的重要性和应用,并通过实例来展示其在实际项目中的具体运用。1.工程管理系统的重要性工程管理系统在现代工程项目中扮演着至关重要的角色。首先,它能够帮助项目团队更好地组织和管理
工程管理系统的重要性及其应用
2024-01-16

如何理解eBay的Hadoop集群应用及大数据管理

这篇文章主要讲解了“如何理解eBay的Hadoop集群应用及大数据管理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解eBay的Hadoop集群应用及大数据管理”吧!eBay, 全球最
2023-06-10

win8应用商店卸载和安装以及管理应用图文教程

Win8应用操作:安装、卸载和管理操作 下面我们将说说Win8的一大重点,Win8应用的相关操作。通过Windows Store应用商店,我们就可以搜索和安装自己喜欢的应用程序。安装好的应用会直接以磁贴的形式钉在Win8的开始屏幕上,然后大
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录