为什么ZFS在科技界和企业界如此受欢迎?
这要从ZFS 是什么,它有哪些特性说起。ZFS 是一个先进的文件系统。因此,它有一些有趣的 特性 。比如:
[*]存储池
[*]写时拷贝
[*]快照
[*]数据完整性验证和自动修复
[*]RAID-Z
[*]最大单个文件大小为 16 EB(1 EB = 1024 PB)
[*]最大 256 千万亿(256*1015 )的 ZB(1 ZB = 1024 EB)的存储
让我们来深入了解一下其中一些特性。
存储池与大多数文件系统不同,ZFS 结合了文件系统和卷管理器的特性。这意味着,它与其他文件系统不同,ZFS 可以创建跨越一系列硬盘或池的文件系统。不仅如此,你还可以通过添加硬盘来增大池的存储容量。
ZFS 可以进行 分区和格式化 。
ZFS 存储池
写时拷贝写时拷贝 (Copy-on-write)是另一个有趣并且很酷的特性。在大多数文件系统上,当数据被重写时,它将永久丢失。而在 ZFS 中,新数据会写到不同的块。写完成之后,更新文件系统元数据信息,使之指向新的数据块(LCTT 译注:更新之后,原数据块成为磁盘上的垃圾,需要有对应的垃圾回收机制)。这确保了如果在写新数据的时候系统崩溃(或者发生其它事,比如突然断电),那么原数据将会保存下来。这也意味着,在系统发生崩溃之后,不需要运行 fsck 来检查和修复文件系统。
快照写时拷贝使得 ZFS 有了另一个特性: 快照(snapshots)。ZFS 使用快照来跟踪文件系统中的更改。 快照 包含文件系统的原始版本(文件系统的一个只读版本),实时文件系统则包含了自从快照创建之后的任何更改。没有使用额外的空间。因为新数据将会写到实时文件系统新分配的块上。如果一个文件被删除了,那么它在快照中的索引也会被删除。所以,快照主要是用来跟踪文件的更改,而不是文件的增加和创建。
快照可以挂载成只读的,以用来恢复一个文件的过去版本。实时文件系统也可以回滚到之前的快照。回滚之后,自从快照创建之后的所有更改将会丢失。
数据完整性验证和自动修复当向 ZFS 写入新数据时,会创建该数据的校验和。在读取数据的时候,使用校验和进行验证。如果前后校验和不匹配,那么就说明检测到了错误,然后,ZFS 会尝试自动修正错误。
RAID-ZZFS 不需要任何额外软件或硬件就可以处理 RAID(磁盘阵列)。毫不奇怪,因为 ZFS 有自己的 RAID 实现:RAID-Z 。RAID-Z 是 RAID-5 的一个变种,不过它克服了 RAID-5 的写漏洞:意外重启之后,数据和校验信息会变得不同步(LCTT 译注:RAID-5 的条带在正写入数据时,如果这时候电源中断,那么奇偶校验数据将跟该部分数据不同步,因此前边的写无效;RAID-Z 用了 “可变宽的 RAID 条带” 技术,因此所有的写都是全条带写入)。为了使用 基本级别的 RAID-Z (RAID-Z1),你需要至少三块磁盘,其中两块用来存储数据,另外一块用来存储 奇偶校验信息 。而 RAID-Z2 需要至少两块磁盘存储数据以及两块磁盘存储校验信息。RAID-Z3 需要至少两块磁盘存储数据以及三块磁盘存储校验信息。另外,只能向 RAID-Z 池中加入偶数倍的磁盘,而不能是奇数倍的。
巨大的存储潜力创建 ZFS 的时候,它是作为 最后一个文件系统 而设计的 。那时候,大多数文件系统都是 64 位的,ZFS 的创建者决定直接跳到 128 位,等到将来再来证明这是对的。这意味着 ZFS 的容量大小是 32 位或 64 位文件系统的 1600 亿亿倍。事实上,Jeff Bonwick(其中一个创建者)说:“完全填满一个 128 位的存储池所需要的 能量 ,从字面上讲,比煮沸海洋需要的还多。”
如何安装 ZFS?如果你想立刻使用 ZFS(开箱即用),那么你需要安装 FreeBSD 或一个 使用 illumos 内核的操作系统 。 illumos 是 OpenSolaris 内核的一个克隆版本。事实上,支持 ZFS 是一些有经验的 Linux 用户选择 BSD 的主要原因 。
如果你想在 Linux 上尝试 ZFS,那么只能在存储文件系统上使用。据我所知,没有任何 Linux 发行版可以在根目录上安装 ZFS,实现开箱即用。如果你对在 Linux 上尝试 ZFS 感兴趣,那么 ZFS on Linux 项目 上有大量的教程可以指导你怎么做。
附加说明这篇文章论述了 ZFS 的优点。现在,让我来告诉你一个关于 ZFS 很现实的问题。使用 RAID-Z 会很贵 ,因为你需要购买大量的磁盘来增大存储空间。
你已经使用过 ZFS 了吗?你的使用经验是什么样的?请在下面的评论中告诉我.
页:
[1]