2008-11-12

ZFS混合存储池特性浅析

  我对磁盘阵列相关的东西不是很熟,但是可惜的是前天正好遇到这个问题,亟需解决,无奈之下思考起了解决方案,但是可惜的是,我的查询zfs和raidz的一些情况的时候要不找到它的原理说明,要不找到配置方法,但是总觉得差什么,就是没办法把整个过程联通起来,最后发现,这些资料都缺乏对整体架构的解释。无奈的在unix-center中求助也没人回答,不过今天正好有人发了一帖倒解决的我的问题,下文即转自此帖:http://www.unix-center.net/bbs/viewthread.php?tid=7053&extra=page%3D1

------------------------------------------
ZFS混合存储池特性浅析

  被称作“史上最后一个文件系统” 的ZFS,作为Solaris 10和OpenSolaris的新特性引进后,吸引了开源社区里无数人的关注,Linux之父Linus Torvalds公开表示对Solaris软件的ZFS(Zettabyte文件系统)特别感兴趣,苹果公司也宣称Mac OSX采用ZFS文件系统。从OpenSolaris 2008.05发布版开始,SUN在ZFS中引进了对Intel® High-Performance Solid State Drives (SSDs)的支持,提供混合存储池(Hybrid Storage Pools),本文将对此进行介绍。

1. 什么是SSD?
  SSD即固态硬盘(solid state disk),SSD由控制单元和存储单元(FLASH芯片)组成,简单的说就是用固态电子存储芯片阵列而制成的硬盘。闪存设备记忆数据不需要电源,而且读写数据的速度非常快,就像 DRAM一样。随着全球电价上涨,以及海量数据存取速度的需求,SSD越来越被看好。
  以下是SSD、HDD的存取速度、单位造价和耗电量的对比,IOPS 即Input/Output Operations PerSecond。

  • SSD:7000 write IOPS, 35000 read IOPS, $2/GB ,15-20w
  • HDD:180 write IOPS, 320 read IOPS ,$30/GB,2.5w
2. 改进存储系统的动机
  计算机系统设计的黄金法则——加快经常性事件(make the common case fast),道理十分明显,使经常性事件的处理速度加快能明显提高整个系统的性能。遵循大师们提出的这一准则,RISC、RAID等大批技术横空出世。前辈们屡试不爽的准则,在ZFS的创新过程中,又一次得到成功验证。
  从下图可以看出,随着多核技术的发展,特别是服务器端多核技术的广泛应用,磁盘存取速度的增长远远跟不上处理器处理速度的增长,整个系统的性能越来越拖累于慢速的磁盘。同时服务器端海里数据存取,产生的大量磁盘操作已经成了经常性事件。磁盘访问已经成为系统的瓶颈,而且数据中心大量磁盘产生的电费也是一笔不菲的成本。


SUN的ZFS+SSD解决方案

解决上述问题有以下一些方案

  • 增加内存缓存一些数据来提高数据存取性能,但是存储容量的增长速度远高于内存容量的增长,并且代价十分高昂。
  • 利用闪存比DRAM便宜且存取速度相当,将闪存设备作为另一层级的存储器引进数据中心。但这会出现转换成本或操作成本,使数据中心产生新的成本开支,面临新的管理纷争。
  可见以上方案均不是很合理,那么如何实现高性能、低能耗、对用户和操作者透明的解决方案呢?答案就是SUN ZFS+SSD混合存储池。

  ZFS+SSD的体系结构如下图,在系统中,使用少量高速SSD作为内存与磁盘的缓存,将经常使用的数据放到快速的缓存,加快了访问速度,同时保留了HDD的大容量存储能力。同时ZFS对SSD进行了无缝整合,可以把SSD 作为文件系统的二级缓存(L2 ARC)以及ZIL(ZFS Intent Log),自动优化系统充分利用快速SSD提供系统读写吞吐率。


ZFS+SSD的体系结构

  1. Read/Write Cache Pool:ZFS利用主存和SSD作为自动伸缩缓存(Adaptive Replacement Cache),并能检测访问模式
  2. ZIL(ZFS Intent Log) Pool:ZFS一般使用NVRAM,SSD(Solid State Disk)作为 ZIL存储池。ZFS是事务型文件系统,对于同步写操作,ZFS为系统中每一个ZFS文件系统维护一个ZIL。同步写操作的数据会先写入ZIL,并且会把磁盘的write cache的数据同步到磁盘上,然后应用的写操作返回。当文件提交命令发生时,ZFS会把ZIL里该文件的数据同步到磁盘上。
  3. DISK Pool:ZFS利用disk pool为文件系统自动分配HDD空间
3. 总结
ZFS文件系统是对传统文件系统的一次革命性的创新设计,ZFS解决了文件系统的完整性、安全性和可伸缩性以及管理困难等重要难题。ZFS文件系统是世界上第一个128位的文件系统,其存储容量和文件数量几乎只受硬件的限制,增加了混合存储池后ZFS功能将更强大,心动了吧,赶紧去装个OpenSolaris体验下吧!
参考文献:

[1] Solaris zfssolutionbrief
http://www.sun.com/software/solaris/pdf/solariszfs_solutionbrief.pdf
[2] Sun Intel flash pitch April 08, Bill Moore
[3] http://blogs.sun.com/jonathan_zh/date/20080620, Jonathan(Sun CEO)

没有评论: