您需要了解的是 SAN 是什么。
SAN 是一个或多个存储阵列,通过光纤通道网络互连。您的主机有特殊的网卡 - 称为主机总线适配器 (HBA) - 用于与该网络通信。网络协议专为存储流量而设计,因此非常适合高性能、低延迟的流量。
您正在与之交谈的阵列...嗯,它的功能差异很大。即使是您所指的 EMC SAN,也可能是各种 EMC 产品作为存储阵列。它们的主要目的是巩固存储性能。
从与 10 个服务器共享 100 个主轴中获得的峰值性能比每台服务器都有 10 个主轴时更好。因此,您的存储阵列基本上所做的就是将 100 个主轴分割成逻辑单元,然后将它们返回给您的主机,这样每台主机的平均性能大致相同,但其峰值是大小的 10 倍。(或者更现实地说,它们可能配备 50 个锭子,因为这样您可以获得峰值的 5 倍,但成本降低了一半,以换取较低的平均值)。
现在 - 文件组。据我了解(作为存储工程师,而不是了解大量 SQL)。文件组允许您管理数据的放置,特别是底层存储。
这是一个棘手的问题 - 因为它取决于。通常,您的存储阵列会自己做一些非常聪明的事情,以简化数据放置和吞吐量。诸如一些非常激进的缓存之类的东西——远远超过你在普通主机上获得的——这意味着你的很多随机访问工作负载都是以“RAM 速度”而不是“磁盘速度”进行的。它也可能比您通常预期的要多得多的纺锤。
据我所知,这基本上是文件组旨在实现的目标 - 您手动将文件放在磁盘上,并让 SQL 处理这些磁盘的并行 IO。您的存储阵列已经在为您执行此操作,充其量您会让自己不必要的管理员头疼,最坏的情况您实际上会使阵列端优化变得更糟。
您可能仍然希望隔离各种内容类型,但我建议您通过从 SAN 分配的不同 LUN 来实现。更重要的是,您不能通过填充另一个数据库来耗尽一个数据库的空间 - 但在拍摄快照或克隆时它也允许更多的灵活性。
我的建议是:
- 与您的存储人员讨论您的数据库的预期 IO 配置文件。(IO 是 SAN 上昂贵的东西,通常数据库比“普通”应用程序使用更多)
- 将每个实例放在一组不同的 LUN 上 - 将数据库、日志和 tempdb 分开。
- 在 vmware 中,您最终可能会在同一数据存储上使用“逻辑”磁盘。如果性能至关重要,则可能值得通过 SAN LUN 直接到达主机。
然后不要过分担心它 - 如果您发现特定问题,应该可以重新调整/移动各个 LUN 以改善情况。