高级文件文件系统管理之btrfs系统

一.概述

btrfs文件系统:

    技术预览版

    btrfs (B-tree,Butter FS,Better FS),GPL,Oracle,2007,CoW

    ext3/ext4,xfs

核心特性:

    多物理卷支持:btrfs可由多个底层物理卷组成,支持RAID,以及联机“添加”、“移除”,“修改”

    写时复制更新机制(CoW):复制、更新及替换指针,而非“就地”更新;(修改一个文件,会首先复制文件,然后在修改复制之后的文件,保护源文件,以防修改出错)

    数据及元数据校验码:checksum (保证文件的可靠性)

    子卷:sub_volume

    快照:支持快照的快照;(能实现增量快照机制)

    透明压缩;(节约空间)

btrfs文件系统的使用:

    mkfs.btrfs:

        -L : 'LABEL'

        -d <type>:  raid0,raid1,raid5,raid6,raid10,single

        -m <profile>:raid0,raid1,raid5,raid6,raid10,single,dup

        -O <feature>

            -O list-all:列出处置的所有feature;

属性查看:

    btrfs filesystem show

挂载文件系统:

    mount -t btrfs /dev/sdb MOUNT_POINT

透明压缩机制:

    mount -o compress={lzo|zlib} DEVICE MOUNT_POINT

首先我们创建一个40G的btrfs文件系统.成员为/dev/sdd和/dev/sde

-f 是强制覆盖源磁盘的文件系统

blob.png

我们可以使用命令 btrfs filesystem show 来查看所有的btrfs文件系统的属性

blob.png

btrfs filesystem show –mounted  显示已挂载btrfs文件系统的属性

btrfs filesystem show all-devices 显示所有btrfs文件系统的属性

现在我们来挂载btrfs文件系统到目录

blob.png

mydate的btrfs文件系统包含/dev/sdd和sde,所以这边可以随便写哪个硬盘设备都等同于mydate的btrfs文件系统

实现透明压缩文件机制:

mount -o compress={lzo|zlib} DEVICE MOUNT_POINT

blob.png

compress是选择一个压缩加密方式.

现在我们还可以自由调整文件系统的大小.

man btrfs

btrfs filesystem resize -10G /mydata  减少10G

blob.png

blob.png

btrfs filesystem resize +5G /mydata    增加5G

blob.png

btrfs filesystem resize max /mydata    增加空间到最大

blob.png

查看

df–lh; btrfsfilesytemdf/mydata

blob.png

添加设备:man btrfs-device

btrfs device add /dev/sdd /mydata

blob.png

btrfs filesystem show mydata;df

blob.png

平衡数据:

man btrfs-banlance

btrfs banlance status /mydata

blob.png

btrfs banlance start /mydata

blob.png

btrfs banlance pause /mydata

btrfs banlance cancel /mydata

btrfs banlance resume /mydata

删除设备

btrfs device delete /dev/sdb /mydata

btrfs filesystem show

blob.png

修改raid级别:注意raid对成员数量的要求

btrfs balance start -mconvert=raid1|raid0|raid5 /mydata

btrfs balance start -dconvert=raid1|raid0|raid5 /mydata

blob.png

blob.png

子卷管理:

man btrfs-subvolume

btrfs subvolumelist /mydata 查看子卷ID等信息

btrfs subvolume create /mydata/subv1

umount /mydata

mount -o subvol=subv1 /dev/sdd /mnt/subv1

btrfs subvolume show /mnt/subv1

mount /dev/sdb/mydata挂父卷,子卷自动挂载

mount -o subvolid=### /dev/sdd/mnt/subv1

blob.png

创建了2个子卷

blob.png

将2个子卷挂载到目录上..

blob.png

 

        

原创文章,作者:Kartik,如若转载,请注明出处:http://www.178linux.com/45265