代码之家  ›  专栏  ›  技术社区  ›  EMP

SQL server的最佳RAID设置

  •  15
  • EMP  · 技术社区  · 16 年前

    我们正在升级我们的数据库服务器,我正在考虑获取4个磁盘,并将它们设置在两个RAID 1阵列中—一个用于数据文件,另一个用于操作系统和日志文件。这是最佳设置还是RAID 5更适合数据文件?RAID 10有点贵,对我们来说可能是杀伤力太大了。

    在这个阶段,SQL Server应该将大部分数据库保存在RAM(8GB)中,但它会增长,所以我不想完全依赖于此。

    10 回复  |  直到 16 年前
        1
  •  17
  •   C R Rob Cowie    12 年前

    您使用独立RAID 1镜像的概念是正确的策略。

    在我的工作中,我们已经实现了类似的场景,它们工作得非常好。

    RAID 1

    RAID 1的速度为1个磁盘用于写入,2个磁盘用于读取。

    从RAID 1阵列读取数据时,控制器将从两个磁盘读取数据,因为它们上的数据相同。

    突袭5

    如果要使用RAID 5保护中的600gb,可以使用4x200gb驱动器或3x300gb驱动器来实现,这需要购买的驱动器总空间为800-900gb。RAID 1将是2x600gb驱动器,需要1200GB的购买空间(600gb驱动器更昂贵),或者RAID 0+1允许您使用较便宜的容量驱动器(即4x300gb或6x200gb),但仍然需要1200GB的购买空间。

    RAID 0+1

    不久前,当我为一位客户研究同一问题时,我发现这篇文章非常有趣 http://blogs.zdnet.com/Ou/?p=484 . 在第二页中,他讨论了从RAID 0+1阵列到独立RAID 1阵列的变化,从而大大提高了性能。这是一个更大的规模(20磁盘和16磁盘SAN),但概念相同。SQL Server能够在多个卷之间实现数据负载平衡,而不只是使用RAID 0+1的基本非信息条带化,这是一个很好的概念。

        2
  •  3
  •   SqlACID    16 年前

        3
  •  1
  •   Mitch Wheat    16 年前

    如果可能,请为事务日志文件使用单独的RAID 1+0阵列。

    编辑:创建RAID 5阵列至少需要3个磁盘。

        4
  •  1
  •   TimB    16 年前

    请注意,关键性能指标将是寻道速率,而不是数据速率。也就是说,磁盘绑定的典型数据库(随着它的增长,您的数据库可能会变为磁盘绑定的数据库)将受到磁盘每秒可支持的IOs数的限制,而不是磁盘可支持的顺序读取的最大数据速率。

    这意味着,如果您想知道如何使用4个磁盘(例如),两个RAID1对应该比一个4磁盘RAID5阵列提供更好的性能。当然,您不会从两个RAID1对中获得那么多可用存储。

        5
  •  1
  •   Chopper3    16 年前

    考虑到数据库的小尺寸,我将使用四个15KRPM2.5“SFF SAS磁盘,设置为两个独立的RAID 1镜像。我会通过Adaptec 5805 PCI-e x 8 SAS控制器来运行它们。为了安全起见,我把数据放在一个阵列上,把日志放在另一个阵列上。除了映射整个数据库的内存,一个非常大/昂贵的SAN或使用SSD,我非常确信这将是最快的设置。

        6
  •  1
  •   Rob Rob    16 年前

    有两件事,

    话虽如此,我会选择两个RAID 1…但不像你说的那样,一个用于操作系统,另一个用于数据。我会在其中一个上有一些小的操作系统分区,但肯定会将这两个RAID都提供给sql server以获取数据。尽可能为sql server提供所有设置。

    SQL Server可以在对之间进行条带化,您绝对不希望使用0+1,不管这里有人怎么说。他们又在看理论基准测试,不明白sql server可以跨磁盘将其所有数据条带化,并且可以以优化的方式这样做。

        7
  •  0
  •   Zan Lynx    16 年前

    如果您使用的硬件控制器具有相当数量的电池备份缓存RAM,RAID 5就很好。选择块大小并配置数据库,使条带大小(数据磁盘*块大小)等于数据库写入大小。确保数据分区[对齐/是]条带大小的倍数。

    否则,RAID 1+0始终是DB服务器的良好选择。

        8
  •  0
  •   Andy Andy    16 年前

    我还建议建立一组基线值,让你们都可以做一些更有根据的预测,而不仅仅是把手指放在空中(或者问StackOverflow,这两个概念似乎模糊而奇怪地相似)。

    有一些基线值,你也可以测量你的变化的有效性,并为未来的升级奠定了良好的基础…

        9
  •  0
  •   Rob Rob    16 年前

    网上还有其他关于这一点的文章……很难让“真正的信徒”接受这一点,这就是为什么我如此强调这一点。

        10
  •  0
  •   dr.linux    13 年前