SQL Server:一个 12 驱动器 RAID-10 阵列或 2 个 8 驱动器和 4 驱动器阵列

SQL Server:一个 12 驱动器 RAID-10 阵列或 2 个 8 驱动器和 4 驱动器阵列

为 SQL Server 2008 设置一个盒子,哪个可以提供最佳性能(重度 OLTP)?RAID-10 阵列中的驱动器越多,性能越好,但丢失 4 个驱动器以将它们专用于事务日志是否会为我们提供更高的性能。

RAID-10 中有 12 个驱动器加一个热备用驱动器。

或者

8 个驱动器以 RAID-10 形式用于数据库,4 个驱动器以 RAID-10 形式用于事务日志,另加 2 个热备用驱动器(每个阵列一个)。

我们有 14 个驱动器插槽可供使用,它是一个较旧的 PowerVault,不支持全局热备用。

答案1

我会选择 10/2。日志通常很小且连续,您的 RAID 控制器应该能够有效地对它们进行排队,以便将它们写入 raid 1 中的 2 个磁盘而不会干扰其余部分。如果您的 RAID 控制器无法做到这一点,那么如果您着急,就不要考虑任何分割,直接使用 12。如果您有时间,请运行一些测试并查看哪些有效。遗憾的是没有全局热备件,但无论如何,听起来您有一个不错的盒子可以玩。

答案2

就我有限的知识而言,有两个主要因素需要考虑

  1. 数据库文件操作通常是随机的,因此您需要最大化该磁盘的 IOPS,而事务日志文件操作通常是连续的,因此您需要良好的原始吞吐量

  2. 您希望以这种方式分别存储主数据库和事务日志 - 如果您丢失了主数据库磁盘,您可以从备份+事务日志中重新生成数据库,如果您只是丢失了事务日志,您仍然拥有主数据库。

当然,这比上面的总结要复杂得多,但这就是基本情况。因此,我会建议使用两个单独的阵列,如果您有能力对两个阵列都使用 RAID10,那就太好了。

答案3

使用 RAID-10 中的 12 个驱动器应该会很好,但请确保服务器具有足够的内存。原因是,如果您有足够的内存,那么大多数数据写入都将被缓存,而且在将数据写入磁盘时,许多写入都将合并到单个 IO 事务中。对于 OLTP 数据库尤其如此。缓存为您提供了足够的带宽,以便将事务日志写入同一驱动器。您可以使用硬件 RAID 控制器,在写回模式下使用受 BBU 保护的内置缓存,进一步提高写入性能。

还请注意,使用 8+4 或 10+2 也是不错的选择,我能看到的唯一缺点是存储使用效率低下。除此之外,它还是很可靠的。

答案4

必须首先确定你的工作量。然后测试、测试、再测试(再怎么强调也不为过):

首先,“我的 RAID 10 中的磁盘越多,速度越快”的说法并不正确。这在很大程度上取决于您的 RAID 系统如何实现此 RAID 级别(写入/读取/条带化/缓冲区的分布……我可以继续说下去)。

其次,虽然将事务日志存储在与数据库不同的地方(磁盘)始终是一个好主意,但有效收益取决于您的工作负载,是否有很多但很小的写入,或者是否有很多但巨大的写入,写入/读取比率是多少,读取有多大......等等。

您说您正在执行大量 OLTP。根据我对这个术语的理解,这意味着大量读取,而不是大量写入(...是吗?首先确认这一点)。在这种情况下,将事务日志存储在同一个地方是可以的 - 所以我选择12 驱动器

相关内容