您的位置:首页 > 其它

btrfs文件系统管理及应用

2015-09-22 22:49 375 查看
Btrfs:可以称为(B-treeFS,Butter FS,Better FS),支持CoW机制;暂时在CentOS 7上可用;
CoW:copy on write,写时复制机制;

核心特性:
多物理卷支持;一个btrfs可由多个底层物理卷,默认就可以支持RAID机制,支持联机“添加”、“移除”、“修改”;

写时复制更新机制:复制、更新及替换指针,而不是在“就地”更新;
在文件进行修改的时候,首先将文件复制一份出来,在复制出来的文件上进行修改,修改完成之后,将指向原有文件的指针修改指向到修改完成的文件上,若修改完成的文件出现了错误,则我们可以通过原文件进行修复。在某些情况下是很有用的。
数据及元数据校验码:checksum,存储每一个文件时,元数据的校验码及数据的校验码,通过文件的某些扩展属性保存起来,在读取文件时,可检测文件是否受损,一旦文件受损,会自动尝试修复文件。

子卷功能:sub volume ,在一个卷上创建多个子卷,在每一个子卷上创建文件系统,并挂载使用;

快照:支持快照的快照,因此可以实现类似增量快照的机制;

透明压缩:如果我们在存储文件时,进行压缩存储,那么在文件发往btrfs时,会自动的占用时钟周期,完成数据的压缩存放,而用户并不知道,在用户读取文件时,会自动的进行文件的解压缩,可以实现节约磁盘空间。但是压缩和解压缩会占用时钟周期;

mkfs.btrfs命令:
mkfs.btrfs [OPTIONS]
常用选项:
-L|--label <name>:指定文件系统的卷标;
-m|--metadata <profile>:指明元数据的存放方式,是否可跨越多个物理卷,支持RAID机制;

-d|--data <type>:指明数据的存放方式,支持RAID机制;

-O|--features <feature1>[,<feature2>...]:在格式化文件系统的时候,是否直接开启文件系统的某些特性,但是在一些老版本内核上未必支持所有特性;

-O list-all: 列出支持的所有特性;

建议:在组织btrfs文件系统的时候,直接使用多块磁盘。
查看btrfs文件系统属性的方法:
第一种:查看已经挂载的btrfs文件系统



第二种:查看所有的btrfs文件系统磁盘



第三种:查看指定的btrfs文件系统磁盘

创建btrfs文件系统:
第一步:在虚拟机上添加两块磁盘。

第二步:在新添加的两块磁盘上创建btrfs文件系统,并且指定卷标为mydata。



第三步:查看已经建立的btrfs文件系统。



两个磁盘的UUID相同,但是UUID_SUB不同,故btrfs文件系统支持子卷功能。



第四步:挂载已经建立好btrfs文件系统的磁盘。两个磁盘指定一个就可以,因为他们同属于卷组。




透明压缩机制:
mount -o compress={lzo|zlib} DEVICE MOUNT_POINT



使挂载的磁盘分区支持透明压缩机制。

调整逻辑边界可以不用卸载直接进行缩减和扩展。
减小btrfs文件系统的逻辑边界大小:
btrfs filesystem resize [<devid>:]<size>[gkm]|[<devid>:]max <path>



查看修改完之后的文件系统的大小:



扩展btrfs文件系统的逻辑边界大小:





用法和缩减btrfs有些类似。

修改btrfs文件系统的物理边界的大小:
支持联机扩展和缩减。

使用btrfs add/delete/scan <dev> MOUNT_POINT

扩展btrfs文件系统的物理边界:




缩减btrfs文件系统的物理边界:

当然,在缩减物理边界的时候,要首先保证缩减之后的大小可以存储已经存储的总文件的大小。

使用btrfs delete命令实现。




使用balance子命令设置整个文件系统的负载均衡:

支持start、pause、cancel、resume、status这几个子命令。





设置负载均衡的时候,设置相关的RAID级别。

注意:磁盘数量不够,相关的RAID级别无法进行设置。

btrfs balance start [OPTIONS] <FILTERS> MOUNT_POINT

常用选项:

-d:改变数据的组织机制

-m:改变元数据的组织机制

-s:改变文件系统的组织机制

FILETERS:

convert:设置指定的RAID组织

例:



btrfs文件系统的子卷功能:
创建子卷:

btrfs subvolume create /PATH



注意:如果父卷挂载完成,那么子卷默认就已经挂载。

只挂载子卷:

mount -o subvol=logs /dev/sdb /mydata/
子卷名称 设备名称 挂载点



显示子卷的相关信息:

btrfs subvolume show MOUNT_POINT






删除某一目录下的子卷:

例:删除mydata目录下的logs子卷。

btrfs subvolume delete /mydata/logs
在某一子卷上创建快照:

注意:子卷的快照必须与子卷在同一个父卷中。
例:在mydata目录下的logs子卷上创建快照

[root@centos-lcs ~]# btrfs subvolume snapshot /mydata/logs /mydata/logs_snapshot

将一个ext系列的文件系统转换为btrfs文件系统:
第一步:先卸载要转换的ext系列的文件系统

第二步:使用fsck -f进行强制文件检测

第三步:使用btrfs-convert进行文件系统的转换。

使用btrfs-convert -r还可以将已经转换为btrfs文件系统的磁盘转换回原来的文件系统。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  btrfs