ZFS和SAN-最佳做法?


16

关于 ZFS的大多数讨论都建议关闭硬件RAID,ZFS应该直接与磁盘通信并管理主机上的RAID(而不是RAID控制器)。

这在具有2至16个甚至更多本地磁盘的计算机上是有意义的,但是在具有大型SAN的环境中呢?

例如,我工作的企业拥有一个中等大小的SAN,其中有2个完整的磁盘架,例如400个磁盘。我见过SAN架子比我们的架子更密集,SAN部署的架子比我们更大。

人们是否将100个磁盘直接暴露给大型ZFS服务器?300个磁盘?3000个磁盘?SAN管理工具是否有助于这种事情的自动化管理?

Answers:


5

FWIW我在单个ZFS池中有多达92个磁盘的经验,到目前为止,它工作正常。

但是,如果您真正谈论的是数百个磁盘,则可以考虑它们划分为少量分离的(但仍然很大)的池。我不想知道例如zpool scrub在3000磁盘池上运行的时间(但是您想定期清理)。同样zpool status,如此大量磁盘的命令输出也不是一件容易的事。那为什么把所有的鸡蛋放到一个篮子里呢?

(有关dedup的注意事项:请注意,尽管dedup可以在数据集级别进行控制,但它会在池级别发现重复项。即,如果按照建议进行分区,则可能会得到更差的dedup结果。另一方面,需要更多的内存来容纳单个巨型池的dedup哈希,如果该池太大,则可能不适合ARC + L2ARC。因此,如果您使用dedup,则可用内存量可能是最大实际池大小的一个很好的指标)


1
+1同意。您不必将所有磁盘都放在一个很大的池中。
PiL 2010年

我在想...是否有任何SAN(在hp,ibm,emc等产品中最常见)将所有磁盘直接暴露在盒子中?或者,您必须(据我所知)创建lun,然后将其关联到服务器?还是像chris打算的那样,它更像是DAS?
PiL 2010年

请注意,Sun / Oracle支持小组建议即使在其自己的OpenStorage产品系列上也禁用dedup,因为性能影响非常严重。
pfo 2010年

3

我们让我们的SAN管理RAID。为什么要花钱在所有电池供电的NVRAM和那些专用处理器上,然后将工作分担到服务器上,我想让CPU进行RAID校验和以外的操作?


1
我认为这个难题被称为“轮回之轮”,在这种情况下,将任务卸载到专用CPU之间会有一个恒定的周期,然后将任务回滚到CPU上,因为通用CPU的速度比专用CPU快。
克里斯,2010年


2

这是一个古老的问题,但它与7年前的今天才是相关的!

为了回答问题的第一部分,我不知道我们将如何将原始磁盘公开给可以运行ZFS的服务器的“ SAN”。根据定义,SAN仅表示块存储(LUN),或者与Filer / FS之类的内容一起表示NFS或CIFS。有一些“ SAN”实际上在内部运行ZFS,但这在很大程度上被抽象化了-磁盘从不暴露给服务器,而是SAN的“ Filer”组件向服务器提供了块或网络文件系统。

表示原始磁盘(通过SAS或不太可能通过FC)的设备是DAS。要运行ZFS,通常需要告诉RAID控制器将磁盘显示为JBOD。

但是,是否应该在SAN提供的LUN上使用ZFS?可能:ZFS与EXT4之类的实例提供了一些额外的功能,例如用于检查校验和或运行快照的清理。清理可能无法像执行磁盘RAID那样以相同的方式自动修复,但是它仍然可以提醒您损坏,有助于防止损坏。例如,您可以在Linux SAMBA文件服务器上创建的快照远远优于EXT,甚至可以在Windows中以“以前的版本”显示。


1

如果您不给ZFS冗余数据(例如镜像,RAID-Z)使用,那么您将失去使用它的许多好处。涉及的磁盘数量不会改变这一事实。但是,这是否真的取决于您的环境。您必须确定所需的存储功能(可能是劳动密集型分析),然后寻找满足您需求的最便宜的解决方案(您可以负担得起)。这可能意味着在各处都使用ZFS以及专用的Oracle存储设备(有些人这样做,并且许多磁盘都可以毫无问题地暴露于ZFS,并且使用Oracle工具进行管理),这可能意味着仅使用企业SAN产品,或者可能意味着使用某种混合(在这种情况下,您可能必须自行开发一些工具和流程来管理环境)。不要

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.