BTRFS特性及常用操作

BTRFS是一种功能强大的新型文件系统,下面我们来了解一下它的特性及常用操作

核心特性:
        多物理卷支持:btrfs可由多个底层物理卷组成;支持RAID,以联机“添加”、“移除”,“修改”;
        写时复制更新机制(CoW):复制、更新及替换指针,而非“就地”更新;
        数据及元数据校验码:checksum检测完整性
        子卷:sub_volume
        快照:支持快照的快照;
        透明压缩:存储时执行压缩操作,并且支持不解压查看,节省空间

案例流程:

  1. 创建BTRFS:

    使用mkfs.btrfs
                -L ‘LABEL‘:指定LABEL创建文件系统
                -d <type>: 指明数据的跨磁盘存放形式,用于提升IO效率或数据安全性,支持raid0, raid1, raid5, raid6, raid10, single
                -m <profile>: 指明元数据的跨磁盘存放形式,用于提升IO效率或数据安全性,支持raid0, raid1, raid5, raid6, raid10, single, dup
                -O <feature>:指明开启某些文件系统特性
                    -O list-all: 列出支持的所有feature;

2.BTRFS文件系统的使用

支持诸多子命令来实现它强大的功能

创建btrfs文件系统:

查看:

查看label:

使用blkid查看,发现sdb1和sdc1的UUID一样,SUB_UUID不一样:

挂载:

到挂载目录下创建文件:

还可以使用透明压缩机制挂载:

在线调整文件系统大小:

增加,移除,扫描设备等功能:

增加一个设备到当前指定的btrfs文件系统

将先前数据均衡到新加的盘上

数据量特别大时,还可以在IO高峰期暂停平衡操作,取消暂停,打断等,这里不再缀余

拆除物理卷之前,btrfs会自动挪走上面的数据再拆除,不会像LVM那样还需要手动移走数据

发现只剩下sdb2和sdc1了,sdb1被移除了:

查看数据还在;

重现组织数据跨磁盘存储形式

-m 代表元数据

-d 代表数据

子卷功能:

创建子卷并查看:

挂载子卷:

查看子卷信息:

子卷中文件可以通过父卷访问到:

删除子卷:

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

删除快照:

针对单个文件做快照并检验:

ext系列文件系统和 btrfs文件系统无损转换:

首先创建一个ext4文件系统:

然后挂载,并且在挂载目录下创建文件,用btrfs-convert转换为btrfs

查看:

文件还在:

回滚为ext4文件系统:使用-r选项

时间: 2024-09-29 08:21:53

BTRFS特性及常用操作的相关文章

C++实现二叉搜索树的常用操作

实现操作 (1)二叉搜索树的建立 (2)二叉搜索树的插入 (3)二叉搜索树的三种递归遍历(前序.中序和后续) (4)二叉搜索树的三种非递归遍历(前序.中序和后续) (5)二叉搜索树的逐层打印 (6)搜索某一个字符(递归算法) (7)搜索一个字符(非递归算法) (8)查找最大元素 (9)查找最小元素 有时间再实现: (10)二叉搜索树的前驱和后继查找 (11)二叉搜索树的删除 源码分析: #include <iostream> #include <stack> #include &l

表单的常用操作

知识点: 表单是前后端数据交互的一种重要方式,使用js操作表单也是十分常见的.不过好像每次到表单操作我都要去查API,所以本次想对表单的常用操作做个小结,以备后面随时查看. 首先,我们要知道如下的一些知识: 1. 表单字段在向后台提交数据时,使用的是表单控件的name属性的value,与id无关.(大家可以在百度搜细说表单找到Fish Li大神的这篇文章看看) 2. 表单向服务端传数据时会经过编码.目前基本上只会只使用二种编码规则:application/x-www-form-urlencode

Mysql免安装版安装配置及常用操作

作为关系型数据库的一种,mysql因其占用内存小和开源等特性而兴起.下面简单介绍下关于mysql配置和简单的操作. mysql配置 1.安装文件的下载 免安装版 下载地址 :http://dev.mysql.com/downloads/file.php?id=452189 下载后是一个压缩文件,解压后放在你想放的位置就可以了.建议还是靠近根目录比较好. 2.配置环境变量 2.1新建一个mysqlhome或者什么的都可以.值为上一步的解压缩目录 2.2将mysqlhome放在Path目录就好了 这

Hive数据类型及常用操作总结(一)

一.Hive 数据类型 Hive 提供了基本数据类型和复杂数据类型,复杂数据类型是 Java 语言所不具有的. 基本数据类型 Hive是用java开发的,hive里的基本数据类型和java的基本数据类型也是一一对应的,除了string类型.有符号的整数类型:TINYINT.SMALLINT.INT和BIGINT分别等价于java的byte.short.int和long原子类型,它们分别为1字节.2字节.4字节和8字节有符号整数.Hive的浮点数据类型FLOAT和DOUBLE,对应于java的基本

1 数据结构(13)_二叉树的概念及常用操作实现

1. 树到二叉树的转换 思考:通用树结构的实现太过复杂(树中每个结点都可以有任意多的孩子,具有多种形态),工程中很少会用到如此复杂的树是否可以简化呢?思路:减少树结点中孩子的数量.但这样树是否还能通用呢? 1.1.树的两种表示法 双亲孩子表示法:孩子兄弟表示法:孩子兄弟表示法的特点:1.能够表示任意的树形结构2.每个结点包含一个数据成员和两个指针成员3.孩子结点指针和兄弟结点指针构成"树杈" 2.2.二叉树 二叉树是由n(n>=0)个节点组成的有限集合,该集合或者为空,或者是由一

JavaScript:对Object对象的一些常用操作总结

JavaScript对Object对象的一些常用操作总结. 一.Object.assign() 1.可以用作对象的复制 var obj = { a: 1 }; var copy = Object.assign({}, obj); console.log(copy); // { a: 1 } 2.可以用作对象的合并 var o1 = { a: 1 }; var o2 = { b: 2 }; var o3 = { c: 3 }; var obj = Object.assign(o1, o2, o3)

Spring Boot 和 Redis 常用操作

1    第4-2课:Spring Boot 和 Redis 常用操作 Redis 是目前使用最广泛的缓存中间件,相比 Memcached,Redis 支持更多的数据结构和更丰富的数据操作,另外 Redis 有着丰富的集群方案和使用场景,这一课我们一起学习 Redis 的常用操作. 1.1    Redis 介绍 Redis 是一个速度非常快的非关系数据库(Non-Relational Database),它可以存储键(Key)与 5 种不同类型的值(Value)之间的映射(Mapping),可

Java8 新特性之集合操作Stream

Java8 新特性之集合操作Stream Stream简介 Java 8引入了全新的Stream API.这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同. stream是对集合对象功能的增强,它专注于对集合对象进行各种非常便利.高效的聚合操作,或者大批量数据操作. 为什么要使用Stream 函数式编程带来的好处尤为明显.这种代码更多地表达了业务逻辑的意图,而不是它的实现机制.易读的代码也易于维护.更可靠.更不容易出错. 高端 使用实例: 测试数据:

Java Map常用操作

Java之map使用方法 1 package basic; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 //map常用操作 7 public class MapDemo { 8 9 public static void main(String[] args) { 10 // map实例化 11 Map<String, Integer> maps = new HashMap<>(); 12 13 // 添加元素