raid如何在* disk *级别执行?

如果磁盘有512字节的物理扇区,并且有10个使用RAID 50 的磁盘,并且磁盘级别为1MB ,那么这个磁盘是如何工作

纠正我,如果我错了,但从概念上说,将有2个跨度由5个磁盘的RAID-5arrays组成,一个镜像到另一个。 因此,“条带”将由4×256KB的数据块组成,每个条带加上一个256KB的奇偶校验数据? 或做一个“条纹”包括平价?

如果考虑使用12个磁盘的RAID 10arrays呢? 将有6个镜像的磁盘对,在这些镜子上有条纹。 因此,对于1MB的条带大小,条带将被除以6,每个磁盘174,762.666字节,每个条带341.333个物理扇区。 每条纹真的是342个物理扇区吗?

对于那些想问我为什么问的人, 我正在试图确定相对于RAIDtypes的最有效的磁盘数量,最佳的条带大小。


另外,在问这个问题之前,我已经看到了https://en.wikipedia.org/wiki/Nested_RAID_levels 。 实际上,我在大量的SCSI / SAS / RAID / SAN厂商网站上做了大量的工作来寻找低级的devise细节,而且还没有看到有关磁盘实际磁盘格式的任何内容。 条纹只是在高度概念层面上讨论的,这很好,但并没有真正回答这个问题。

你会在这里find所有相关的细节。

基本上,所有的假设都是正确的:RAID 50是RAID 5arrays的条带(RAID 0),RAID 10是RAID 1arrays的条带。

然而,这是如何在物理上实现的强烈依赖于磁盘控制器; 有时,额外的空间用于内部信息,所以除非询问控制器供应商,否则您无法确切知道每个字节的使用情况,时间和地点。

关于条纹大小:除非您正在进行繁重的性能调整,否则这几乎是不相关的。 在这种情况下,它可能会产生影响,但它又取决于您正在使用的控制器和磁盘,还取决于操作系统,文件系统和实际的I / O负载。

根据经验,最好使RAIDarrays的条带大小与arrays上的卷所在的文件系统的簇大小相匹配。 这个大小应该根据卷预期处理的I / O负载(许多小文件或许多大文件?)来select。 但这只是一个普遍的build议; 而且,许多其他参数可能会影响I / O性能。

另外,请记住,在同一个RAIDarrays上可以有多个卷(如果使用SAN而不是本地存储,则更是如此),每个卷可能使用不同的群集大小并处理不同的I / O负载。

如果你真的想把你的存储调整到这个水平,不仅需要从物理磁盘到存储数据的实际应用中的每一个元素的完全控制,而且你还必须仔细分析它们定制了很多参数,其中条纹大小只是众多参数之一。


一个简单的案例研究:Exchange按顺序将数据库事务日志写为1 MB文件; 在正常的操作下,他们大多是书写而很less阅读; 他们可以占用一些空间,但是如果执行常规备份,则不会太多,因为每次完成数据库的完整备份时,它们都会被截断(即最旧的被删除)。

存储此类数据的最佳方法是使用两个磁盘的RAID 1arrays,条带大小为1 MB,电池备份的写入caching,使用NTFS文件系统格式化的单个卷和1 MB簇的大小; 哦,当然,你只需要在这个卷上存储单个数据库的事务日志。 如果你有更多的数据库,你将需要使用不同的卷和磁盘arrays,否则你将失去顺序I / O的所有好处。 (顺便说一句,实际的数据库数据必须去一个完全不同的地方,而不仅仅是性能,但主要是为了数据安全;如果你想要更多的细节,看看Exchange文档;但基本点是,他们有完全不同的我/ O模式,并且绝对不希望同时丢失数据库和事务日志。)

正如您所看到的,这种评估非常依赖于预期的I / O负载,并且不适用于将Exchange事务日志存储在非常特定的设置中的任何事情; 它可能会阻碍任何其他的工作量。

存储微调是一门艺术,需要大量的分析和经验才能使其正确。

马西莫给出了一个相当不错的总结,正如他所说,很大程度上取决于你正在运行的工作量。

另外,控制器和它们的固件起着很大的作用。 例如,在家我有一个LSI 8端口SAS / SATA HBA,可以作为RAID控制器运行。 Dell使用相同的硬件,但固件设置了不同的队列深度来支持特定的Dell磁盘。 在我的家用机器中使用5x 4TB WD用户磁盘时,我的OEM固件性能比戴尔固件高出约30%。 如果我使用OEM固件刷新戴尔卡,性能是相同的。

ConcernedOfTunbridgeWells指出,你有旋转磁盘…

如果你能够在Linux / Unix上运行这个工作负载,你可以考虑一个允许SSDcaching磁盘的文件系统。

在国内,我在Linux上运行ZFS,由于其灵活的校验和连续的基于哈希的一致性检查,因此非常可靠。 它本身支持SSDcaching,闪电只有一个适度的SSDcaching驱动器。 在HBA模式下,采用LSI的ZFSarrays比使用LSI作为硬件arrays要快。 工作量是Openstack虚拟化(它是我的实验室机器)。

更好的办法就是使用一个合适的SAN甚至NAS,知道如何调整控制器,高速caching,分离等特定的工作负载。