Solaris 10:使用ZFS的十条理由

【Solaris 10:使用ZFS的十条理由】Sun Microsystems公司正式发布的ZFS(Zettabyte File System)文件系统是第一个128位的文件系统 , 同时ZFS又被Sun Microsystems称作史上最后一个文件系统 。因为这个文件系统含有多项创新技术 , 不仅成功地解决现有文件系统的问题和陋习 , 而且前瞻性地考量了未来对存储空间的需求 , 单个文件系统可以达到256 quadrillion(264) Zettabytes(221) 。ZFS不仅符合POSIX文件系统的标准 , 而且提供了许多高级功能比如:Quota(配额) , Reservation(预留), Compression(压缩) , Snapshot(快照) , Clone(克隆)等 。如果你还在坚持使用现有32位或者64位的文件系统 , 如果你还在“痛并不快乐着地用着各式各样的 Volume Manager , 那就很值得看看这里列出的使用ZFS的十条理由 。
1. 再也不需要fsck, scandisk
不管你是在用Linux , Unix还是Windows , 相信大家都有过类似的体会:当系统意外断电或者非法关机 , 系统重起后发现文件系统有inconsistent的问题 , 这时 候就需要fsck或者scandisk 来修复 , 这段时间是非常耗时而且最后不一定能够修复成功 。更糟糕的是 , 如果这是一台服务器需要做fsck的时候 , 只能offline(下线) , 而且现有应用往往都是大硬盘 , 相应fsck修 复时间也很长 , 这对许多使用该服务器的用户来说几乎不能忍受的 。
而使用ZFS后大家可以彻底抛弃fsck这种工具 , 因为ZFS是一个基于COW(Copy on Write)机制的文件系统 。COW是不会对硬盘上现有的文件进行重写 , 保证所有硬盘上的文件都是有效的 。所以不会有这种inconsistent的概念 , 自然就不需要这种工具了 。
2. 管理简单
ZFS作为一个全新的文件系统 , 全面抛弃传统File SystemVolume ManagerStorage的架构 , 所有的存储设备是通过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同时也提供图形化的管理界面 , 下面是一个ZFS图形化管理的一个截屏:
3.没有任何容量限制
ZFS(Zettabyte File System)文件系统就如其名字所预示 , 可以提供真正的海量存储 , 在现实中几乎不可能遇到容量问题 。在现有的64位kernel(内 核)下 , 它可以容纳达到16 Exabytes(264)大小的单个文件 , 可以使用264个存储设备 , 可以创建264个文件系统 。
4. 完全保证数据的正确和完整
由于ZFS所有的数据操作都是基 于Transaction(事务) , 一组相应的操作会被ZFS解 析为一个事务操作 , 事务的操作就代表着一组操作要么一起失败 , 要么一起成功 。而且如前所说 , ZFS对 所有的操作是基于COW(Copy on Write) , 从而保证设备上的数 据始终都是有效的 , 再也不会因为系统崩溃或者意外掉电导致数据文件的inconsistent 。

推荐阅读