下载中心 | 网站地图 | 站内搜索 | 加入收藏

安恒公司 / 技术文章 / 安恒公司网管员手记 / 选用用zfs的理由

2007-07-23 sushasha  阅:    下页:
选用用zfs的理由

[ug-szosug] 使用ZFS的十条理由-ZFS特性介绍

使用ZFS的十条理由-ZFS特性介绍
Solaris ZFS—The Most Advanced File System on the Planet 
对于任何机器,从台式机到数据中心,ZFS 都能满足其文件系统的要求。由于设计时就是以管理员为出发点,因此 ZFS 也是唯**款能自我修复,自我管理的操作系统文件系统。它提供了如下*势:
(1)简单管理
ZFS 结合了复杂的存储管理理念并可进行自动化管理,从而将管理费用降低了 80%。
(2)可验证的数据完整性
ZFS 使用了 64 位的校验和来保护所有数据,可探测并挽救无记载数据崩溃。
(3)无限制的伸缩性
作为世界上*款 128 位文件系统,ZFS 提供的性能高达 32 位或 64 位系统的 160 亿平方倍。
(4)*高的性能
其事务模式摆脱了在 I/O 发布顺序上的诸多传统限制,从而大大提高了性能。

由于 ZFS 是基于虚拟存储池的顶层构建的(不像传统的文件系统,还需单独的容量管理器),它大大降低了创建和删除文件系统的复杂程度。这不仅免除了容量管理器的许可证费用和签定单独支持合同的麻烦,还降低了管理费用并提高了存储利用率。

ZFS 对应用程序来说就是*个标准的 POSIX 文件系统 – 无需移植。但对管理员来说,它就是*种汇集存储模式,它摒弃了过时的容量理念,同时也避免了相关的分区管理、分区分配和文件系统容量调整等问题。成千甚至上万的文件系统都可同时使用 ZFS 的共用存储池,并且每个文件系统都可根据需要恰到好处地占用*定空间。存储池中所有设备的 I/O 带宽组合对任*文件系统都始终可用。

ZFS 也是唯**个对所有数据都执行端对端 64 位校验和以防止无记载数据崩溃的文件系统。它在读取任何数据时都将检验其校验和,从而保证了应用程序更新的数据就是返回的数据。

1. 再也不需要fsck, scandisk
不管你是在用Linux,UNIX还是Windows,相信大家都有过类似的体会:当系统意外断电或者非法关机,系统重起后发现文件系统有inconsistent的问题,这时候就需要fsck或者scandisk 来修复,这段时间是非常耗时而且*后不*定能够修复成功。更糟糕的是,如果这是*台服务器需要做fsck的时候,只能offline(下线),而且现有应用往往都是大硬盘,相应fsck修 复时间也很长,这对许多使用该服务器的用户来说几乎不能忍受的。而使用ZFS后大家可以彻底抛弃fsck这种工具,因为ZFS是*个基于COW(Copy on Write)机制的文件系统。COW是不会对硬盘上现有的文件进行重写,保证所有硬盘上的文件都是有效的。所以不会有这种inconsistent的概念,自然就不需要这种工具了。
2. 管理简单
ZFS作为*个全新的文件系统,全面抛弃传统File System + Volume Manager + Storage的架构,所有的存储设备是通过ZFS Pool进行管理,只要把各种存储设备加 入同*个ZFS Pool,大家就可以轻松的在这个ZFS Pool管理配置文件系统。大家再也不用牢记各种专业概念,各种命令newfs, metinit及各种Volume Manager的用法。在ZFS中我们只需要两个命令,zpool(针对ZFS Pool管理)和zfs(针对ZFS文件系统的管理),就可以轻松管理128位的文件系统。
举个例子,我们经常会遇到系统数据增长过快,现有存储容量不够,需要添加硬盘,如果依照传统的Volume Manager管理方式,那我们需要预*要考虑很多现有因素,还要预*根据应用计算出需要配置的各种参数。在ZFS情况下,我们的系统管理员可以彻底解放,再也不需要这种人为的复杂 考虑和计算,我们可以把这些交给ZFS,因为ZFS Pool会自动调节,动态适应需求。我们只需*个简单的命令为这个ZFS Pool加入新的硬盘就可以了:

zpool add zfs_pool mirror c4t0d0 c5t0d0

