Dan*_*iel 4 virtualization storage-area-network hard-drive
我正在寻找一个带有 24 个驱动器的 MD3620i SAN 来虚拟化我们的环境,并且想知道分割磁盘的最佳方法。
首先,我将运行 DC、SQL 数据库、SQL 转储、Exchange 和 Web 服务器,最终希望将我们环境的其余部分移至此设置。我预算紧张,或者会考虑购买额外的 MD1220。我这里有足够的磁盘吗?关于我应该如何设置的任何建议?
我会将所有 24 个磁盘放到同一个磁盘组中,以便为您提供最大的 I/O 开销。您将在该阵列(SQL DB、SQL Reporting 和 Exchange)上托管一些非常高的 I/O 密集型应用程序,因此您将需要所有可以获得的东西。并且请不要使用 7.2K RPM 驱动器;它们可能既便宜又大,但您会在性能扩展方面付出代价。
在我看来,像将 DB 和 Log 流量放在不同的主轴上这样的优化很可能会被整个虚拟化 I/O 流量淹没。您将在此存储上拥有两个大型数据库 I/O 应用程序(SQL 和 Exchange),并且(同样,我认为)您将需要尽可能多的 I/O 开销,因此将它们全部集中到一个大的水池; 严格地分离 DB 和 Log I/O 会导致您更快地遇到瓶颈。
还要考虑确保您的 Exchange 服务器在线碎片整理和备份与您的 SQL 备份不一致。这三个操作是非常繁重的 I/O,如果可能,您不希望它们重叠。至于 Reporting Services,如果您有任何非常大的查询/报告/作业正在运行,请尽量避免那些备份期。
DC 和网络服务器在这里是非常小的参与者,所以应该没问题。
为什么要将它们全部捆绑到一个组中而不是将它们分开?
对于 12 个 15K 驱动器和 12 个 10K 驱动器,您可能最终必须拥有两个磁盘组,每个速度一个。我不建议进一步拆分。
对于 R0 中的完全随机 I/O,12 个 15K 驱动器应为您提供大约 2270 I/O Ops/s,R10 为 1135-2270,R5 为 2080。12 个 10K 驱动器应为您提供 1700 I/O Ops/s(R10 中为 850-1700,R5 中为 1560)。R10 速度是可变的,因为它取决于您的读/写百分比,以及控制器是否会从多个条带读取(我不知道戴尔是否这样做)。显着的顺序操作会更快,但您不能指望使用共享存储系统。
这些是一些可观的速度,但它们也代表了每种磁盘类型的最高性能。为您确定的五个服务中的每一个使用完整的分离模型:
我会将最后两个放在 R1 配置中的一对 300GB 10K 驱动器上,将其他 22 个磁盘留给其余的。至于其余...
根据您的容量要求,您可能需要交换 DB/日志卷。这样的配置使 SQL 和 Exchange 分别为日志和邮件存储提供了 945 个 I/O Ops/s,为数据库和日志分别提供了 420 个 I/O Ops/s。报告获得 280 I/O ops/s。这提供了 3230 I/O Ops/s 的整体磁盘子系统性能。
将其与 3640 相比,仅使用两个磁盘组即可获得整体系统性能。这是为了隔离生产系统而牺牲的性能的 12%。像这样的共享存储系统的主要好处之一是您可以更有效地使用存储。将上述内容分开意味着您的主要好处是将所有存储存储在一组 RAID 控制器上的一个设备中,而不是拥有多个 RAID 控制器,从而节省成本。
通过使用上面的孤立配置,您可以更快地遇到 I/O 瓶颈:
当其他人说“一个大磁盘组意味着您可以更快地遇到 I/O 瓶颈”时,他们通常的意思是,一个表现不佳的应用程序会影响整个应用程序的性能,最好将所有内容孤立起来以保护所有内容免受其他一切影响。他们像对待内存的旧操作系统一样对待存储:每个人在启动时都会获得一个离散的内存分配,没有人可以超出它。与内存不同,在这个模型中没有虚拟内存这样的东西,所以它是在启动时分配给进程的物理内存。
最好像现代操作系统对待内存一样对待它:虚拟。系统有 3640 个 I/O 操作可供它使用,为什么不让所有的东西都认为它有那么多可玩的。一切都不会一直使用它,存储子系统将能够很好地满足大多数请求。如果需求确实达到了那个水平,那么事情就会开始陷入停滞(IOWAIT 增加),是时候分析系统以找出导致速度下降的原因了。