我是一名 Web 开发人员。我对硬件没有太多经验。因此,我使用托管服务器。
今天早上,我们设置中的一个驱动器发生故障。但是,整个网站都瘫痪了。我问我的网络托管商发生了什么事,他回答说硬盘发生故障,导致 RAID 控制器无法正常工作。阵列设置为 RAID 4。
你们见过这种事吗?有可能吗?
谢谢大家的帮助。我需要知道我的网络托管商是否对我诚实。
答案1
您的提供商很可能正在使用不适用于 RAID 的硬盘。普通消费级 SATA 硬盘属于此类。
可能的问题是驱动器开始遇到不可纠正的读取错误 (URE)。当这种情况发生在消费级驱动器中时,驱动器会停留在那里并重试读取操作(通常需要 30-60 秒)直到放弃。RAID 将等待驱动器报告错误(30-60)秒。因此,对几个扇区的简单请求很容易导致服务器停止运行,而故障驱动器则继续执行这些读取重试操作。
用于 RAID 阵列的驱动器具有时间限制错误恢复(适用于 SATA 驱动器)。TLER 会快速将故障报告给控制器,以便控制器可以智能地响应此类故障(大多数情况下是智能的;希望如此)。SCSI(SAS 也是如此)的工作方式略有不同。SCSI 命令集允许控制器指定驱动器上的各种恢复工作限制(MODE SELECT:RW ERR RECOVERY)。RAID 控制器应将驱动器设置为快速故障,然后控制器可以使用 TUR 命令测试驱动器是否认为它正常工作,如果存在检查条件,则将驱动器从阵列中故障。
答案2
是的,这是可能的,即使在您认为阵列应该能够经受住故障考验的情况下。
阵列失败的一些可能性:
- 发生故障的驱动器数量超出了 RAID 模式所能承受的范围。例如:
- RAID 0(条带化)无法承受任何驱动器故障。
- RAID 1 可以承受除 1 个驱动器之外的所有驱动器的故障。
- RAID 4/5 可以承受 1 个驱动器故障。
- RAID 6 可承受 2 个驱动器故障。
- RAID 10 可以承受多达 50% 的驱动器发生故障,具体取决于哪些驱动器发生故障。
- RAID 软件或控制器固件中的错误。
- 用户错误。
- 有人拔出了过多的驱动器。
- 有人拔掉了一个驱动器但没有更换它,随后另一个驱动器也出现故障。
- 该阵列没有受到监控,导致发生故障的驱动器数量比可幸存的驱动器数量还多。
- 众所周知,即使在可幸存的情况下,带有消费级驱动器的廉价控制器也会出现故障。
- 消费级驱动器将几乎无限期地尝试读取坏扇区,直到获得良好读取。廉价控制器将几乎无限期地等待此类驱动器返回结果。等待时间可能太长,以至于操作系统放弃。然后在重新启动时,驱动器无法足够快地响应控制器,并且阵列被认为发生故障。
- 另一方面,企业级驱动器会很快放弃,让控制器从另一个驱动器中提取数据。此外,好的控制器会将响应时间过长的驱动器标记为故障并继续运行。
答案3
如果它是 RAID 0 实现,那么当单个驱动器发生故障时,您肯定会丢失阵列及其所有数据。
答案4
是的,有可能。但不可能应该发生这种情况是肯定有可能的。输入 URE(不可恢复的读取错误)和控制器故障以及固件错误等。
如果没有其他信息(您的主机可能不会提供给您),就不可能明确地说出哪种情况,但任何使用过大量 RAID 阵列的人都经历过整个阵列在本不应该丢失或崩溃的情况下丢失或崩溃的情况。
(顺便说一下,RAID4 不是一种常用的 RAID 级别,但是应该承受任何动力损失。但这并不意味着它会一直如此。)