zfs 6存储磁盘+ USB引导

时间:2018-11-14 15:24:11

标签: zfs

我正在将6个磁盘组织到ZFS池中。由于我的主板(supermicro)可以处理6 SATA,因此我认为将操作系统(centOS7)安装在外部USB记忆棒(32Gb)上,以便为ZFS利用最大数量的磁盘。

外部USB centos棒工作良好(目前),并且我的想法是我不太在意,因为重要数据将存储在ZFS池中。它是否正确?还是ZFS将在OS上存储某些内容?理想情况下,如果USB记忆棒死了,我应该能够用另一个替换它,并且应该将ZFS池配置写入ZFS池本身。

有6个磁盘(每个1Tb),并且知道该池将不会增长(我的意思是除非我投资$$,否则我将没有更多的SATA),您建议的最佳配置是什么?当然,我担心冗余,我应该镜像3个磁盘。评论?

1 个答案:

答案 0 :(得分:1)

我认为将操作系统与数据池分开是有意义的。只要确保您有办法在USB记忆棒上重新创建一切即可;否则,如果丢失或损坏,您将感到抱歉。

对于您的ZFS池配置,我看到几个选项:

  • 6条
    • 仅元数据的冗余(无数据冗余)
    • 最佳存储容量
    • 近乎最佳的读取性能
    • 最佳写入性能
  • 2条条纹,每条都是3向镜
    • 可以容忍任何2个磁盘的丢失,有时甚至可以容忍最多4个磁盘(每条带2个磁盘死掉时)
    • 66%的可用存储空间浪费在冗余数据上
    • 最佳读取性能
    • 最大写入吞吐量降低3倍
  • raidz1带有全部6个磁盘
    • 可以容忍丢失任何1个磁盘(恰好是1个磁盘,不能再丢失)
    • 〜20%的可用存储空间浪费在冗余数据上
    • 近乎最佳的读取性能
    • 用于子条纹更新的读取-修改-写入限制了最大写入吞吐量,可能是2倍
  • raidz2带有全部6个磁盘
    • 可以容忍丢失任何2个磁盘(恰好2个磁盘,再也不能丢失)
    • 〜35%的可用存储空间浪费在冗余数据上
    • 近乎最佳的读取性能
    • 用于子条纹更新的读取-修改-写入限制了最大写入吞吐量,可能是2倍

除非您非常在意写吞吐量(如果考虑使用三向镜像,则可能不需要),对于大多数用例,我可能会建议使用raidz2。您极不可能单独丢失3个驱动器(如果这样做,则可能是自然灾害/电力问题等),并且raidz2是“有效的”,因为它可以精确存储要生存的冗余数据量两次失败,但没有更多,这意味着与使用两个三向镜像(33%->〜65%)相比,您可以获得更多的存储空间来存储数据。

除了两个三向镜像之外,您还可以使用其他“低效”数据冗余技术,例如2x raidz1,每个具有3个磁盘。我没有提到这些,因为我认为它们的权衡不如我上面列出的那样。

但是要记住,RAID-Z的一个缺点是,事后很难在现有池中添加更多磁盘。有一个名为"RAID-Z expansion"的功能正在开发中,但我认为它尚未交付任何地方。释放后,您应该可以在现有池上使用它,尽管它不允许您添加更多奇偶校验(只是更多数据磁盘)。

如今,扩展RAID-Z池的最常见方法是将容量增加一倍,方法是在另一个raidz2组中添加6倍以上的驱动器,并在两个RAID-Z组之间进行条带化。或者,您可以使用zfs send-> zfs receive将数据复制到根据您的需要配置的新池中,这比添加更多磁盘到同一个池更灵活,但也更复杂。 >