首页 > 代码库 > btrfs文件系统学习
btrfs文件系统学习
btrfs文件系统由Oracle开发,btrfs设计目标为取代早期ext文件系统。
核心特性:
1.多物理卷支持:btrfs可由多个底层物理卷组成,支持RAID,以联机“添加”、“移除”、“修改”。
2.写时复制更新机(COW):复制、更新及替换指针,而非就地修改更新。
3.数据及元数据效验码(checksum)。
4.支持子卷(sub_volume)。
5.快照及快照的快照。
6.透明压缩,支持两种压缩算法lzo和zlib通过命令mount -o compress={lzo|zlib} DEVICE MOUNT_POINT实现
那么如何创建一个btrfs文件系统呢?
可使用mkfs.btrfs命令,如果想在centos 6上使用btrfs,需要重新内核。
#使用fdisk硬盘分区工具查看外围设备的信息
#使用工具mkfs创建btrfs文件系统
#mkfs.btrfs命令常用选项介绍:
-L ‘LABEL‘
-d <type>:存储类型
-m <profile>:元数据的存储机制
-O list-all:列出支持的所有feature(基于内核版本不同,所提供的的支持也不一样.)
#使用btrfs的子命令filesystem查看属性信息
btrfs filesystem show
btrfs filesystem show可以查看到此文件系统的卷标,UUID,设备等相关信息,也可使用blkid命令查看UUID
其中UUID_SUB显示的是多物理子卷的每一个物理卷的单独的UUID信息,也可使用btrfs filesystem show --mounted显示已挂载的设备。
#挂载btrfs文件系统
mount -t btrfs /dev/sdb MOUNT_POINT
首先创建一个挂载点,然后使用mount命令使用-t选项指明挂载文件类型,这里也可以不用指明挂载文件类型,只要blkid命令能识别就不用再指明,挂载时指/dev/sdb或者/dev/sdc其中一个就行了,使用mount可以查看到挂载。需要卸载时可使用unmount命令。
#使用resize命令调整btrfs文件系统的大小
可使用btrfs filesystem resize max /datamount设置当前最大。
#当需要添加新的磁盘设备时使用btrfs的子命令device。
btrfs device add DEVICE
#移除某个物理卷
btrfs device delete DEVICE MOUNIT_POINT
#使用btrfs的子命令balance实现均衡操作。
#当文件系统拥有较多数据此时添加新的磁盘设备可使用均衡操作
btrfs balance start MOUNT_POINT
其中暂停、继续等命令可参照man btrfs balance。
#管理子卷
btrfs subvolume show [MOUNT_POINT] #查看子卷相信信息
btrfs subvolume list[MOUNT_POINT] #显示子卷列表
btrfs subvolume delete subvolume #删除子卷
btrfs subvolume create [-i <qgroupid>] [<dest>/]<name> #创建子卷
btrfs subvolume snapshot #创建子卷快照(必须在同一个父卷中)
cp --reflink FILE PATH #创建单个文件的快照
mount -o subvol=subvolume DEVICE MOUNT_POINT #挂载子卷
#如何将ext文件系统转换为btrfs
#如果需要转换的ext文件系统已挂载需先卸载(文件系统格式转换做联机操作相当危险)
#使用unmount MOUNT_POINT
fsck -f DEVICE #强制检测
btrfs-convert DEVICE #转换为btrfs文件系统
btrfs-convert-r DEVICE #降级操作
第一次写博客,可能写的不好,以后会多多改进
本文出自 “12335035” 博客,请务必保留此出处http://12345035.blog.51cto.com/12335035/1900568
btrfs文件系统学习