文件系统btrfs ext3ext4jfs reiserfs reiser4xfs ntfs zfs 最大卷容量16 EB32 TB 1 EB (16TB)32 PB16 TB??16 EB256 TB16 EB 最大文件容量16 EB 2 TB16 TB 4 PB8TB8TB8 EB16 TB16 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
全填充速率
全填充利用率0.89450.90650.90470.99590.99270.9918大文件效率14.67617.43510.725513.749314.31912.7093大文件删除 2.693 5.262 2.4220.037 1.8020.296小文件效率9.949 5.131 2.786640.94913.6058.978小文件删除 6.73710.7227 1.3916.116 2.756 5.653循环列文件0.1240.0890.0020.0940.190.099大文件read204620619314511946598200391215377521970242大文件write1279625565960926461962617446841812466大文件rndread201277119262871934420198527314901991976056大文件rndwrite138040411870101294689144601113082101384804小文件read237589329348153019732270843725593712236197小文件write926602526469681710844237395810939536小文件rndread332464735445662702282373755140455752666753小文件rndwrite91027715259701244240191075617903931311261以上数据,在公司的debian testing上测定。
机器型号Dell Inspiron 560s,CPU Dual-Core E5700,4G内存,硬盘WDC
WD3200AAKS-75L9A0。
系统是debian testing,内核2.6.39-2-amd64。
全填充是用time dd if=/dev/zero of=abc来测试填满⼀一个分区的速度和容量。
大文件是四个ISO文件,共1.3G,从tmpfs上复制到目标设备上的时间平均值,三次平均。
小文件是pypy/python2.7/linux kernel2.6.39所有源码,总计49242个文件,629M。
从tmpfs上复制到目标设备的时间平均值,三次平均。
循环列文件是通过time find .测试效率。
下面测试单位为bytes/sec,是iozone测试结果。
首先是文件利用率,btrfs/ext3/ext4会消耗10%左右的空间作为系统消耗。
如果你需要比较高的磁盘利用率,请不要考虑这三种系统。
也许你会认为,放文件又不会放满,必须空出部分来才能减少文件碎片。
实际上,被消耗掉的空间也并不是白白消耗,你的所有数据,都会增加10%的系统消耗空间。
因此ntfs的防碎片阀值(为了防止碎片化,磁盘使用率不应当高于)大约是85%,而ext3就只有75%-80%。
其次是大文件效率,除了ext3不予考虑外,其余系统都过的去。
btrfs/ext4在删除大文件的时候耗时略多,大概是和管理特性有关。
第三是小文件效率。
如果你需要用小文件,千万不要考虑jfs,慢到我无法相信。
ext4比btrfs和xfs快了四倍左右,非常适合操作大量小文件。
例如源码编译,有blog说ext4比xfs快数倍。
最后是循环列文件效率,同样,ext4⼀一枝独秀,其余水准相去不远。
综合以上几个考量,linux中比较推荐的文件系统是ext4, xfs两种。
大量文件存储用xfs,小规模文件密集使用用ext4。
在特定情况下,可以使用btrfs(它的特性非常全)或者jfs(小文件操作慢,但是随机读写快)。
兼容考量下,可以用ext3。
不推荐使用reiser4。