就块大小而言,RAID10 中的磁盘数量对于 Microsoft SQL 服务器是否重要?

就块大小而言,RAID10 中的磁盘数量对于 Microsoft SQL 服务器是否重要?

我们计划部署 Microsoft SQL Server 并将数据库存储在 RAID10(RAID1+0)块级存储上。

来源:维基百科

为了实现最佳运行,我总共将多少个驱动器放入阵列中是否重要?是像上图所示那样放入 4 个,还是放入 6 个、8 个或 10 个?

有人告诉我,我需要正确数量的驱动器才能为 MSSQL 优化块大小。

给出的示例是拥有包含六个驱动器 (D1–D6) 的 RAID10……

RAID 0
═ RAID1 (D1;D2)
═ RAID1 (D3;D4)
└ RAID1 (D5;D6)

…会导致问题,因为 64 kB 的块将被分成三部分,结果导致每个 RAID1 子阵列上都必须写入 0.33% 大小的块。

这只是为了进一步澄清我的问题而举的一个例子。那么,为了实现最佳运行,我总共将多少个驱动器放入阵列中是否重要?

请提供参考文献和解释来支持你的答案。

答案1

为了获得最佳性能,MSSql Server 的块大小应为 64kb,如一个简单的谷歌搜索

关于驱动器,RAID 10 至少需要 4 个驱动器(查看您自己链接的图像),然后您可以按 2 个驱动器为一组扩展至您喜欢的驱动器(再次查看您链接的图像)。但请记住,一旦系统投入使用,使用更多磁盘对其进行升级将非常麻烦,因此请确保放入尽可能多的磁盘以满足您的存储需求!

添加:

您的问题仍然使答案相同,您的 raid 上的块大小为 64kB,意味着它将写入 64kB 的块。使用 64kB 大小的文件运行的 MSSql 意味着它将以递归方式存储块。因此,假设您写入两个块,64kB 将存储到 D1,然后镜像到 D2,然后它将另一个块写入 D3 并将其镜像到 D4。它永远不会尝试拆分块,如果您将块大小设为 8kB,就会发生这种情况。然后它会将块分成 8 个部分,因此第 1、4、7 块将放在 D1 上,第 2、5、8 块将放在 D3 上,第 3、6 块将放在 D5 上。这当然会相应地进行镜像。

相关内容