我有36 * 4TB HDD SAN机架。RAID控制器不支持RAID60,并且一个RAID组中最多支持16个HDD。因此,我决定将2个RAID6组的16HDD或4个8个HDD组成。我想将所有存储作为一个分区。
因此,如果我在硬件RAID6之上使用zfs池,可能会出错吗?是的,我知道强烈建议您使用本机HDD或直通模式。但是我没有这个选择。
还是在这种情况下我应该远离ZFS和软件突袭?(我对压缩和快照最感兴趣)
我有36 * 4TB HDD SAN机架。RAID控制器不支持RAID60,并且一个RAID组中最多支持16个HDD。因此,我决定将2个RAID6组的16HDD或4个8个HDD组成。我想将所有存储作为一个分区。
因此,如果我在硬件RAID6之上使用zfs池,可能会出错吗?是的,我知道强烈建议您使用本机HDD或直通模式。但是我没有这个选择。
还是在这种情况下我应该远离ZFS和软件突袭?(我对压缩和快照最感兴趣)
Answers:
因此,我决定将2个RAID6组的16HDD或4个8个HDD组成。
那不是做事情的最好方法。它可能效果很好,但是根据您的性能要求,可能效果不佳。
RAID5 / 6阵列的理想大小应使“跨越”该阵列的数据量的精确倍数与其上建立的文件系统的块大小相匹配。
RAID5 / 6阵列用作块设备-单个数据块跨越阵列中的磁盘,并且该块还包含奇偶校验数据。大多数RAID控制器都会将大小为2的幂的数据块写入阵列中的每个磁盘-确切的值可以在更好的RAID系统中配置-而Dot Hill单元就是那些“更好的RAID系统”之一。那很重要
因此,需要N x(每个磁盘块存储的数据量)来跨越整个阵列,其中N是数据磁盘的数量。一个5磁盘RAID5阵列具有4个“数据”磁盘,而一个10驱动器RAID6阵列具有8个数据磁盘。
因为当将数据写入RAID5 / 6阵列时,如果数据块足够大以覆盖整个阵列,则将为该数据(通常在控制器的内存中)计算奇偶校验,然后将整个条带写入磁盘。简单,快捷。
但是,如果要写入的数据块不足以覆盖整个阵列,那么RAID控制器必须做什么才能计算新的奇偶校验数据?考虑一下-它需要整个条带中的所有数据来重新计算新的奇偶校验数据。
因此,如果您使用默认的每磁盘块512kb制作一个16驱动器的RAID6阵列,则意味着需要7 MB的空间来“扩展”该阵列。
ZFS通常以128kb的块工作。
因此,ZFS将128kB块写入16驱动器RAID6阵列。在您建议的配置中,这意味着RAID控制器需要从阵列读取近7 MB的内存,然后重新计算这7 MB的奇偶校验。然后将整个7 MB重写回磁盘。
如果幸运的话,它们全都在高速缓存中,并且不会对性能造成重大影响。(这是“请勿使用RAID5 / 6”位置具有以下跟随项的主要原因之一-RAID1 [0]不受此影响。)
如果您不走运并且未正确对齐文件系统分区,则该128kB块将跨越两个不在高速缓存中的RAID条带,并且控制器需要读取14 MB,重新计算奇偶校验,然后写入14 MB。全部写一个128kB的块。
现在,这就是逻辑上需要发生的事情。好的RAID控制器可以采取很多优化措施来减少此类IO模式的IO和计算负载,因此可能还不错。
但是,在将128kB块写入随机位置的繁重负担下,拥有7 MB条带大小的16驱动器RAID6阵列的性能绝对是非常好的机会。
对于ZFS,用于大多数访问实际上是随机的通用文件系统的“理想”基础RAID5 / 6 LUN 的条带大小应是128kB 的偶数除数,例如32kB,64kB或128kB。在这种情况下,这会将RAID5 / 6阵列中的数据磁盘数量限制为1(这是无意义的-即使可以进行配置,最好仅使用RAID1 [0]),2、4或8。最佳性能在最好的情况下,最好对RAID5 / 6阵列使用128kB的条带大小,但是在通用文件系统中,最好的情况并不经常发生-通常是因为文件系统存储的元数据与其存储方式不同存储文件数据。
我建议设置5磁盘RAID5阵列或10磁盘RAID6阵列,并且将每个磁盘的块大小设置得足够小,以使跨越整个阵列条带的数据量为64kB(是的,我已经做到了ZFS之前-很多次)。这意味着对于具有4个数据磁盘的RAID阵列,每磁盘块大小应为16kB,而对于8数据磁盘的RAID阵列,每磁盘块大小应为8kB。
然后让ZFS使用整个阵列-也没有对它进行分区。无论驱动器是简单的单个磁盘还是RAID控制器提供的RAID阵列,ZFS都能正确地将其自身对准整个驱动器。
在这种情况下,在不知道确切的空间和性能要求的情况下,建议您设置三个具有64kB条带大小的10驱动器RAID6阵列或六个5驱动器RAID5阵列,配置几个热备份,并保存四个磁盘,以备将来使用。因为会的。
我肯定不会在JBOD模式下使用该磁盘系统-它是完全兼容NEBS 3级的设备,可直接在硬件中提供显着的可靠性和可用性保护。不要仅仅因为“ ZFS !!!!”就扔掉它。如果这是便宜的商品硬件,您可以将它们组装在一起吗?是的,具有ZFS处理RAID的JBOD模式是最好的-但这不是您拥有的硬件。 使用硬件提供的功能。
好吧,我咬...
这是应用程序错误的硬件。DotHill设置与HP StorageWorks MSA2000 / P2000具有相同的限制,因为单个阵列分组中只能使用16个驱动器。
硬件RAID上的 ZFS 或导出的SAN LUN不一定是问题。
但是,跨扩展机箱跨未知互连条带化ZFS LUN会带来一些风险。
认真地说,可能值得评估您是否需要在单个命名空间中使用所有这些存储...
如果您确实需要在单个安装架中使用这种类型的容量,则应该使用专用的HBA连接的JBOD机柜,并可能使用具有弹性电缆和更智能布局的多个主机。
您应该将所有驱动器直接连接到运行ZFS的盒子。获取SAS HBA,然后将驱动器连接到具有ZFS功能的设备(例如,运行OmniOS或SmartOS)。然后,您可以通过NFS,SMB,iScsi共享空间。
在硬件RAID逻辑卷之上的ZFS之所以是一个非常糟糕的主意,是因为ZFS需要块级访问才能真正正常运行。是的,它将可用,但是直到通过HBA或直接SATA连接将驱动器直接连接到OS上,功能才能完成。一个例子是,在您提出的配置中,ZFS不能合理地保护您的数据免受以下数据的更改(在HW RAID控制器的另一侧),因此不能保证数据的安全性。这是使用ZFS的主要原因之一,此外它还具有超快的速度。
ZFS是很棒的技术,我强烈推荐它。但是您将需要在这里重新访问您的结构,以便能够正确使用它。即让ZFS直接从磁盘创建逻辑卷(vdev)。
听起来您需要对ZFS的运行方式有更多的了解,然后才能准确地了解所提出的内容,而不是应实际执行的内容。