我总共可以使用 8 个物理磁盘(不包括镜像操作系统的 2 个)用于相当高使用率的 SQL Server。
它用于为使用量相当大的网络应用程序(Win2k3、IIS6、ASP.Net)提供服务(400K 用户),写入和阅读的比例相当均匀。但是数据库不是很大(还) - 目前大约 10G。
我最初的想法是按以下方式拆分数据库驱动器:
- 用于数据的硬件 Raid-5(3 个光盘)
- 用于日志的硬件 Raid-5(3 个光盘)
- Tempdb 单盘
- 用于服务器上备份的单张光盘
本质上,我正在通过减少不同写入(TempDB、日志和数据)之间的磁盘争用来寻找最佳性能。
我很想知道这是否是最佳设置,或者您是否会以不同的方式设置光盘布局。
我们可以再花 5000 英镑购买外部 Raid 设置,以允许 Tempdb 和备份也被 RAID 化,但我认为这有点过分了。
有什么想法吗?
如果磁盘空间不是您的主要问题,您应该使用 RAID 1 或 10,因为它们比 RAID 5 快很多,尤其是在写入方面;此外,只有 3 个磁盘的 RAID 5 非常无用,阵列越大,它就越有用。
我还避免为 tempdb 使用单个非 RAID 磁盘:如果它坏了,您不会丢失任何东西,但您的服务器将关闭,直到您可以更换它。
我会在 3 个 RAID 1 卷中配置磁盘,每个卷有 2 个磁盘,一个用于数据,一个用于事务日志,一个用于 tempdb;这留下了一个磁盘,您可以使用它来对备份卷进行 RAID 或作为全局热备用;我会避免将数据卷设为 RAID 5,因为这会使其变慢。
如果您需要更多的数据空间并且可以应对 tempdb 的丢失,您可以使用 RAID 10 中的 4 个磁盘存储数据,使用 RAID 1 中的 2 个磁盘存储事务日志,使用 1 个磁盘存储 tempdb。
您不太可能需要超过 2 个 RAID 1 磁盘来存储事务日志:如果您定期备份它们,它们不应该增长太多;你应该。
阅读Kendal Van Dyke的这篇文章,不仅有大量优秀文章的链接,而且解释了不同的可能设置和性能影响。
我会做这样的事情,但这取决于您的服务器负载和硬件能力。
RAID 10 比 RAID 5 更快。除此之外,规格看起来还不错。
我也推荐RAID10。唯一的缺点是每个 RAID10 阵列至少需要 4 个磁盘,因此如果没有用于 Tempdb 和服务器备份的专用阵列(假设您将 db 文件和日志文件分别放在各自的阵列上),您将陷入困境。
所以你会有:
RAID1(2 个驱动器)= OS 和 SQL 二进制文件;RAID10(4 个驱动器)= DB 文件;RAID10(4 个驱动器)= 日志文件;临时数据库 = ?; 在服务器备份上 = ?
我很想做以下事情:
如果可能,通过网络备份到另一台服务器。
使用至少 8GB RAM 的 64 位。