使用不同大小的驱动器进行 ZFS 初学者设置

使用不同大小的驱动器进行 ZFS 初学者设置

抱歉,我问了这些新手问题,我一直在 Google 上搜索各种创建 ZFS 突袭的演练,但似乎找不到我正在寻找的答案的正确链接。

这是我第一次尝试 RAID,从我读过的所有内容来看,zfs 似乎是最好的方法。

  1. 如果我必须更改 zfs 池背后的底层硬件,会发生什么情况?例如主板/处理器,如果它们在一两年内坏了,会发生什么情况?我能以某种方式移植我的 zfs 池吗?
  2. 我有相当多不同大小的驱动器,我试图通过冗余从中获得最大的存储空间。此配置的最佳设置是什么,使用这些不同大小的驱动器会损失多少空间。我创建它不是为了任何速度要求,我只是想要一个用于多个 HTPC 的文件服务器。我目前可用的驱动器是:
    • 1x 500GB“混合”驱动器
    • 1x 1TB 硬盘
    • 1 个 3TB 硬盘
    • 1 个 4TB 驱动器(稍后将添加到池中,当前保存着上面列出的驱动器的所有数据)
  3. 稍后将 4TB 驱动器添加到池中会出现任何问题吗?
  4. 有没有关于在 Linux 操作系统上运行这一切的建议,我应该为操作系统使用单独的驱动器吗?我熟悉 Ubuntu、RHEL 和 OpenSUSE / SLES。

非常感谢您的帮助,我正在继续阅读这方面的内容,只是需要一次性吸收很多内容,任何关于从哪里开始的链接也将非常有帮助。

答案1

如果我必须更改 zfs 池背后的底层硬件,会发生什么情况?例如主板/处理器,如果它们在一两年内坏了,会发生什么情况?我能以某种方式移植我的 zfs 池吗?

ZFS 池不依赖于硬件。只需确保您的 HBA(主机总线适配器)没有在硬件级别执行诸如加密数据之类的操作即可。ZFS 最适合与 HBA 配合使用,例如LSI 9211-8i或 IBM m1015交叉闪烁使用 9211-8i 固件,而不是完整的“硬件” RAID 卡。

我有相当多不同大小的驱动器,我正尝试通过冗余从中获得最大的存储空间。此配置的最佳设置是什么,使用这些不同大小的驱动器会损失多少空间。我创建它不是为了满足任何速度要求,我只是想要一个用于多个 HTPC 的文件服务器。我目前可用的驱动器是:1x 500GB“混合”驱动器 1x 1TB 驱动器 1x 3TB 驱动器 1x 4TB 驱动器(稍后将添加到池中,目前保存了上面列出的驱动器中的所有数据)

如果我是你,我会卖掉较小的驱动器,用这笔钱购买同样大小的较大驱动器。这将使你的生活变得轻松很多。此外,你不能直接将驱动器添加到 ZFS 池中。存在限制。阅读这里

稍后将 4TB 驱动器添加到池中会出现任何问题吗?

有可能。我的情况也类似。将来的某个时候,我将不得不增加存储容量。那时我计划购买第二个 HBA 和一组更大的新驱动器。然后,我将把现有驱动器中的所有数据传输到新驱动器,然后出售现有驱动器。可能还有其他(更便宜的)方法可以解决这个问题,但可以这样做:

  1. 保持所有驱动器大小相同
  2. 只需要额外购买一个 HBA 即可,不过有这个 HBA 也不错
  3. 不需要我一次更换一个驱动器,每次更换后都重新镀银。

有没有关于在 Linux 操作系统上运行这一切的建议,我应该为操作系统使用单独的驱动器吗?我熟悉 Ubuntu、RHEL 和 OpenSUSE / SLES。

不要使用 Linux,它没有原生的 ZFS 支持。Linux 对 ZFS 的支持来自Linux 上的 ZFSzfs-fuse。由于 Oracle 竭尽全力破坏 ZFS,因此 ZFS 的当前状态不断变化。ZFS 很可能在不久的将来以版本 28 为分支,因此除非您 100% 确定要坚持使用 Oracle 解决方案,否则不要使用任何大于 28 的版本来构建 ZFS 池。目前 FreeBSD 及其衍生产品支持 ZFS 版本 28。

因为你自称是 ZFS 菜鸟,所以我建议自由网络存储。我已经用了一段时间了,对它很满意。它绝对能为您提供最直接的设置。

其他想法:

确保为你的特定用例选择正确的奇偶校验级别。具体来说,确保你计划好联合研究机构。基本上,如果您使用的驱动器大于 2TB,则不会使用 RAID 5(RAID Z1)。还有一些其他因素需要考虑,这些因素也可能会促使您提高奇偶校验数据的级别。 这里是一篇关于该主题的好文章。

更新:

自从我发布这个答案以来已经过去了 1.5 年,在此期间,我一直在给 Linux 上的 ZFS(特别是 Ubuntu 服务器)另一次机会。自从我第一次尝试以来,它已经取得了长足的进步,到目前为止我非常满意。我切换的原因是 FreeNAS 和监狱系统的安装限制。我想将我的服务器用于不仅仅是 NAS 服务器,而 FreeNAS 使这变得困难。监狱系统很好,非常安全,但我家里真的不需要那种级别的安全性,而且我不想每次想要解压文件时都要登录监狱。我认为如果您刚刚开始使用 ZFS(因为它有 Web 界面)或者您只想要一个 NAS 设备(即不需要其他服务器功能),FreeNAS 仍然是一个不错的选择。

答案2

1:更改任何东西都没有问题。无论 CPU、主板或任何类似的东西,池都应该是可导入的。

2:ZFS 最适合大小相同的设备。此外,由于您需要冗余,大于最小设备的设备会浪费其额外大小。最后,您无法将设备(例如:4 TB 磁盘)添加到 RAIDZ。如果您只想要元数据冗余(我对此表示怀疑),您可以创建一个包含所有磁盘的条带,然后将 4 TB 磁盘添加到池中。

或者,您可以先创建一个 500 GB 的池,其中包含带有磁盘 1 和磁盘 2 的镜像,并保留磁盘 3 以备后用,然后在有 4 TB 可用磁盘时添加第二个镜像,磁盘 3 和磁盘 4 构成一个 3.5 TB 的池。

3:是的,参见#2

4:不推荐。

答案3

如果你想使用 zfs 创建使用不同磁盘大小的 raid,你需要使用“zpool create(你的池名称)raidz1 -f sdb sdc sdd”,-f 参数强制 zfs 使用不同的大小,例如 500gb 1tb 250gb hd

答案4

事实证明你无法在 zfs-fuse 中使用 ashift=12 创建:

# zpool create -n -o ashift=12 test /dev/disk/by-id/scsi-SATA_......
property 'ashift' is not a valid pool property

但它与来自 github zfs+spl 0.6.5.x 的版本兼容:

# dd if=/dev/zero of=/tmp/testfile bs=1M count=64
# zpool create -o ashift=12 test /tmp/testfile
# dd if=/dev/zero of=/tmp/testfile8 bs=1M count=64
# zpool create -o version=8 test8 /tmp/testfile8

相关内容