Sha*_*ace 3 performance zfs pool
我们有 20 个 2TB SATA 驱动器用于 ZFS 池。我对获得良好 I/O 性能的最佳方法提出了一些建议,同时能够提供一些冗余(我们希望实现的目标是在数据丢失之前发生 3 次磁盘故障)。
我对是否需要使用镜像或raidz 感到有些困惑。
这 20 个驱动器将插入 2 个 16 端口的 raid 控制器(每个控制器上 10 个)。也许我为每批 10 个磁盘创建硬件 raid 卷,然后在 zfs 中,然后镜像两个可用的 raid 卷,从而创建一个超级卷?
任何建议都会很棒。
使用 20 个磁盘,您有很多选择。我假设您已经有用于操作系统的驱动器,因此这 20 个磁盘将是专用数据驱动器。在我的Sun Fire x4540(48 个驱动器)中,我在镜像设置中分配了 20 个驱动器,在条带化 raidz1 配置中分配了 24 个驱动器(每个 raidz 6 个磁盘和 4 个条带化 vdev)。两个磁盘用于操作系统,其余磁盘是备用磁盘。
你用的是哪个控制器?您可能需要参考:ZFS SAS/SATA 控制器建议
如果可以,请不要使用硬件突袭。当驱动器作为原始磁盘提供给操作系统时,ZFS 会蓬勃发展。
您的 raidz1 性能随着 raidz1 组中条带数量的增加而增加。对于 20 个磁盘,您可以使用 4 个 raidz1 组,每个组由 5 个磁盘组成,或者 5 个组(每组 4 个磁盘)。后者的性能会更好。您在该设置中的容错能力将维持每组 1 个磁盘的故障(例如,在正确的条件下可能有 4 或 5 个磁盘可能发生故障)。
raidz1 或raidz2 组的读取速度相当于一个磁盘的读取速度。通过上述设置,理论上的最大读取速度将相当于 4 或 5 个磁盘(对于每个 vdev/raidz1 磁盘组)。
使用镜像设置可以最大限度地提高速度,但此时您会遇到控制器的带宽限制。您可能不需要那种速度,因此我建议将raidz1 和stripes 结合使用。在这种情况下,您可以为每个镜像对维持一个故障磁盘(例如,如果它们是正确的,则 10 个磁盘可能会发生故障)。
无论哪种方式,无论您采用哪种解决方案,都应该考虑热备件安排。可能有 18 个磁盘以镜像方式排列,带有 2 个热备件,或者带有 2 个热备件的 3 条带 6 磁盘 raidz1...
当我构建我的第一个 ZFS 设置时,我使用了 Sun 的这篇笔记来帮助理解 RAID 级别的性能......
http://blogs.oracle.com/relling/entry/zfs_raid_recommendations_space_performance
20 个磁盘的示例:
20 个磁盘镜像对。
pool: vol1
state: ONLINE
scrub: scrub completed after 3h16m with 0 errors on Fri Nov 26 09:45:54 2010
config:
NAME STATE READ WRITE CKSUM
vol1 ONLINE 0 0 0
mirror ONLINE 0 0 0
c4t1d0 ONLINE 0 0 0
c5t1d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c6t1d0 ONLINE 0 0 0
c7t1d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c8t1d0 ONLINE 0 0 0
c9t1d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c4t2d0 ONLINE 0 0 0
c5t2d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c6t2d0 ONLINE 0 0 0
c7t2d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c8t2d0 ONLINE 0 0 0
c9t2d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c4t3d0 ONLINE 0 0 0
c5t3d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c6t3d0 ONLINE 0 0 0
c7t3d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c8t3d0 ONLINE 0 0 0
c9t3d0 ONLINE 0 0 0
mirror ONLINE 0 0 0
c4t4d0 ONLINE 0 0 0
c5t4d0 ONLINE 0 0 0
Run Code Online (Sandbox Code Playgroud)
20 个磁盘的条带化 raidz1,由 5 个磁盘的 raidz1 vdevs 的 4 个条带组成。
pool: vol1
state: ONLINE
scrub: scrub completed after 14h38m with 0 errors on Fri Nov 26 21:07:53 2010
config:
NAME STATE READ WRITE CKSUM
vol1 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c6t4d0 ONLINE 0 0 0
c7t4d0 ONLINE 0 0 0
c8t4d0 ONLINE 0 0 0
c9t4d0 ONLINE 0 0 0
c4t5d0 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c6t5d0 ONLINE 0 0 0
c7t5d0 ONLINE 0 0 0
c8t5d0 ONLINE 0 0 0
c9t5d0 ONLINE 0 0 0
c4t6d0 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c6t6d0 ONLINE 0 0 0
c7t6d0 ONLINE 0 0 0
c8t6d0 ONLINE 0 0 0
c9t6d0 ONLINE 0 0 0
c4t7d0 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c6t7d0 ONLINE 0 0 0
c7t7d0 ONLINE 0 0 0
c8t7d0 ONLINE 0 0 0
c9t7d0 ONLINE 0 0 0
c6t0d0 ONLINE 0 0 0
Run Code Online (Sandbox Code Playgroud)
编辑:或者,如果您想要两个存储池,您可以将 20 个磁盘分成两组:
10 disks in mirrored pairs (5 per controller).
AND
3 stripes of 3-disk raidz1 groups
AND
1 global spare...
Run Code Online (Sandbox Code Playgroud)
这为您提供了两种类型的存储、良好的冗余、备用驱动器,并且您可以背靠背测试每个池的性能。
| 归档时间: |
|
| 查看次数: |
2304 次 |
| 最近记录: |