Btrfs文件系统

  1. btrfs文件系统特性:

1、多物理卷支持

Btrfs可由多个底层物理卷组成:支持raid,以联机添加,移除,修改

2、写时复制机制(cow)

    复制,更新及替换指针,而非就地更新。在文件进行修改的时候,首先将文件复制一份出来,在复制的文件中进行修改,修改完成后,将指向原有文件的指针指向到修改完成的文件上,若修改完成的文件出现错误,则我们可以通过源文件进行修复

3、数据及元数据校验码

    Checksum,当存储某个文件上时,checksum会将数据的源数据和数据的校验码分别通过文件的属性进行保存,当我们再次读取数据时,可以方便的读取数据是否受损,若受损,可以完成自动修复

4、子卷

    Sub_volume,在一个卷上创建多个子卷,在每个子卷上创建文件系统,并挂载使用

5、快照

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

6、透明压缩

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

  1. btrfs文件系统的创建

mkfs.btrfs

        -L ‘LABLE’:指定文件系统卷标

        -d <type>:raid0,raid1,taid5,raid6,raid10,single指明数据的存放方式

        -m <profile>:raid0,raid1,taid5,raid6,raid10,single,dump,指明元数据的存放方式

        -O <feature>:在格式化文件系统的时侯,是否直接开启文件系统的某些特性

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

Btrfs文件系统

Btrfs文件系统

Btrfs文件系统

可以看出来两个卷的uuid相同,但子卷uuid不同

Btrfs文件系统

挂载文件系统,只需挂载一个,另一个也会挂载上

Btrfs文件系统

  1. 调整文件系统大小(逻辑上)

btrfs filesysstem resize [devid:][+/-]<size>[gkm]|[devid:]max <filesystem>

联机缩减文件系统大小:

Btrfs文件系统

联机扩张文件系统大小:

Btrfs文件系统

扩展至最大:

Btrfs文件系统

  1. 调整物理边界大小

Btrfs device add <dev> [<dev>..] <path> 增加设备

Btrfs device delete <dev> [<dev>..] <path> 减少设备

Btrfs文件系统

  1. 透明压缩

在挂载时使用-o指定压缩方式即可,可以选择lzo或zlib两种压缩方式

格式:mount –o compress={lzo|zlib}DEVICE MOUNT_POINT

  1. Btrfs文件均衡

格式:btrfs balance {start|pause|resume}[options] <files> MOUNT_POINT

btrfs [filesystem] balance start [options] <path>

Balance chunks across the devices

btrfs [filesystem] balance pause <path>

Pause running balance

btrfs [filesystem] balance cancel <path>

Cancel running or paused balance

btrfs [filesystem] balance resume <path>

Resume interrupted balance

btrfs [filesystem] balance status [-v] <path>

Show status of running or paused balance

常用选项:-d:指定数据的组织机制 组织格式:centos 6 上支持的较少(没有raid5)

     -s:指定元数据的存储机制

     -m:指定文件系统的组织机制

     -f:强制转换数据的组成机制

     -(d | s |m)convert=<组织机制>

Btrfs文件系统

  1. 创建子卷

btrfs subvolume create /挂载点/PATH 此路径必须是在btrfs文件系统的挂载目录下

btrfs subvolume list /挂载点

Btrfs文件系统

ID266是子卷ID ,可以用来挂载子卷

挂载子卷

可以只挂载子卷,而不挂载父卷

挂载子卷命令:mount –o subvol=subvol1 /dev/sdb1 /MOUNT_POINT

  1. 创建子卷快照

btrfs subvolume snapshot /mydata/subvol1

删除:btrfs subvolume delete

Btrfs文件系统

  1. Ext4与btrfs相互转换

Ext4转btrfs

  1. umount /挂载点
  2. fsck –f /dev/设备
  3. btrfs-convert /dev/设备
  4. 挂载
  5. btrfs filesystem show

转回:btrfs-convert -r /dev/设备

原创文章,作者:血刀老祖,如若转载,请注明出处:http://www.178linux.com/14588