- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ZFS 文件系统和Sun x4500 数据服务器在互联网行业
的应用
Xinfeng.liu@
2008 年 6 月
简介
在 Web 2.0 的时代,互联网上的数据呈现了爆炸性的增长。大型互联网客户迫切需要一种
大容量、廉价、节省空间的存储解决方案。Sun Fire x4500 服务器结合 Solaris 的ZFS 文件系统
很好地满足了这种需求。
Sun Fire X4500 服务器可以提供四路 x64 服务器的卓越性能,最多可在 4U 机架空间内提
供 48 TB 最高密度存储。该系统包含 2 个双核 AMD Opteron 处理器,16G 内存,并内置了
6 个 SATAII 的磁盘控制器,48 块热插拔的磁盘,以及 4 个千兆网口。该系统可以提供高数据
吞吐量,而成本只是传统解决方案的一半。
Solaris 10 包含的ZFS 文件系统是对传统文件系统的一次革命性的创新设计,ZFS 解决了
文件系统的完整性、安全性和可伸缩性以及管理困难等重要难题。ZFS 文件系统是世界上第
个 128 位的文件系统,其存储容量和文件数量几乎只受硬件的限制,非常适合互联网上的大数
据量的应用。而且ZFS 文件系统的 checksum 和transactional 的操作方式实现了端对端的数据
安全,减少了为保证数据的高可靠性对昂贵硬件的依赖,大大降低了存储成本。另外,ZFS 文
件系统的管理非常简便,采用了存储池的管理,并包含了传统的卷管理器的功能,但无需传
统卷管理器的复杂的命令操作。由于ZFS 的独特设计,ZFS 文件系统无需mount ,无需fsck ,
无需journaling ,大大地简化了日常维护。
ZFS 文件系统已包含在 Solaris 10 或 opensolaris 中,无需另外下载并且是免费的和开源的。
本文主要介绍 ZFS 文件系统和 Sun x4500 服务器作为互联网上文件服务器的典型应用和优
化。其内容包括:
● ZFS 文件系统的特点和调优
● ZFS 文件系统的部署规划建议
● Sun x4500 作为文件服务器的系统调优
ZFS 文件系统的特点和调优
ZFS 文件系统在设计上与传统的文件系统有很大的不同。我们需要对ZFS 的几个基本概念有
所了解:
Record Size
Record Size 也就是通常所说的文件系统的block size 。ZFS 采用的是动态的 Record Size ,也就
是说 ZFS 会根据文件大小选择*适合*的512 字节的整数倍作为存储的块大小,最大的Record
Size 为 128K 。通常没有必要手工设置Record Size 。如果手工把Record Size 调小,将不会得
到空间的节省,并且常常会影响性能。ZFS 的Block 是计算 checksum 的单位,一个文件用到
的block 越多,计算 checksum 以及维护metadata 的开销就会越大。
目前ZFS 的版本下,只有一种情况需要手工调小Record Size :大文件上的小数据量的更新。
常见的情况是数据库的数据文件在ZFS 上,并且是做OLTP 为主的应用。原因是大文件的
blocksize 是 128K ,如果只更新其中一小部分数据,由于ZFS 是 copy-on-write 的方式来更新
数据,这种情况下仍然要读写128K 的数据,造成了不必要的开销。
另外,修改了Record Size 后,对之前创建的文件不起作用。
ARC (Adaptive Replacement Cache)
这实际上是 ZFS 的文件系统的cache。它是一个可以自动伸缩的 cache。目前一个操作系统实
例里只有一个 ARC ,不管这个操作系统上有多少个ZFS Pool 。而且metadata 和实际的数据都
共用这个ARC 。
如果没有其它应用或操作系统本身争用内存,ZFS 会尽可能多地使用物理内存作为 cache。如
果事先知道应用程序或操作系统需要使用多少内存,可以考虑限制ARC 的大小。在/etc/system
中设置,例子:set zfs:zfs_arc_max=0x200000000 (设置 ARC 最大为 8G
文档评论(0)