在我的公司,我们正在build立一个新的SQL Server 2012框。 我们有6个物理驱动器,每个3000个演出。 我们正在考虑两种不同的RAIDconfiguration,并想知道哪一种会更快一些:
有6个物理驱动器,每个3000个演出
选项1:一个带有三个分区的大型RAID 10。 一个操作系统分区,一个数据分区,一个事务日志分区(分区将防止不受限制的增长)。
选项2:一个RAID 1使用两个驱动器,一个分区用于操作系统,一个分区用于事务日志,另一个RAID 10使用剩余的四个驱动器
假设所有的旋盘磁盘没有闪存盘,那么传统的“正确”布局将是选项2,因为它将事务日志的IOPS与数据库文件隔离。 在大多数用例中这是正确的决定。 有些工作负载不能从这种布局中受益,但几乎没有受到这种工作负担的实际工作负载。
如果您的RAID控制器上有大容量的写入caching(1 GB或更大)(如果您对性能认真的话,您应该这么做),那么布局的影响就更小了。 在这种情况下,select选项1。
另外,如果您select选项1,则不要为日志和数据分别创build卷。 在同一个物理媒体上分离数据的唯一办法是让你头痛,当你意识到自己select了错误的大小,现在很难改变。
从理论上讲,RAID 10的执行速度更快,因为物理读取/写入单个磁盘的数据量是RAID 1configuration的三分之一(在您的情况下)。 另外,在RAID 1中有4个驱动器没有什么意义。
无论如何,你应该在实验室环境中testing这两种情况,做出有根据的决定。
如前所述,传统的DBA会尽可能将数据库IO与日志IO保持一致。 准确地说,这取决于你的数据库configuration(和用法)。 我会build议去select#2 – (如果可能的话)为系统添加一个独立的卷。 3t硬盘驱动器不是随机IO中最快的,所以保持系统(和页面文件)远离数据库arrays会更好。