最好的我的SQL Server 2005的RAIDconfiguration

我有SQL SERVER 2005数据库运行在Windows Server 2008与以下configuration服务器:HP Proliant ML380 G7 CPU:1 RAM:10 GB的RAM HHD:3 * 300 GB HHD与RAID 5configuration。

它有10个实时数据库和10个历史数据库,大小从500MB到6GB不等。 这些数据库有大约100位将读写的用户。

有很多读取比写每秒,我没有确切的统计数字。

现在,我们正在尝试升级服务器,并考虑为数据文件和操作系统,日志文件和tempdb提供更好的RAIDconfiguration。

  • 任何人都可以build议我这将是我的系统最好的RAID?

  • RAID1或RAID5或RAID10?

  • 我应该去两个RAID?

从我的search中我发现RAID 10是不错的,但也有人说“RAID 10的优势是神话”,请参考下文。

http://www.zdnet.com/blog/ou/comprehensive-raid-performance-report/484

有这样的统计数据将是非常有益的。 通常,我尝试估算一个应用程序可能需要运行的平均IOPS数量,并做出响应。 有了这些信息,我就可以执行一种容量规划,以评估哪个RAID级别最适合使用,并估算主轴/磁盘的数量以实现所需的IOPS(因为每个磁盘可以根据其转速提供一定的IOPS ,平均延迟和平均寻道时间)。

只是一个说明例子。 根据此文档 ,MS SQL Server 2008在3557个SQL事务(每秒)中生成29000 IOPS。 假设我们有一个具有所需IOPS的数据库,其中75%的请求为READ IOPS,25%为WRITE IOPS(1个读取请求或1个写入请求为1个IOPS)。 这个例子将不计入caching命中。

现在,有多lessIOPS将提供底层磁盘arrays/磁盘? 我们可以用这个简单的公式来估计它

TOTAL_IOPS = REQ_IOPS x READ_IOPS + REQ_IOPS x WRITE_IOPS x RAID_PENALTY 

在我们的例子中,我们有REQ_IOPS = 29000READ_IOPS = 0.75WRITE_IOPS = 0.25 。 唯一缺less的variables就是所谓的RAID惩罚。 单个SAS磁盘(15k RPM)的平均IOPS约为200。 但是当一个磁盘是RAID组的一部分时,我们无法获得这个数量的IOPS,因为需要进行一些计算来将数据写入磁盘,以便从磁盘故障中恢复。 所以RAID1 / 10(有2个子镜像)惩罚2,因为会有2个写入发生,每个磁盘写1个,而RAID5 / 50惩罚4,因为每次更改磁盘,我们读取数据,读取奇偶校验,然后在操作完成之前写入数据并写入奇偶校验。 那么RAID6的惩罚是6。

这对我们意味着什么? 让我们有RAID10configuration与RAID_PENALTY = 2

 TOTAL_IOPS = 29000 x 0.75 +29000 x 0.25 x 2 = 36250 IOPS TOTAL_DISKS = 36250 / 200 ~ 182 disks 

在使用RAID_PENALTY = 4 RAID5configuration中

 TOTAL_IOPS = 29000 x 0.75 +29000 x 0.25 x 4 = 50750 IOPS TOTAL_DISKS = 50750 / 200 ~ 254 disks 

上面的例子告诉我们,实现29000 IOPS显然需要RAID5configuration中比RAID10更多的磁盘。 另外一个问题是这种configuration的可用磁盘容量是多less? 如果我们的SAS磁盘有500GB,那么在RAID10configuration下,我们将有500×182/2 = 45.5TB,而RAID5 500×(254-1)= 126.5TB(与RAID10相同的configuration将需要506磁盘!!!)。 很不错。

那么你需要以最优惠的价格获得IOPS吗? 那么请使用RAID10,因为它具有最佳的价格/ IOPS比率。 还是你喜欢更高的容量,但有相似的IOPS? 然后去与RAID5,因为它有最好的价格/ MB比率。

最后,这张表总结了各种RAID级别的共同特征,并可能帮助您select正确的一个:

在这里输入图像说明

正如你可以看到RAID10是从性能angular度来看最合适的。 RAID5在写入方面performance不佳,因为它有4的惩罚,但它提供了更好的容量。

RAID5很less适合。 至less,您应该从arrays中抽取一个驱动器来分析性能。 arrays重build可能需要几个小时,不包括更换驱动器的时间。 arrays下降一个驱动器时,性能通常较低。

我会selectRAID 10.拥有单独的主轴用于事务日志并不罕见,并且具有顺序写入特征。 RAID 1可能对此有好处。

AFAIK for SQL Serverbuild议使用RAID 0,RAID 1和RAID 5。
检查这个链接: 1