我计划构建一些存储模式,但我必须预计停机时间、维护和重建时间。
有人告诉我,10 个磁盘 RAID6 的 10To(SATA)重建将持续大约一周!并且一些公司政策要求在重建时停止阵列上的活动。
如果我使用 RAID 5 或 6 或 5+1 或 6+1,是否有一个近似公式可以根据磁盘大小和类型(SAS/SATA/SSD)提示重建时间。类似于 rpm x 大小(Mb)x 类型因子 x 磁盘 nb...
我希望能够根据 RAID 的大小/类型/磁盘类型预测所有重建时间场景。
我知道这可能取决于硬件质量,但假设我没有 3PAR / STOREWIZE / NETAPP 等专用硬件。我使用的是带有软件 RAID 的传统 SAS 或 SATA 驱动器的传统服务器。
答案1
您可以相当简单地计算最佳重建率:由于重建是连续的,因此所需时间为capacity / transfer rate
。例如,重建传输率为 200 MB/s 的 10 TB 磁盘至少需要10000000 / 200 = 50000s = ~14h
。
现在取这个结果把它扔掉,因为这是一个过于乐观的场景:它假设重建操作的磁盘可用性为 100%,并且完全顺序读取/写入。再加上一些非重建(即应用程序)负载,将重建本身限制在 30%(以免使其他应用程序停止运行),你就会突然陷入10 倍(例如:一周)重建时间。
这些漫长的重建时间是我在许多系统中避免使用 RAID5/6 而更喜欢镜像的原因。无论如何,对于如此大的驱动器,绝对要避免使用 RAID5,因为它太容易出现双重故障和/或 URE 问题。
如果你想玩这个数字,看看这里
答案2
理论上绝对最小重建时间是写入完整磁盘数据所需的时间:磁盘容量除以磁盘在没有缓存的情况下可以维持的平均持续写入速度。
(注意:平均持续写入速度可能甚至不会接近规格中引用的性能数字。)
磁盘越大,耗时越长。
磁盘越慢,耗时越长。
奇偶校验计算需要额外的时间。
现实世界的数字会有所不同,但肯定会大得多,并且取决于您的 RAID 级别、剩余磁盘的数量、阵列重建时的系统负载、控制器等。
答案3
这取决于您的 RAID 控制器(或软件 RAID 堆栈)。正如其他人提到的,首先不要使用 RAID-5配备大容量硬盘(最多 1TB 的 SSD 就可以了,其他的就不行了)。
根据我的经验,重建时间因存储请求而异。对于空闲系统,大多数控制器需要 36 到 72 小时才能重建 8 到 12 TB 驱动器的阵列(取决于您的控制器类型和磁盘大小)。
然而,当系统在重建期间处于 IO 负载下时,这个持续时间增长到一周的情况并不罕见。
请注意,氦驱动器比标准驱动器具有更好的可靠性记录;根据我的经验,UltraStar He 驱动器故障率足够低,仍然可以使 RAID-6 相关(典型的 100 TB 到 1 PB 系统在 5 年的时间跨度内不会出现超过一次重建)。