优化RAID设置为SQL Server(Optimal RAID setup for SQL ser

2019-09-03 01:57发布

我们有一个SQL 2005数据库后端为我们的网站,目前大约10GB的大小。 有很多超过写入的读取,虽然我没有确切的统计数据。

我们正在升级数据库服务器和我的想法得到4个磁盘,并在两个RAID 1阵列设置起来的 - 一个用于数据文件和其他的操作系统和日志文件。 这会是最佳的设置或将RAID 5是数据文件的更好吗? RAID 10变得有点昂贵,并可能是矫枉过正我们。

在这个阶段,SQL Server应保持多数据库的RAM(8GB),但它会成长,所以我不想完全依赖这一点。

编辑:我们一定要在生产服务器上的冗余,因此RAID 0本身已经出来了。 RAID 10是好的,但可能是我们有点贵。

Answer 1:

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

我们已经实现了我的工作类似的场景,他们的工作非常出色。

RAID 1

RAID 1为您提供了1个磁盘写入,但2个磁盘读取的速度。

当您将数据写入到RAID 1阵列,它必须将数据写到两个磁盘,这样你就不会获得任何性能提高,但是这是你得到你的数据安全。

从RAID 1个阵列读数据时,控制器将来自两个磁盘,因为它们具有在其上的相同的数据读出。

RAID 5

这是用于保护大量数据是有用的。 RAID 5的成本的增加比RAID 1(或RAID 0 + 1,一旦你正在做的能力超出单个磁盘的大小)对于相同量的数据的慢很多。

如果你想保护600GB在RAID 5可以实现与4x200gb驱动器或3x300gb驱动器,总需要购买驱动器空间800-900gb。 RAID 1将需要购买的空间1,200gb(与600GB硬盘是相当较昂贵)或RAID 0 + 1,让您使用更便宜的容量驱动器的驱动器2x600gb(即:4x300gb或6x200gb),但仍需要一个总的1,200gb购买的空间。

RAID 0 + 1

提供了类似的优点RAID 1把它上了一个台阶与跨磁盘条带化。 我假设,如果你担心高并发的读写,你也将使用多处理器/多内核。 您将同时处理多个查询等等条纹是不会帮助之多。 你会看到在一个RAID 0 + 1,使用大型数据文件的单一应用,如视频编辑更好的优势。

当我前一段时间研究这个同样的问题,为客户我发现这篇文章是非常有趣http://blogs.zdnet.com/Ou/?p=484 。 在第二页,他兼谈从RAID 0 + 1独立RAID 1个阵列创建大量的性能改进的变化。 这是在更大的规模(20磁盘和16个磁盘SAN),但相同的概念。 进行负载平衡,而不是使用RAID 0 + 1的只是基本无知的条带化多个卷之间的数据的能力对于SQL Server是一个很大的概念。



Answer 2:

我想花一点时间确保你的数据库是有效的索引; 监测它的全表扫描,确保最频繁的查询读尽可能少的数据成为可能; 我会采取一个缓慢的磁盘设置一个高效设计的数据库,通过对SSD的不当索引的数据库。



Answer 3:

鉴于有很多超过写入的读取,RAID 5将是您的数据文件的速度。

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

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



Answer 4:

请注意,关键性能指标将是寻求速度,而不是数据速率。 也就是说,一个典型的数据库是磁盘绑定(因为你可能会因为它的增长)将由磁盘可以有多少每秒IO的支持是有限的,而不是他们可以连续读取支持的最大数据速率。

这意味着,如果你想知道如何使用4个磁盘(例如),两个RAID1对应该给你更好的性能比一个4个磁盘阵列RAID5。 当然,你不会得到尽可能多的可用存储了两个RAID1对。



Answer 5:

考虑到数据库的小尺寸我会用4 15krpm 2.5" SFF SAS硬盘,设置为两个独立的RAID 1个镜像。我会通过类似一个Adaptec 5805 PCI-E×8 SAS控制器运行它们。我把另一个安全。酒吧内存映射整个数据库,一个非常大的/昂贵的SAN或使用SSD在一个阵列上的数据和日志我很确信这将是只是为了钱最快的设置。

希望这可以帮助。



Answer 6:

两件事情,

该理论是RAID 1为您提供了两个驱动器用于读取,但不”认为等于两倍的性能。 作为事实上,这不,通常连续读取SPEE结束是完全一样的一个驱动器。 令人惊讶的,但真正做....真实世界测试,不依赖于理论。

随着中说,我会去的两个RAID 1 ......但不是像你说的,一个是操作系统,另一个用于数据。 我会对他们中的一个小部分操作系统分区,但肯定给双方突袭到SQL Server的数据。 给SQL Server的所有设置就可以了。

SQL Server可以跨越双条纹,你绝对不想与0 + 1去,尽管这里什么人说。 他们又在寻找理论基准,不明白,SQL Server可以条带的所有数据在磁盘,并且能够以最优化的方式这样做。

RAID 1是只为数据冗余......除此之外,给尽可能多的,你可以到SQL Server,并让它做它的事......它非常善于它做什么。

你有一个0 + 1,并将其分解成两个RAID 1 ....做真实世界的测试,你会惊奇地发现是SQL Server的工作快处。



Answer 7:

如果您使用的是硬件控制器与电池供电缓存RAM,像样的数目RAID 5是不错的。 选择一个块大小和配置数据库,以便条带大小(数据磁盘*块大小)等于DB写入大小。 确保您的数据分区[对齐/是的倍数]的条带大小。

否则,RAID 1 + 0一直是数据库服务器一个不错的选择。



Answer 8:

我还建议建立一套基准值的,它允许您同时做更多的创办预测比只是把你的手指在空气(或询问StackOverflow上,似乎隐约和奇怪的类似的两个概念)。

对于某些基线值,你也可以衡量变更的效益,并为以后升级了良好的基础......

(如果不知道,拿起性能工程一些文献(或维基百科)。这是东西整个分支,只是这类问题涉及)。



Answer 9:

顺便说一句,我在那里工作,他们有一个高端的SAN,但这一次表在约2分钟。 我打破了驱动器为简单的RAID 1套,并让SQL Server的处理条纹......不是SAN。 2分钟下降到45秒。

有关于这个网...其他物品其很难得到突袭“真正的信徒接受这一点,这就是我为什么这么强调,关于这一点。



Answer 10:

我喜欢,我已经我的戴尔R210-II的Linux服务器上配置RAID 10。 惊人的表现...



文章来源: Optimal RAID setup for SQL server