给定以下参数,我如何估算磁盘子系统要求?
该环境是一个公共networking服务器,用于将大文件传送给许多并发用户。
尽pipe事实上这些都是大文件,我想我应该估计一下纯粹的随机IO和纯序列IO之间的某个地方。 随着更快/更less的客户端,我想它会趋向于顺序,与更慢/更多的客户端,它会倾向于随机。 希望这是不正确的?
所以我的想法是首先计算“预期的IOPS”。 这就是我所坚持的。 我假设我应该能够使用以下参数来closures:工作集大小,平均客户端速度和期望的并发客户端。
从那里,我可以看到磁盘和RAID控制器的IOPS评级,并且提供了对为许多用户提供文件集所需的磁盘子系统的粗略估计。
显然还有更多,比如预读和可用于caching的RAM数量,以及文件系统块大小,RAID条带宽度等等,但是我认为如果基于0预读和0 RAM,应该给我一个粗略的悲观估计。
在这个领域有经验的人请告诉我,如果我走在正确的轨道上,和/或提供任何意见,如何计算这些价值观?
如果有网站讨论这个或我可以买的书,我非常愿意这样做,但我一直在寻找2天没有运气。 当谈到存储时,我有点不在意。
我也明白,我将不得不基准得到一个正确的答案,但我想尽可能多的估计,因为我可能会先。
所有的帮助表示赞赏,火焰欢迎!
预计最高传输速率是您似乎错过的一个区域。 此外,你的IOPS曲线是如何“嘈杂”的感觉。 如果噪音非常大,则可能会出现明显高于平均IOPS的持续时间,这是您需要devise的一种情况。 从经验来看,一些最大的突发性IOPS发生在大量传输中,如果这些大型传输以某种方式使您的I / O子系统饱和,那么这些传输中的其他操作将受到影响。
峰值负荷确实需要考虑,因为您希望在发生时充分执行。 这可能意味着你的系统在很多时候都没有得到充分利用,但是这个领域就是这样的。 我们在预期的负载范围和可pipe理的增长方面创造了最低的服务保证,这导致了一定数量的不可避免的过度工程。
预计另一个领域是读/写I / O百分比。 你说networking服务器,所以我猜测它会比写更多,但你最好知道。 如果百分比严重偏向于读取(例如,80%的读取),将会影响您为存储子系统select的内容,因为您将能够承受昂贵的写入,以便快速读取(RAID5或例如RAID6)。 但不是太昂贵,因为你不想用一个巨大的写入饱和的东西,会陷入整个系统。
一旦你得到硬件,做testing失败模式。 弄清楚驱动器出现故障时以及重新加载时有多糟糕。如果只有五个磁盘,这可能不是什么大问题,因为故障率应该足够低,以至于坏磁盘应该是非常罕见的事情。 但是,如果你有很多主轴(比方说…超过10个),那么你的失败率可能足够高,你必须把“失败”状态考虑进你的估计中。 两年前,我们遇到了这样一个严重的问题,就是在重build一个奇偶校验集(禁用写caching,邪恶的事情)的时候,某个驱动器arrays严重受到了写入瓶颈,当有人企图在此期间写一张CD映像(625MB!)。
最后,在估算期间考虑备份期间的负载。 如果在备份忙于读取服务器上的所有内容时,您将不得不提供服务,这也会影响您获得的存储系统的强壮程度。 因此,请考虑实用I / O操作,而不仅仅是用户生成的操作。
这应该给你更多的数据点来处理!
**编辑:*高峰净空…取决于负载。 我有一个系统,白天的平均值在3-5MB / s之间,峰值在10-15MB / s的范围内,备份可以推到20-25MB / s。 因此,平均值大约是12MB / s,真正的峰值略高于两倍。 在RAID重build期间,这个特定的系统不会受到太大影响,所以不会进入规划阶段。 而且,在备份期间,最终用户驱动的I / O是最小的,所以我不必担心争用,这意味着我可以在备份期间将其平稳运行,而不用担心接听电话。