Answers:
这是一篇不错的博客文章:http : //sqlserveradvisor.blogspot.com/2009/03/sql-server-disk-configuration.html
关于磁盘对齐的白皮书:http : //msdn.microsoft.com/zh-cn/library/dd758814.aspx
简而言之,您的操作系统应位于RAID 1上,数据文件应位于RAID 10上(最好),日志文件应位于RAID 1上。
SQL性能文章:http : //www.sql-server-performance.com/faq/raid_1_raid_5_p1.aspx
关于十大最佳性能提示的PDF:http : //www.stlssug.org/docs/Best_Practices_for_Performance.pdf
另外,出于性能原因,请记住将TEMPDB放在单独的磁盘上。我确定Paul Randal会来这里,并引起您的注意。
MS表示为什么要使用tempdb:http://msdn.microsoft.com/en-us/library/ms175527.aspx
这是一个很大的“取决于”问题。
由于我不是存储专家,因此我无法为您解答如何创建单个RAID阵列的问题,但是我可以为您提供其他帮助。
您需要考虑的第一件事是各种数据库的工作量-OLTP(读/写)或DSS / DW(大部分读)。对于读/写工作负载,您应该查看RAID 1或RAID 10(RAID 1 + 0),因为它们提供了冗余和出色的读/写性能。对于大多数工作负载,您可以使用RAID5。不应将RAID 5用于读/写工作负载的原因是,您要为写入性能付出一定的性能损失。
就其本质而言,事务日志是可读写的(或主要是写操作,具体取决于您是否使用事务日志进行任何操作,例如日志备份或复制),因此永远不要将其放在RAID 5上。
这意味着对于某些数据库和工作负载,RAID 5上可能有数据文件,RAID 1/10上有日志文件,而对于其他数据库,RAID 1/10上可能有所有文件。更进一步,如果您具有分区数据库,则该数据库可能包含一些读最多的数据和一些读/写数据,甚至可能在同一表中。可以将其拆分为单独的文件组,然后将每个文件组放入适当的RAID级别。
实际数据库的分离又取决于工作量以及底层IO子系统的功能-例如,将事物存储在单个RAID阵列上而不是SAN上,可能需要更高程度的分离。
Tempdb本身就是一个特例,因为它通常是一个负载很重的数据库,应该与其他数据库分开存储。系统数据库不应大量使用,并且可以放置在任何地方,只要有冗余即可。
这是我帮助编写的白皮书的链接,该白皮书应该对您有所帮助:物理数据库存储设计。还要确保您的IO子系统可以处理预期的工作负载-请参阅此白皮书:部署前I / O最佳实践。最后,请确保使用正确的RAID条带大小(在较新的系统上通常为64K或更高),正确的NTFS分配单元大小(通常为64K)以及在Windows Server 2008之前的系统上,正确设置磁盘分区偏移量。有关这些信息以及指向它们的更多信息的指针以及为什么应采用这种方式进行配置,请参阅此博客文章:磁盘分区偏移量,RAID条带大小和NTFS分配单位是否设置正确?。
Bototm产品线:了解您的工作量和IO子系统功能,然后相应地实施。
希望对您有帮助。
PS就tempdb而言,它在如何配置它方面有很多蠕虫,并且存在各种冲突的信息。我在TF 1118周围的误解中写了一篇有关tempdb数据文件配置的综合博客文章。
这里有比我更好的MSSQL专家,但总的来说,我建议以下几点:
C上的OS和代码:-这应该是本地磁盘,应该是RAID1阵列对-为此,我们使用2 x 2.5英寸SAS 146GB 10krpm磁盘,但是您可以使用2 x SATA 7.2磁盘。数据应以非常快的速度(10krpm或更高)在RAID 1 / 10、5 / 50/6/60阵列上,无论您需要什么大小-我们将数据存储在FC SAN LUN上,通常在“第2层” / 10krpm磁盘组上。日志应位于单独的非常快(15krpm)小型(10GB或更小?)RAID 1阵列对上-我们将其保存在FC SAN LUN上,通常在非常小的“ tier1” / 15krpm磁盘组或“ tier0” /上ssd组。
无论哪种方式,您都希望它们中的每个块都位于单独的主轴/阵列上以提高性能-当然,它们都可以在单个磁盘上工作,但是我想您正在寻求性能和成本之间的平衡。
我们将master / tempdb与常规数据库存储在一起,但是您可以将其分成单独的数据阵列LUN。
希望这可以帮助。