btrfs文件系统(只有centos 7.0里面才可以实现。)

Btrfs(通常念成Butter FS),由Oracle于2007年宣布并进行中的COW(copy-on-write式)文件系统。目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单一文件大小的限制,总文件系统大小限制以及加入文件校验和特性。加入目前ext3/4未支持的一些功能,例如可写的磁盘快照(snapshots),以及支持递归的快照(snapshots of snapshots),内建磁盘阵列(RAID)支持,支持子卷(Subvolumes)的概念,允许在线调整文件系统大小。

btrfs的核心特性

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

    写时复制更新机制(CoW):复制、更新及替换指针,而非“就地”更新。即当我们修改某个文件的时候,不会直接修改源文件,而是复制一份然后对复制的文件进行修改,修改完把源文件的指针指向复制的文件。

    数据及元数据校验码:存储每一个文件的时候,会把数据的校验码和元数据的校验码通过文件某些扩展保存下来,每个文件读取时快速校验文件是否损坏,如果检测到损坏还会自动尝试进行修复。

    子卷:sub_volume,每一个子卷都可以独立进行挂载

    快照:Btrfs 支持创建快照 (snapshot),和克隆 (clone) ,支持快照的快照;

    透明压缩:任何数据流发往btrfs文件系统的时候,它自动能够通过占据CPU的时钟周期完成数据压缩后存放,当文件需要读取的时候又自动解压缩。能够节约空间,但是花费CPU时钟周期。

文件系统创建:

                   mkfs.btrfs

                            -L'LABEL'

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

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

                            -O<feature>

                                     -Olist-all: 列出支持的所有feature

这里是我创建的两个磁盘

        [root@localhost ~]# fdisk -l


        Disk /dev/sda: 21.5 GB, 21474836480 bytes

        255 heads, 63 sectors/track, 2610 cylinders

        Units = cylinders of 16065 * 512 = 8225280 bytes

        Sector size (logical/physical): 512 bytes / 512 bytes

        I/O size (minimum/optimal): 512 bytes / 512 bytes

        Disk identifier: 0x0003b92c


           Device Boot      Start         End      Blocks   Id  System

        /dev/sda1   *           1          64      512000   83  Linux

        Partition 1 does not end on cylinder boundary.

        /dev/sda2              64        2611    20458496   8e  Linux LVM


        Disk /dev/mapper/VolGroup-lv_root: 18.9 GB, 18865979392 bytes

        255 heads, 63 sectors/track, 2293 cylinders

        Units = cylinders of 16065 * 512 = 8225280 bytes

        Sector size (logical/physical): 512 bytes / 512 bytes

        I/O size (minimum/optimal): 512 bytes / 512 bytes

        Disk identifier: 0x00000000

        Disk /dev/mapper/VolGroup-lv_swap: 2080 MB, 2080374784 bytes

        255 heads, 63 sectors/track, 252 cylinders

        Units = cylinders of 16065 * 512 = 8225280 bytes

        Sector size (logical/physical): 512 bytes / 512 bytes

        I/O size (minimum/optimal): 512 bytes / 512 bytes

        Disk identifier: 0x00000000



 

                   属性查看:

                            btrfsfilesystem show

 

                   挂载文件系统:

                            mount -t btrfs /dev/sdb MOUNT_POINT

 

                   透明压缩机制:

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

 

         这里子命令:filesystem,device, balance, subvolume