Answers:
FWIW我在单个ZFS池中有多达92个磁盘的经验,到目前为止,它工作正常。
但是,如果您真正谈论的是数百个磁盘,则可以考虑将它们划分为少量分离的(但仍然很大)的池。我不想知道例如zpool scrub
在3000磁盘池上运行的时间(但是您想定期清理)。同样zpool status
,如此大量磁盘的命令输出也不是一件容易的事。那为什么把所有的鸡蛋放到一个篮子里呢?
(有关dedup的注意事项:请注意,尽管dedup可以在数据集级别进行控制,但它会在池级别发现重复项。即,如果按照建议进行分区,则可能会得到更差的dedup结果。另一方面,需要更多的内存来容纳单个巨型池的dedup哈希,如果该池太大,则可能不适合ARC + L2ARC。因此,如果您使用dedup,则可用内存量可能是最大实际池大小的一个很好的指标)
这是您可能要查看的网站,以考虑池的大小和配置以防止数据丢失。
https://blogs.oracle.com/relling/entry/zfs_copies_and_data_protection
这是一个古老的问题,但它与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中以“以前的版本”显示。