OLTP SQL Server的最佳磁盘设置

我们有一个很高的事务(大量读写)数据库服务器(运行SQL 2005),当前使用RAID 1操作系统分区(C :)和RAID 5数据/日志/ tempdb分区(D :)设置。 C:有2个驱动器,D:有4个驱动器。 该服务器有大约300个数据库,大小从10MB到2GB不等。

我一直在阅读关于分区磁盘的最佳实践,但由于我们的磁盘数量有限,所以希望对我们的设置有一些看法。

看起来RAID 10很受欢迎,但是我不认为我们只能用6个磁盘来使用它。

谢谢。

更新

我去了3个RAID 1分区(每个2个磁盘)

  • 分区1:OS,TempDB,备份
  • 分区2:日志
  • 分区3:数据

使用6个主轴设置RAID卷的常用“最佳”方法是:

  • 第1卷,操作系统和SQL事务日志。 2个磁盘镜像(RAID1)与BBWC。 事务日志的写入caching对于提高性能非常重要,因为SQL引擎等待日志写入完成,并且caching写入操作会显着减less写入延迟。 (BBWC表示电池支持写入caching,即写入caching打开的控制器和连接到控制器的电池备份单元。
  • 第2卷,剩余的数据库文件。 RAID 10(或RAID 1 + 0或RAID 0 + 1)中的4个磁盘。

操作系统的位置并不重要。 系统启动运行时,操作系统应逐渐进入稳定状态,操作系统只偶尔触摸磁盘。 如果您需要将操作系统置于4磁盘RAID 0 + 1arrays上,请不要担心。

此外,您必须确保分区边界 (因此文件系统块) 与RAID条带边界alignment

上述设置可能会或可能不会为您工作 – 当您告别RAID5时,您将失去一些容量。 对于现代的磁盘驱动器,您可能拥有足够的磁盘空间(每秒I / O通常成为容量之前的瓶颈)。 对于较旧的驱动器,容量可能是一个限制因素。

Kendal Van Dyke已经写了关于不同RAID级别,分区alignment以及它们在SQL Server工作负载上的性能的很好的概述 。

如果您的C:卷上有空间,请考虑将非常活动的数据库的事务日志文件和/或您的TempDB数据和日志文件移动到该卷上。 RAID 1比RAID 5更好。

投入尽可能多的内存来减less磁盘IO的数量(内存当前便宜)。 这将改善你的阅读。 如果你使用的是32位的环境,那么记住你必须configurationAWE来处理大于4GB的内存。

由于驱动器数量有限,因此无法获得最佳的设置。 这将是单独的磁盘设置为:

  • 系统
  • 数据
  • 日志
  • 的TempDB

如果你能够承受失去一个磁盘的空间(你在RAID 5空间中为4个磁盘空间损失了1个磁盘空间,那么在RAID 10空间上就会失去2个),然后重新configuration磁盘可能会增加性能有点,如果瓶颈是磁盘。

你看到具体问题吗? 或者你只是想在优化设置之前有什么?

除了K布莱恩·凯利(K Brian Kelley)给出的build议外,还要考虑分区alignment。 如果您使用Windows 2008,则不必担心分区会自动alignment,但在Windows 2003上,您需要手动执行此操作。 阅读本白皮书以了解谁应该这样做。 通过调整分区,可以提高30-40%的性能。

http://msdn.microsoft.com/en-us/library/dd758814.aspx

如何将一个RAID 10中的所有6个磁盘设置为一个分区,并为另一个(1或2)分区设置数据? 考虑到你可以通过在机器中添加大量的RAM来避免重复使用swap?