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)存储元数据呢?可以选择有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文件系统管理与应用的更多相关文章
- linux的文件系统管理(ext4-tune2fs-e2fsck-xfs文件系统)
文件系统管理 文件系统是Linux系统存放文件的空间.文件系统的类型有很多种,CentOS支持多种文件系统,目前常用的是ext4和xfs文件系统.我们以ext4文件系统为例来说明对文件系统的管理. U ...
- Linux高级文件系统管理(8)
如果您的 Linux 服务器有多个用户经常存取数据时,为了维护所有使用者在硬盘容量的公平使用,磁碟配额 (Quota) 就是一项非常有用的工具,另外,如果你的用户常常抱怨磁盘容量不够用,那么更进阶的文 ...
- linux备忘录-文件系统管理
Extx 文件系统原理 block group 每个分区(partition)的组成为 boot sector -> block group -> block group -> bl ...
- Linux学习 -- 文件系统管理
1 分区和文件系统 分区类型 主分区:<= 4个 扩展分区:只能有一个,也算主分区的一种 不能存储数据和格式化,只能用来包含逻辑分区 逻辑分区:扩展分区中划分的 IDE--最多59个 ...
- Linux进阶文件系统管理之RAID
RAID 1.引言 RAID全称Redundant Arrays of Inexpensive Disks / Redundant Arrays of Independent Disks,即独立冗余磁 ...
- 『学了就忘』Linux文件系统管理 — 57、Linux文件系统介绍
目录 1.了解硬盘结构(了解即可) (1)硬盘的逻辑结构 (2)硬盘接口 2.Linux文件系统介绍 (1)Linux文件系统的特性 (2)Linux常见文件系统 3.整理一下对文件系统的认识 在了解 ...
- linux下fdisk分区管理、文件系统管理、挂载文件系统等
分区管理工具有:fdisk, parted, sfdisk fdisk:对于一块硬盘来讲,最多只能管理15分区: # fdisk -l [-u] [device...] 查看硬盘设备分区信息 # f ...
- 【linux相识相知】磁盘分区及文件系统管理详解
磁盘,提供持久的数据存储,它不像我们的内存,如果突然断电了,在内存中的数据一般都会被丢掉了,内存中的数据在保存的时候,会被写到硬盘里面,磁盘也是一种I/O设备. 我们都知道磁盘分区完成之后,还要进行格 ...
- Linux:Day7(下) 磁盘管理、文件系统管理
Linux入门 Linux系统管理: 磁盘管理.文件系统管理 RAID基本原理.LVM2 网络管理:TCP/IP协议.Linux网络属性配置 程序包管理:rpm,yum 进程管理:htop,glanc ...
随机推荐
- DocumentBuilderFactory.newInstance() 异常解决
现象: objc[27212]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk ...
- C# Thread IsAlive 理解
IsAlive的功能就是判断当前线程是否处于活动状态. public class Program { public static void Main(string[] args) { try { Wr ...
- 小白的python之路10/29 文件归档
一打包解包文件 [root@localhost ~]# cd /test/[root@localhost test]# touch a.txt b.txt c.txt[root@localhost t ...
- c#基础之异常处理及自定义异常
一.什么是c#中的异常? 异常是程序运行中发生的错误,异常处理是程序的一部分.c#中的异常类主要是直接或者间接的派生于 System.Exception类 ,也就是说System.Exception类 ...
- Django 安装配置
1-安装Python3.6.1 Python2.x 与3.x的版本在语法上稍有不同,区别在于输出语句的不同,这个可以看相关的文档. Python3.6.1,可以在Python的官网上下载:https: ...
- Redis安装部署教程
1)下载 redis-3.2.9.tar.gz 2)用ssh工具连接目录主机,在命令窗口输入:mkdir -p /opt/redis创建redis文件夹 3)通过WinSCP工具将redis-3.2. ...
- ES6新语法的介绍
对于ES6新语法,阮一峰有一篇文章介绍的挺详细 http://es6.ruanyifeng.com/#docs/destructuring
- Python列表以及列表的处理方法
在Python中,当我们需要存储大量的数据时,可使用列表存储,列表本质是一种有序的集合 格式:列表名 = [列表元素1,列表元素2,列表元素3,...列表元素n] 如果想创建一个只有单个元素的列表,格 ...
- 小白的REDIS学习(二)-链表
本文为读<Redis设计与实现>的记录.该书以Redis2.9讲解Redis相关内容.请注意版本差异. Redis使用C语言,实现了自己的链表结构,实现的代码如下 //集成了链表的各类信息 ...
- 2016/12/22 dplの课练
1.sort -nk 1 -t - 3 2.sort -nk 1 -t - 2 3.sort -nk 2 -t - 1 3./etc/passwd根据用户id的大小排序,从小到大的排序输出 sort ...