在 ZFS 中使用精简配置时,如何确保不会耗尽物理磁盘空间?

Mik*_*oss 7 zfs storage-area-network capacity-planning nexenta

如果这似乎是一个基本问题,请原谅我,但我在谷歌上找不到任何具体的东西,而且我不是系统管理员。

我们正在我们的办公室使用 NexentaStor 和 8 磁盘 RAID Z3 配置(8 x 1.36 TB 驱动器)设置 SAN,并且正在配置一切。

目前,就总磁盘空间而言,我们在 SAN 上有大约 10.8 TB 的“真实”存储空间,全部分配在单个 zpool/zvol 中。我正在考虑为 zvol 进行精简配置(为了论证起见)100 TB 的空间,以应对未来的增长。

理论上这似乎很简单:当我们接近用完实际磁盘空间时,我们只需添加一些新驱动器,它就会“正常工作”:无需担心文件系统大小调整或停机时间。

但是,我们如何知道何时需要添加更多容量,而不是每隔几个小时登录一次 SAN 并确保我们仍有可用空间?

例如,这通常是通过设置cron作业来处理的,还是 NexentaStor(或 ZFS 本身)在您接近容量时提供警告,或者您是否应该“知道”在任何给定时间还剩下多少空间?并且必须自己跟踪它?

如果有帮助,10.8 TB zvol 将用作我们的虚拟服务器和测试虚拟机(也是精简配置的)的后备存储(通过 iSCSI),所以我看到的部分问题是它可能易于运行如果我们不断地创建/快照/恢复虚拟机(我们在测试不同的机器配置和软件环境时会做很多事情),就会导致磁盘空间不足。

eww*_*ite 8

在 Nexenta 方面,有一个volume-check脚本设置为默认每小时运行一次。它将:
Check volume health and capacity, clear correctable device errors, validate mountpoints.
它还通过电子邮件发送每周总结报告。

但是,在为您列出的用途规划 Nexenta 存储解决方案时,您应该考虑一些事项。

  • 您可能需要考虑使用多个池以获得灵活性。单个池可以工作,但有时需要移动数据,或者只需要在本地存储上选择第二个池。
  • ZFS zvol 可以动态扩展/收缩。例如,如果您将 20TB 分配给精简配置的 zvol,则可以非常轻松地将其更改为 30TB 或 100TB。如果您目前没有,则无需为未来过度配置 100TB。
  • 使用精简配置的 zvol,一旦空间被使用,您就无法收回它。如果您在 10TB 池中精简配置 2TB zvol,填满 zvol,然后删除该 zvol 上的 VM,您的池仍将仅显示 8TB 可用空间。2TB 将保留。
  • 您将使用 ZFS 压缩或重复数据删除还是两者兼而有之?过度配置确实有意义的一种情况是,如果您使用的是内联压缩和高度可压缩的数据。对于重复数据删除的数据也是如此。就我而言,我使用的数据集压缩了 60%-80%,因此我提供的 zvol 比我实际拥有的存储量更大。
  • 使用镜像与 raidz1/2/3 相比,可以更轻松地扩展底层存储。您可以将镜像磁盘对添加到 zpool,但您不能扩展 raidz1/2/3,除非您添加另一个 vdev(raidz(x) 磁盘组)。您还希望重新平衡其中的数据以在磁盘之间重新分布。
  • 您将使用哪种虚拟化技术?如果是VMWare,则可以进行精简配置。我相信您会看到接近 80% 利用率的数据存储警告。如果您处于快照大小增长的危险境地,VMware 也会抱怨。
  • 如果您正在进行大量 VM 测试,或者 VM 的大小会波动,我建议对相对静态的 VM 使用 iSCSI 和 zvols,对测试 VM 使用 NFS(如果这是您首选的虚拟化解决方案的一个选项)。使用 NFS,您可以更有效地利用存储空间,因为您可以看到 zpool 的完整可用大小,而无需担心任何大小上限。

简而言之......我不会为了未来的增长而过度配置。这不是必需的。Nexenta 每小时检查一次,以提醒空间利用率。还要考虑是否要使用压缩(重复数据删除需要更多的规划)。在投入生产之前测试一下,看看虚拟机的足迹会是什么样子。以后更难改。


the*_*bit 6

如果你有一些像 Nagios 这样的监控系统,你可以很容易地写一个检查来评估输出,zpool list并根据你舒适区的阈值进行检查。

如果您没有监控系统,您应该利用这个机会安装一个 - SAN 是基础设施的关键部分,如果您不希望因磁盘故障而导致停机或数据丢失,则需要持续监控,空间不足、硬件故障或连接问题。