基于这个动态调节的ZFS Pool之上的所有的文件系统就可以立即使用到这个新的硬盘,并且会自动的选择**化的参数。
而且ZFS同时也提供图形化的管理界面.
3. 没有任何容量限制
ZFS(Zettabyte File System)文件系统就如其*字所预示,可以提供真正的海量存储,在现实中几乎不可能遇到容量问题。在现有的64位kernel(内 核)下,它可以容纳达到16 Exabytes(264)大小的单个文件,可以使用264个存储设备,可以创建264个文件系统。
4. 完全保证 数据 的正确和完整
由于ZFS所有的数据操作都是基 于Transaction(事务),*组相应的操作会被ZFS解 析为*个事务操作,事务的操作就代表着*组操作要么*起失败,要么*起成功。而且如前所说,ZFS对 所有的操作是基于COW(Copy on Write), 从而保证设备上的数 据始终都是有效的,再也不会因为系统崩溃或者意外掉电导致数据文件的inconsistent。
还有*种潜在威胁 数据的可能是来自于硬件设备的问题,比如磁 盘,RAID卡的硬件问题或者驱动bug。现有文件系统通常遇到这个问题,往往只是简单的把错误数据直接交给上层应用,通常我们把这个问题称作Silent Data Corruption。而在ZFS中,对所有数据不管是用户数据还是文件系统自身的metadata数 据都进行256位的Checksum(校 验),当ZFS在提交数据时会进行校验,彻底杜绝这种Silent Data Corruption情况。
5. 提供*异 性能和扩展性
和传统File System + Volume Manager + Storage架构不同,ZFS则是直接基于存储设备提供所有的功能,因此有自己独有的创新特性,性能自然非比寻常。
Dynamic Striping vs. Static Striping
由于ZFS是基于COW和*个全局动态的ZFS Pool,任何*次写 操作,都是对*块新数据块(Block)的*次写操作。ZFS从ZFS Pool中动态挑选出***的设备,并且以*个transaction(事 务)线性写入,充分有效地利用了现有设备的带宽,我们把这个特性称为Dynamic Striping。而相对应的Static Striping则是传统文件系统所使用的方式,Static Striping需要管理员预*对这组Stripe进行正确地计算人为 设置,而且如果加入新的设备则需要再次人为的计算和设置,更为严重的是如果人为计算错误,则会直接影响系统的性能。而在使用Dynamic Striping这种特性之后,我们根本不需要人为介入,ZFS会自动调整,智能的为你 提供*佳的设备,*快的操作方式。
支持多种 大小的数据块(Multiple Block Size)
ZFS支持多种大小的数据块定义,从512字节到1M字节。和传统文件系统往往都是固定大小数据块不同,ZFS则是可以动态的根据不同 大小的文件进行计算,动态的选择*佳的数据块。
因为不同大小数据 块,直接影响到实际使用硬盘容量和读取速度。如果使用较小的数据块,存储文件所导致的碎片则较少,读写小文件更快*些,但是会导致需要创建更多的metadata,读写大文件则会更费时。如果使用较大的数据块,使用的metadata较少,更利于读写大文件,但是会导致更多的碎片。ZFS根据实际调查现有文件使 用的情况,分析出*个选择数据块大小的算法,动态的根据实际文件大小确定*佳的数据块。所以ZFS是 非常智能的,在不需要系统管理员介入,就可以得到*个自我调*的结果。当然ZFS也支持用户对单个文件或者整个文件系统 所使用的数据块大小的自定义设置。
智能预读取(Intelligent Prefetch)
多数的操作系统都 有这种将数据预*读取的功能,而ZFS则是建立在文件系统上直接提供的*种更加智能的数据预读取功能。它不仅可以智能地识别出多种读取模式, 进 行提前读取数据,而且可以对每个读取数据流进行这种预读取智能识别,这个对许多流媒体提供者来说是件非常好的事情。
在扩展性上,和现有文件系统多是基于*个受限的静态模型不同,ZFS是采用ZFS Pool这个动态概念,它的metadata也是动态,并且读写操作都是可并行的,并且具有***概念,所以即使在大数据量,多设备的情况下仍可以保证性能的线性增长。
6. 自我修复功能
ZFS Mirror 和 RAID-Z
传统的硬盘Mirror及RAID 4,RAID 5阵列方式都会遇到前面提到过的问题:Silent Data Corruption。如果发生了某块硬盘物理问题导致数据错误,现有的Mirror,包括RAID 4,RAID 5阵列会默默地把这个错误数据提交给上层应用。如果这个错误发生在Metadata中,则会直接导致系统的Panic。 而且还有*种更为严重的情况是:在RAID 4和RAID 5阵列中,如果系统正在计算Parity数值,并再次写入新数据和新Parity值的时候发生断电,那么整个阵列的所有存储的数据都毫无意义了。
在ZFS中则提出了相对应的ZFS Mirror和RAID-Z方式,它在负责读取数据的时候会自动和256位校验码进行校验,会主动发现这种Silent Data Corruption,然后通过相应的Mirror硬 盘或者通过RAID-Z阵列中其他硬盘得到正确的数据返回给上层应用,并且同时自动修复原硬盘的Data Corruption 。
Fault Manager
在Solaris 10中,包含 *个ZFS诊断引擎和Solaris的 Fault Manager(这也是Solaris 10的 另*个新特性)交互,可以实时地诊断分析并且报告ZFS Pool和存储设备的错误,用户可以通过Fault Manager及时得到*个非常友善的消息。这个诊断引擎虽然不会采取主动的行为去修复或者解决 问题,但是会在消息中提示系统管理员可采取的动作。类似下面*个ZFS报错消息,其中REC-ACTION就是建议采取的动作:
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major
EVENT-TIME: Fri Mar 10 11:09:06 MST 2006
PLATFORM: SUNW,Ultra-60, CSN: -, HOSTNAME: neo
SOURCE: zfs-diagnosis, REV: 1.0
EVENT-ID: b55ee13b-cd74-4dff-8aff-ad575c372ef8
DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information.
AUTO-RESPONSE: No automated response will occur.
IMPACT: Fault tolerance of the pool maybe compromised.
REC-ACTION: Run ’zpool status -x’ and replace the bad device.
7. 安全性
在安全上,ZFS支持类似NT风格NFSv4版的ACL(读取控制列表)。而且前面所提到的256位验证码,用户可选择多种验证方式,包括SHA-256验证算法,从而在物理存储单元*别上保证数据的安全性。
8. 超强功能
ZFS作为“**个文件系统”,涵盖了基本的文件系统和Volume管理的功能,同时 *并提供许多企业*别的超强功能:Quota(配额),Reservation(预留), Compression(压 缩), Snapshot(快照),Clone(克隆)。并且速度非常快。有了这个文件系统,大家再也不需要任何Volume Manager了。
9. 兼容性
ZFS是*个完全兼容POSIX规范的文件系统,所以处于上层的应用程序是完全不受影响。ZFS也提供*个Emulated Volume模块,可以把任何*个ZFS文件系统作为普通的块设备使用。同时ZFS也可以使用基于Volume Manager构建的Volume作为存储设备单 元。这样在不需要修改应用程序,不修改已有文件系统下,给了大家*大的自由度去获得ZFS提供的各 种特性。
10. 开源
ZFS是Sun Microsystems公 司作为OpenSolaris的*个开源项目运作并且完全免费使用,点击这里(http://www.opensolaris.org/os/community/zfs/source/) 可以直接浏览到ZFS的代码。 这就代表着我们不仅同时可以享受商业公司的高质量,

虽然目前只有Solaris支持该文件系统,但是这种开源的模式必定会促进更多基于ZFS的应用。现在已经有国外开发者正在将ZFS移植到Linux和Mac OS上来。如果想要体验*下ZFS,由于目前它和Solaris 10绑定在*起,所以需要下载*新版的Solaris 10 6/06 (http://www.sun.com/software/solaris/get.jsp)。
--
This message posted from opensolaris.org
下页:   

相关文章
*次RAID5故障的恢复和经验教训 - 12-03-25 - 阅读: 266086
软raid5的容量扩展 - 12-02-09 - 阅读: 285168
linux下使用ssd - 11-03-10 - 阅读: 276243
关于EtherScope II系列网络通Linux系统的几个常见问题(ES2-LAN,ES2-WLAN,ES2-PRO,ES2-LAN-SX/I,ES2-PRO-SX - 10-02-25 - 阅读: 228846
在linux下用bt协议修复远程的文件 - 09-03-13 - 阅读: 183473
linux下利用badblocks程序在线修复坏道 - 08-12-26 - 阅读: 214509
*次软raid5上面的lvm的恢复过程 - 08-11-04 - 阅读: 211282
lvm2在线更换硬盘 - 08-04-28 - 阅读: 153741
Hp 激光打印机 P1008在linux下的驱动 - 08-01-16 - 阅读: 248261
linux下的视频设备的复用 - 07-12-21 - 阅读: 177752
多款设备采用Qtopia软件,奇趣科技统领VoIP设备Linux开发平台 - 07-12-17 - 阅读: 241943
debian下的无盘linux系统安装要点 - 07-12-09 - 阅读: 214040
zfs文件系统试用(zfs=raid+lvm+reiserfs4) - 07-10-29 - 阅读: 203978
linux下的后门检查程序rkhunter和杀毒程序clamav - 07-04-22 - 阅读: 307521
lvm逻辑卷空间扩展 - 07-04-19 - 阅读: 179308
利用lvm做存储快照 - 07-04-19 - 阅读: 219924
linux下读写ntfs分区中文编码问题 - 07-03-11 - 阅读: 236427
linux下的DV磁带视频采集和dvd刻录 - 07-02-13 - 阅读: 219979
linux内核虚拟机 kvm - 07-01-05 - 阅读: 295857
linux下raid5磁盘阵列实施 - 06-03-13 - 阅读: 284047

Email给朋友 打印本文
版权所有·安恒公司 Copyright © 2004   networks.anheng.com.cn   All Rights Reserved    
北京市海淀区*体南路9号 主语国际商务中心4号楼8层 (邮编100048) 电话:010-88018877