控制论 SAN 配置帮助

Tod*_*odd 3 sql-server storage sql-server-2008-r2 hardware

有大量文章推荐 SQL Server 的 RAID/LUN/驱动器配置,但大多数让我仍然质疑,因为他们通常说“这取决于”,因此我想提供一些细节并获得一些更直接的建议:

我有一个客户已经在 Cyber​​netics SAN 上安装了 SQL Server,具体细节如下:

• SQL Server 2008 R2 安装在虚拟服务器上

• 贮存:

 o       Cybernetics miSAN-D8/T16 SAN iSCSI storage appliance 
 o       4+1 GbE ports 
 o       8 GB SAN controller cache
 o       USB and eSATA ports
 o       Two miniSAS device
 o       8 drive bays all filled with 600 GB SATA-II 7.2K drives (5.4 TB total) 
 o       All 8 drives set up in RAID 6
 o       Three logical drives:
       1. C (156 GB) – for system and apps (IIS, web app, SQL, SSIS, CA ArcServe backup app, VIPRE antivirus)
       2. E (1.64 TB) – for data, logs and tempdb
       3. F (1.80 TB) – for backups
Run Code Online (Sandbox Code Playgroud)

SQL Server 的读取强度更高,每晚都会像数据仓库和用于查找和报告数据的 Web 应用程序那样批量加载数据。

客户在使用 Web 应用程序的短时间内会周期性地遇到缓慢,有时甚至严重。我还注意到 Brent Ozar 的 Blitz 脚本有时会显示对 E 驱动器的缓慢写入。

我想建议客户按如下方式重新配置他们的 SAN:

  1. C(156 GB,raid 1)——用于系统和应用程序文件。
  2. D(1200 GB,raid 10/5)——用于 sql 数据文件。
  3. L(444 GB,raid 1)——用于日志文件。
  4. T(1200 GB,raid 5)——用于 tempdb 数据文件。
  5. 备份到不同的 san 或网络位置并存档到磁带。

但至少我认为客户应该做到以下几点:

  1. 将备份移动到不同的 SAN 或网络位置,以释放 F 驱动器以供 SQL 使用以及更好的 DR。
  2. 将日志文件和 tempdb 数据文件移动到 F 驱动器。

建议?

Jon*_*gel 7

安装在虚拟服务器上的 SQL Server 2008 R2

IMO,SQL Server VM 应该与其余 VM 一起使用。如果该设备出现故障(Cyber​​netics 网站没有说明该型号范围内的控制器数量,因此大概只有一个),您不会希望所有鸡蛋都放在一个篮子里。希望有其他更好的保护设备可用。

SQL Server 的读取强度更高,每晚都会像数据仓库和用于查找和报告数据的 Web 应用程序那样批量加载数据。

你还没有说数据仓库有多大或加载时间 SLA 是多少,但我强烈怀疑 RAID 5/6 不适合这个,特别是因为涉及 7.2k RPM 驱动器。高驱动器延迟与 RAID 5/6 相结合,对写入性能而言是两英尺的坟墓。

客户还可以考虑优化批量加载过程以提高效率。这方面很可能效率低下。

  1. 将备份移动到不同的 SAN 或网络位置,以释放 F 驱动器以供 SQL 使用以及更好的 DR。
  2. 将日志文件和 tempdb 数据文件移动到 F 驱动器。

移动 DR 的备份:是的,绝对。如果其他设备上有可用空间,请使用它。

由于存储都是 RAID 6 的大池,因此无论使用哪个逻辑卷,性能特征都将相同,因此除非需要更多空间,否则我认为移动东西没有任何意义。

我想建议客户按如下方式重新配置他们的 SAN:

除了将备份移出此 SAN 之外,此配置可能会使事情变得更糟:

  • 单个数据库日志文件使用 RAID 1 没问题,但是一旦您有多个日志文件,那就是随机访问,性能会急剧下降。

  • 以前对数据文件的读取和写入分布在 8 个驱动器上,现在相同的负载将分布在 3 个驱动器上。

我建议在一个 RAID 10 池中使用所有 8 个驱动器,鉴于工作负载和可用硬件,这是唯一有意义的 RAID 级别,这仅比您建议的配置少 1 个驱动器的可用空间。只是没有足够的回旋空间来微观管理这里的物理池。如果初始尺寸错误,或者尺寸随着时间的推移发生剧烈变化,则需要重做整个过程。使用一个池提供了更大的灵活性。

现在说了这么多,根据数据集的大小,购买更多 RAM 通常是一个非常好的投资回报率,以便 SQL Server 首先需要执行更少的物理读取,从而提高性能。但这当然无助于写入工作量。