文件系统 | btrfs | ext3 | ext4 | jfs | reiserfs | reiser4 | xfs | ntfs | zfs |
最大卷容量 | 16 EB | 32 TB | 1 EB (16TB) | 32 PB | 16 TB | ?? | 16 EB | 256 TB | 16 EB |
最大文件容量 | 16 EB | 2 TB | 16 TB | 4 PB | 8TB | 8TB | 8 EB | 16 TB | 16 EB |
目录结构 | B tree | list/tree | list/Htree | B tree | B+ tree | dancing B* tree | B+ tree | B+ tree | hash table |
文件分配 | extents | bitmap/table | bitmap/extents | bitmap/extents | bitmap | ?? | extents | bitmap | ?? |
ACLS | Yes | Yes | Yes | Yes | No | No | Yes | ACLS only | Yes |
checksum | Yes | No | journal | No | No | No | No | No | Yes |
透明压缩 | Yes | No | No | No | No | Plugin | No | Yes | Yes |
透明加密 | No | No | No | No | No | Plugin | No | Yes | Yes |
online defrag | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes |
shrink | Yes | Yes | Yes | No | Offline resize | Offline | No | Yes | No |
特性 | SSD | Stream |
文件系统 | btrfs | ext3 | ext4 | jfs | reiserfs | xfs |
全填充速率 | 1m22.083s | 1m34.821s | 1m15.495s | 1m5.819s | 1m34.310s | 1m38.953s |
全填充利用率 | 0.8945 | 0.9065 | 0.9047 | 0.9959 | 0.9927 | 0.9918 |
大文件效率 | 14.676 | 17.435 | 10.7255 | 13.7493 | 14.319 | 12.7093 |
大文件删除 | 2.693 | 5.262 | 2.422 | 0.037 | 1.802 | 0.296 |
小文件效率 | 9.949 | 5.131 | 2.7866 | 40.949 | 13.605 | 8.978 |
小文件删除 | 6.737 | 10.7227 | 1.39 | 16.116 | 2.756 | 5.653 |
循环列文件 | 0.124 | 0.089 | 0.002 | 0.094 | 0.19 | 0.099 |
大文件read | 2046206 | 1931451 | 1946598 | 2003912 | 1537752 | 1970242 |
大文件write | 1279625 | 565960 | 926461 | 962617 | 446841 | 812466 |
大文件rndread | 2012771 | 1926287 | 1934420 | 1985273 | 1490199 | 1976056 |
大文件rndwrite | 1380404 | 1187010 | 1294689 | 1446011 | 1308210 | 1384804 |
小文件read | 2375893 | 2934815 | 3019732 | 2708437 | 2559371 | 2236197 |
小文件write | 926602 | 526469 | 681710 | 844237 | 395810 | 939536 |
小文件rndread | 3324647 | 3544566 | 2702282 | 3737551 | 4045575 | 2666753 |
小文件rndwrite | 910277 | 1525970 | 1244240 | 1910756 | 1790393 | 1311261 |
- Linux filesystems benchmarked: EXT3 vs EXT4 vs XFS vs BTRFS – Bonnie++ random seeks and file handling
- Ext4 ReiserFS Btrfs 等7种文件系统性能比拼
- Filesystems (ext3, reiser, xfs, jfs) comparison on Debian Etch
- XFS, Reiser, JFS & ext3 performance on Suse 9 Enterprise
- Filesystems (jfs, xfs, ext3) comparison on Debian
----------------------
Btrfs文件系统
简介
BtrFS(B-tree 文件系统,又称为 Butter FS 或 Better FS),2007 由 oracle 开源后,得到了 IBM、intel 等厂商的大力支持,其目标计划是替代 linux 目前的 ext3/4,成为下一代 linux 标准的文件系统。 支持写时复制(CoW)、快照、在线扩容缩容、数据 checksum、subvolume、磁盘阵列(raid)等,运行在 linux 上,并遵循 GPL 协议的强大文件系统。
- CoW(Copy on Write)可以保证数据一致性,每次改动块都会创建新的文件
- 基于 Cow 技术可以在 volume 和文件级别创建快照
- 数据块和 inode 都可以动态分配
- 可以给 metadata 和 data 块来创建多个副本
文件系统管理
创建
# 单个设备
mkfs.btrfs -L data /dev/sdb1
# 多个设备,metadata保留多个副本
mkfs.btrfs -d raid0 -m raid1 /dev/sdb1 /dev/sdc1
添加/删除设备
btrfs device add /dev/part3
btrfs device remove /dev/part3
修改数据快或者 meta 块的副本
btrfs balance start -dconvert=dup /srv/shared/
btrfs balance start -mconvert=dup /srv/shared/
创建挂载删除 subvolume
btrfs subvolume create /srv/shared/video
mount -o subvol=video /dev/sdb1 /mnt
umount /mnt
btrfs subvolume delete /srv/shared/video
Quota 磁盘配额
适用于多用户场景,给每个用户分配固定的空间,还可以动态调整
# enable quota for subvolume
btrfs quota enable /srv/shared/video
# get limit
btrfs qgroup show -reF /srv/shared/video
# set limit
btrfs qgroup limit -e 10G 0/260 /srv/shared/video/
然后测试下配额是否生效
# dd if=/dev/zero of=/mnt/11G.bin bs=1M count=20480
dd: error writing '/mnt/11G.bin': Disk quota exceeded
10240+0 records in
10239+0 records out
10737377280 bytes (11 GB, 10 GiB) copied, 163.942 s, 65.5 MB/s
快照
建快照就是从当前状态下的 subvolume 新建一个 subvolume,你也可以直接挂载 snapshot
btrfs subvolume snapshot /srv/shared/video /srv/shared/video-backup
mount -o subvol=video-backup /dev/sdb1 /mnt
ls /mnt
umount /mnt
btrfs subvolume delete /srv/shared/video-backup
高能警告
目前社区有一些关于 btrfs 非常负面的评价,褒贬不一,使用前请想好退路,数据无价。看看官方的 status 页面,了解下各个功能当前是否稳定了。
No comments:
Post a Comment