• Welcome to LiuJason's Blog!

[硬核长文]ZFS阵列全等级性能对比|Mirror RaidZ RaidZ2 RaidZ3 Striped

Linux笔记 Jason 2 months ago (05-04) 234 Views 0 Comments QR code of this page
文章目录[隐藏]

前言

ZFS被称为是世界上最后一个存储系统(emm),还有人说”完全填充ZFS的128位存储池所需的能量,实际上比煮沸海洋需要的更多”。不论是从扩展性还是从性能上讲ZFS都有着独特的优势,在用了几年ZFS之后,现在已经离不开这个文件系统了。
其实想整理这篇文章已经很久了,但是一直懒的动笔,今天终于下定决心来写一下了,整理了网上一些比较权威的实测数据,同时也从原理上来讲讲到底如何选择ZFS的阵列等级。

ZFS简介

以下内容直接摘抄自维基百科

ZFS是一个拥有逻辑卷管理功能的文件系统,最早源自于Oracle为Solaris操作系统开发的文件系统。ZFS具有可扩展性,并且包括大量保护措施防止数据损坏,支持高存储容量、高效数据压缩、集成文件系统、卷管理、快照和写时复制、连续完整性检查与自动修复、RAID-Z、原生NFSv4 ACL等功能,并且能被精确配置。ZFS有两个主要实现,分别来自Oracle和OpenZFS,它们之间极度相似,这使得ZFS在类Unix系统中广泛可用。

ZFS的特性

  • 存储池 Pooled-storage
  • 写入时复制 Copy-on-write
  • 快照 Snapshots
  • 数据完整性验证和自动修复
  • RAID-Z
  • 最大单个文件大小为 16 EB(1 EB = 1024 PB)
  • 最大 256 千万亿(256*1015 )的 ZB(1 ZB = 1024 EB)的存储

不同等级Level的ZFS阵列

在谈论RAID阵列的时候,最常被问到的问题是:“哪个等级的阵列是最好的?”实际上没有最好的选择,如何选择完全取决于想要实现的特性和愿意放弃的特性。 实际上我们最应该问自己的问题是:“我们的数据有多重要?”
不管是ZFS阵列还是常规的RAID阵列,都有三个非常重要的指标:性能、容量以及数据完整性(Performance, capacity and data integrity),脱离了任何一个指标的阵列都是无意义的。

但是对于不同盘位下的推荐ZFS等级,可以参考一下这个:

ZFS与RAID阵列等级划分

我们经常把ZFS阵列和RAID阵列的各个等级划等号,这里给尚不了解RAID阵列的同学补个课

ZFS不同磁盘数量 x 阵列等级下的性能对比

这里我们会给出性能实测,并在测试结果前面列出磁盘数量,RAID类型,容量和性能指标,以便于比较。速度显示“ w”表示写入,“ rw”表示重写,“ r”表示读取,吞吐量以兆字节/秒为单位。
下表是不同ZFS阵列等级在未压缩的条件下测速结果。 数据来源CALOMEL

题外话-关于压缩

ZFS使用最大为1024 KB的可变大小的块。如果启用了数据压缩(LZJB或LZ4),则使用可变块大小。如果可以压缩一个块以使其适合较小的块大小,则可以在磁盘上使用较小的大小以使用较少的存储并提高IO吞吐量,但代价是增加了用于压缩和解压缩操作的CPU使用量。

根据上面的数据可以看到随着物理磁盘数量的增加,压缩对性能的影响较小。 实际上,通过lz4压缩算法,在RAIDZ(等价RAID5)中使用三个磁盘就可以最大程度地提高读写速度。 因此建议是对所有阵列启用压缩,因为开启后节省的IO性能远远超过增加的一点点CPU使用率,并且可以压缩数据以节省空间。


This article is under CC BY-NC-SA 4.0 license.
Please quote the original link:https://www.liujason.com/article/743.html
Like (1)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址