SQL Server 2008 R2 的最佳磁盘配置是什么?

SQL Server 2008 R2 的最佳磁盘配置是什么?

我们有一台新的戴尔 R710 服务器,其存储配置如下:

8 个 146GB SAS 10k 6Gbps 磁盘
1 个 Perc H700 集成控制器(2 个 4 个磁盘 - 每个端口有 2 个支持 4 个磁盘的端口)

  1. 如果我们只追求性能,最佳配置是什么?

  2. 如果我们追求性能但希望数据弹性,最佳配置是什么。

  3. 按照上面的2点,但是有一个热备用磁盘?

我们计划运行 Windows 2008 R2 和 SQL Server 2008 R2。

最大化存储容​​量并不是首要关注的问题。

浏览过 Server Fault 和其他资源后,我最初的想法是:

RAID 1 中的 2 个磁盘用于操作系统
RAID 10 中的 4 个磁盘用于数据文件
RAID 1 中的 2 个磁盘用于事务日志

我还考虑过将 tempdb 放在事务日志磁盘或操作系统磁盘上?

答案1

我的猜测是:

  1. 仅为了性能:RAID 0(这将被视为只有 1 个磁盘,总存储空间为 1168GB;

  2. 为了提高性能,但具有数据弹性:RAID 5+0(至少需要 6 个磁盘),或者您也可以选择 RAID 1+0 配置,制作 4 对 RAID 1,并在 RAID 0 中制作 4x2 磁盘阵列;

                                     RAID 0
       ╔═════════════════╦═════════════╩═══════════╦══════════════════════╗
       ║                 ║                         ║                      ║
     RAID 1           RAID 1                    RAID 1                 RAID 1 
    (2x146GB)        (2x146GB)                 (2x146GB)              (2x146GB)
    

总存储空间为 584GB,由于 RAID 0 剥离功能,将被视为唯一的一个磁盘。

3、如果您希望拥有热备用磁盘,那么RAID 0+5 可能会很方便。

编辑#1

在阅读了您对 2-4-2 磁盘配置的建议后,我猜这没必要。我个人更倾向于如上所示的 RAID 1+0 配置。我认为增益不会那么多,因为您有 8 个速度相同的磁盘。如果您有两个磁盘比其他 6 个磁盘慢,情况就会有所不同,那么我会考虑将这两个磁盘用于操作系统。但就目前的情况而言,我猜增益可以忽略不计。

此外,如果您的 DBA 或程序员为数据库中的正确数据创建了正确的索引,那么这种麻烦就微不足道了。有了四个可以快速剥离在一起的磁盘,并通过 RAID 1 确保弹性,我相信您不会遇到麻烦。

我希望这会有所帮助!=)

这有帮助吗?

答案2

我对相同的配置有了解 - 您可以在这里找到一些答案:1 个逻辑驱动器与 1 个 RAID 控制器上的 2 个逻辑驱动器如何将数据与日志文件分离?

答案3

我知道这是一个老问题但它仍然有意义。

首先,关于性能的一些说明。正如您所提到的,有三个“部分”:数据文件、日志文件和 tempdb。

1) 数据文件:一般是随机 I/O。如果是读取量很大的工作负载,RAID 5 是个不错的选择。如果有大量写入,则最好使用 RAID 1+0

2) 日志文件:通常是顺序写入。RAID 1+0 是最佳选择,但考虑到您的限制,可能有点过头了,我稍后会讲到。出于性能和安全原因,最好将它们分开(http://support.microsoft.com/kb/2033523/en-us

3) tempdb:通常是一个重大瓶颈,需要大量随机读/写。不需要“安全”,因为 SQL 会在启动时重新创建它。

一个选项,正如您使用过的,是设置两组 RAID 1+0。数据文件可以放在一组上,日志文件和操作系统可以放在另一组上。tempdb 最好放在第一组还是第二组取决于您的工作量。如果写入量很大,那么就把它和数据放在一起(这样日志文件就不会成为瓶颈),但如果日志文件不是问题,那么 tempdb 最好和它们放在一起。

这也是一个安全的选择,因为需要许多驱动器发生故障才会丢失数据。

另一个选项是日志文件使用 RAID 1(2 个磁盘)。然后,您可以对数据文件使用 RAID 1+0 / RAID 5(3-4 个磁盘)。然后,您可以将其他磁盘专用于 tempdb。您不需要使用 RAID 0,您只需为 tempdb 创建多个文件并为每个磁盘分配一个即可。

如果您想添加热备用,那么您将面临一个棘手的问题,因为驱动器数量太多:RAID 1+0 需要偶数。请注意,RAID 5 在重建过程中存在一定数据丢失风险,因为重建过程漫长,而且需要计算奇偶校验。

编辑 我又读了一些资料,RAID 5 已经不再被推荐了——因为需要重建,所以它并不那么安全。RAID 1+0 才是真正的最佳选择。例如:http://en.community.dell.com/dell-groups/dtcmedia/m/mediagallery/19861480/download.aspx(PDF 中的第 9-10 页)。其中一个(多个)来源:http://www.reddit.com/r/sysadmin/comments/ydi6i/dell_raid_5_is_no_longer_recommended_for_any/

通用笔记

  1. 防止日志文件碎片化。确保使用较大的自动增长因子合理地调整日志文件的大小
    http://www.sqlskills.com/blogs/kimberly/8-steps-to-better-transaction-log-throughput/

  2. 确保您的分区正确对齐。

有两个相关性,满足这两个相关性是实现最佳磁盘 I/O 性能的基本前提条件。以下计算的结果必须为整数值:

分区偏移量 ÷ 条带单元大小

条带单元大小 ÷ 文件分配单元大小
http://technet.microsoft.com/en-us/library/dd758814(v=sql.100).aspx

  1. 如果可能,请将簇大小设置为 64 KB

相关内容