随着Meego 1.0发布的时间越来越近,更多的消息也不断的出来了,最近的消息是Meego确定了缺省文件系统: Btrfs(http://www.phoronix.com/scan.php?page=news_item&px=ODIzOA)。以前没有使用过这个系统,这两天做了个quick study, 这里也跟大家分享一下自己的所得:
1. 当然先要问什么是BTRFS: 官方的答案是: Btrfs (B-tree file system , pronounced "Butter F S " or "B-tree F S ")is a new copy on write filesystem for Linux aimed at implementing advanced features while focusing on fault tolerance, repair and easy administraTIon. 新的,写缓冲的,容错的,可修复的,易管理的。。。。总之是个新来的好东西 8 )那他到底好在哪里呢?
2. 高性能: 这里我们引用phoronix的测试结果:(http://www.phoronix.com/scan.php?page=arTIcle&item=linux_2634_fs&num=1)
测试环境:“Our test system for this file-system tesTIng atop the Linux 2.6.34 kernel was comprised of an AMD Opteron 2384 quad-core Shanghai processor clocked at 2.70GHz, Tyan S2927 n3600B motherboard, a 64GB OCZ Agility EX SSD, and an ATI Radeon HD 4870 graphics card. On the software side was the Ubuntu 10.04 64-bit Beta, the previously mentioned Linux 2.6.34 snapshot, X.Org Server
1.7.6, xf86-video-radeon 6.13.0, and GCC 4.4.3. Each file-system was mounted with its default mount options.”为什么不用intel的?! 8 )
测试结果:在Compile Bench测试中Btrfs达到了64.47MB/s, 领先第二名23%!
3. 针对 SSD 的优化支持 http://www.ibm.com/developerworks/cn/linux/l-cn-btrfs/ 是固态存储 Solid State Disk 的简称。在过去的几十年中,CPU/RAM 等器件的发展始终遵循着摩尔定律,但硬盘 HDD 的读写速率却始终没有飞跃式的发展。磁盘 IO 始终是系统性能的瓶颈。
“SSD
SSD 采用 flash memory 技术,内部没有磁盘磁头等机械装置,读写速率大幅度提升。 flash memory 有一些不同于 HDD 的特性。 flash 在写数据之前必须先执行擦除操作;其次,flash 对擦除操作的次数有一定的限制,在目前的技术水平下,对同一个数据单元最多能进行约 100 万次擦除操作,因此,为了延长 flash 的寿命,应该将写操作平均到整个 flash 上。
SSD 在硬件内部的微代码中实现了 wear leveling 等分布写操作的技术,因此系统无须再使用特殊的 MTD 驱动和 FTL 层。虽然 SSD 在硬件层面做了很多努力,但毕竟还是有限。文件系统针对 SSD 的特性做优化不仅能提高 SSD 的使用寿命,而且能提高读写性能。 Btrfs 是少数专门对 SSD 进行优化的文件系统。 btrfs 用户可以使用 mount 参数打开对 SSD 的特殊优化处理。
Btrfs 的 COW 技术从根本上避免了对同一个物理单元的反复写操作。如果用户打开了 SSD 优化选项,btrfs 将在底层的块空间分配策略上进行优化:将多次磁盘空间分配请求聚合成一个大小为 2M 的连续的块。大块连续地址的 IO 能够让固化在 SSD 内部的微代码更好的进行读写优化,从而提高 IO 性能。”
2.6.31 系统已经自带了针对SSD 优化的驱动driver,使用时只要 用“mount -o ssd”指令就可以了。
4. 系统镜像: 这一下系统备份恢复可以省却很多事情了 8 )
A snapshot is a frozen image of all the files and directories. For example, if you have two files ("a" and "b"), you take a snapshot and you delete "b", the file you just deleted is still available in the snapshot you took.
5. 透明的压缩文件系统: Transparent compression (currently zlib ),就是说利用zlib技术,用户可以不用管理数据的压缩,完全交给btrfs系统,而且他的压缩方法也是非常聪明的例如:
“比如 jpeg 文件,已经无法再进行压缩。尝试对其压缩将纯粹浪费 CPU 。为此,当对某文件的若干个 block 压缩后发现压缩率不佳,btrfs 将不会再对文件的其余部分进行压缩操作。这个特性在某种程度上提高了文件系统的 IO 效率”
还用很多属性,这里就不一一列举了,总之BTRFS给我们带来了新的属性,我们就来看看它在Meego中的表现吧