我有36*4 4TB SAN Rack。RAID控制器不支持RAID60,在一个RAID组中不支持超过16个HDD。所以我决定制作两个16硬盘的RAID6组或者8个硬盘中的4个。我想把所有的存储作为一个分区。
那么,如果我在硬件RAID6之上使用zfs池,还会有什么问题呢?是的,我知道强烈建议使用本地HDD或传递模式。但我没有这个选择。
或者在这种情况下,我应该远离ZFS和软件突袭吗?(我最感兴趣的是压缩和快照)
发布于 2016-11-22 12:12:03
所以我决定制作两个16硬盘的RAID6组或者8个硬盘中的4个。
这不是最好的做事方法。它可能工作得很好,但取决于您的性能要求,它可能不能。
RAID5 5/6数组的理想大小将是“跨”数组的数据量的确切倍数与构建在其之上的文件系统的块大小相匹配。
RAID5 5/6数组作为块设备工作--一个数据块跨越数组中的磁盘,该块还包含奇偶校验数据。大多数RAID控制器将向阵列中的每个磁盘写入两块大小的数据(确切值在更好的RAID系统中可配置),而您的Dot Hill单元就是那些“更好的RAID系统”之一。这一点很重要。
因此,需要N(每个磁盘块存储的数据量)来跨越数组,其中N是数据磁盘的数量。一个5磁盘RAID5阵列有4个“数据”磁盘,一个10驱动器RAID6阵列有8个数据磁盘。
因为当数据被写入RAID5 5/6数组时,如果数据块足够大到足以跨越整个数组,则会为该数据计算奇偶校验--通常在控制器的内存中--然后将整个条带写入磁盘。简单又快。
但是,如果正在写入的数据块不足以跨越整个数组,那么RAID控制器需要做什么才能计算新的奇偶数据?想想看--它需要整个条带中的所有数据来重新计算新的奇偶数据。
因此,如果您制作了一个16驱动器RAID6数组,默认的每个磁盘块为512 MB,这意味着“跨越”该数组需要7 MB。
通常,ZFS工作在128 in的块中。
因此,ZFS将一个128 to块写入16驱动器RAID6数组。在您提议的配置中,这意味着RAID控制器需要从数组中读取将近7 MB,并重新计算这7 MB之间的奇偶。然后将整个7 MB重写回磁盘。
如果你幸运的话,这一切都在缓存中,而且你不会受到巨大的性能打击。(这就是为什么“不要使用RAID1 5/6”这个位置有这样一个重要原因-- RAID10没有受到这种影响。)
如果您运气不佳,并且没有正确地对齐您的文件系统分区,那么128 MB块跨越两个不在缓存中的RAID条带,控制器需要读取14 MB,重新计算奇偶,然后写14 MB。全部写一个128 to块。
这就是逻辑上需要发生的。为了减少这类IO模式的IO和计算负载,好的RAID控制器可以进行许多优化,所以可能没有那么糟糕。
但是,在将128 MB块写入随机位置的沉重负荷下,具有7 MB条带大小的16驱动器RAID6阵列的性能极有可能非常糟糕。
对于ZFS,作为通用文件系统的基础RAID5/6 LUN(大多数访问实际上是随机的)的“理想”将有一个条大小,即128 an的偶数除数,例如32 an、64 an或128 an。在这种情况下,这将RAID1 5/6阵列中的数据磁盘数量限制在1(这是荒谬的--即使可能的话,最好只使用RAID10)、2、4或8。在最好的情况下,最好的性能将是对RAID1 5/6数组使用128 is的条带大小,但在通用文件系统中,最好的情况并不经常发生--通常是因为文件系统不像存储文件数据那样存储元数据。
我建议设置5磁盘RAID5数组或10磁盘RAID6数组,将每个磁盘块大小设置得足够小,使跨越整个数组条的数据量为64 is (是的,我以前多次为ZFS做过此操作)。这意味着对于一个具有4个数据磁盘的RAID阵列,每个磁盘块的大小应该是16 8kB,而对于一个8数据磁盘的RAID阵列,每个磁盘块的大小应该是8KB。
然后允许ZFS使用整个数组--不要对其进行分区。ZFS将正确地对齐整个驱动器,无论驱动器是一个简单的磁盘还是由RAID控制器提供的RAID数组。
在这种情况下,在不了解您的确切空间和性能要求的情况下,我建议设置三个10驱动器RAID6数组或6个大小为64 In的5驱动器RAID5数组,配置几个热备件,并为将来出现的任何情况保存4个磁盘。因为有东西会的。
我肯定不会在JBOD模式下使用那个磁盘系统--它是一个完全的NEBS三级兼容设备,它提供了内置在硬件中的重要的可靠性和可用性保护。不要仅仅因为“ZFS!”就把它扔掉。如果这是一件便宜的商品硬件,你用零件拼凑而成?是的,使用ZFS处理RAID的JBOD模式是最好的,但这不是您拥有的硬件。使用硬件提供的功能。
发布于 2016-11-23 13:17:04
好吧,我会咬.
这是应用程序的错误硬件。DotHill设置具有与HP StorageWorks The 2000/P 2000相同的限制,因为在一个数组分组中只能使用16个驱动器。
ZFS 顶层硬件RAID或导出的SAN不一定是一个问题。
然而,在未知互连线上对ZFS LUN进行条纹化,跨扩展底盘可能会带来一些风险。
说真的,您是否需要在单个名称空间中存储所有这些存储空间,这可能是值得评估的。
如果在单个挂载中确实需要这种类型的容量,则应该使用具有弹性布线和更智能布局的专用HBA-附加的JBOD外壳和可能的多个头部单位。
发布于 2016-11-22 08:12:19
您应该直接将所有驱动器附加到运行ZFS的盒中。获取SAS并将驱动器连接到ZFS功能盒(例如运行OmniOS或SmartOS)。然后您可以通过NFS、SMB、iScsi共享空间.
https://serverfault.com/questions/816065
复制相似问题