Linux 软件 raid 稳健性

Linux 软件 raid 稳健性

我有一个 4 磁盘 5TB raid5 设置,其中一个磁盘显示出即将耗尽的迹象。它报告了介质错误,从 dmesg 中我可以看到几个读取错误已得到纠正。smartctl 确实报告了“通知”,但到目前为止没有出现恐慌。由于新磁盘目前相当昂贵,我开始思考 Linux md 层到底有多强大。

如果有人能解释一下 md 实际上是如何处理磁盘错误的,我将不胜感激。例如,md 如何处理写入和读取错误 - 磁盘被阵列拒绝需要什么(真正需要什么)。我还读到,最近 md 获得了映射坏块的支持。这是否意味着如果我运行的内核 >3.1,我遇到的读取错误就会被映射出来,或者 md 是否仍会尝试“处理它们”以使它们可用。

答案1

如果你关心你的数据,现在就更换磁盘。每个子系统都会尽一切努力防止数据丢失,但它能做的也有限。即使它可以映射坏块:当有一个坏块时,就会有其他坏块。

您收到了有关即将发生的问题的大量警告:忽略它们是对客户数据的不负责任。

编辑,因为这对于评论来说太长了:

我不知道你的问题到底是什么?你想知道这些警告是否严重吗?是的,它们很严重。你需要对此做些什么吗?是的,现在就需要。

当某些子系统报告读取错误时,它们就在那里,而且很重要。即使系统仍然能够纠正它们,但两分钟后很可能不再是这种情况,磁盘将被标记为故障并脱机。

Linux md raid 至少与任何硬件 RAID 实现一样值得信赖,但我认为 RAID5 在最好的情况下也是一个危险的选择。它的问题在于您在恢复期间将不受保护,这对于 RAID5 来说是一个非常繁重的情况。我认为它比一些硬件 RAID 系统更值得信赖,因为当磁盘即将发生故障时您会收到提前警告,而硬件 RAID 可能只会在事后通知您。软件 RAID 有一些缺点,主要与性能问题有关,但可靠性不是其中之一。

无论如何,不​​管怎样,对于您这种情况的专业处理方法是立即更换磁盘,这也是我对我的私人磁盘阵列的反应(我有备用磁盘用于这种情况)。

答案2

这是我们使用一台戴尔服务器大约 6 年的经验:当时我们没有使用硬件 raid,因为没有可能远程检测磁盘故障。

因此我们使用了软件 raid 1 (md)。过了一会儿,raid 降级了。查看 /var/log/messages 时,我发现有一个与某个分区相关的 IO 错误列表。

我将该分区重新添加到了磁盘阵列,但过了一会儿,它又被扔掉了。

我将 /var/log/messages 输出发送给 Dell 支持,立即获得了一个新磁盘。这是在不受支持的 Linux 版本上,并且仅具有最基本的支持级别。

我们安装了其他几台机器,再也没有遇到过这些问题(即磁盘从未出现故障)。对我来说,这证明您可以信赖 md。

我认为这对 3.1 内核仍然适用(我还没有这些)。

答案3

据我所知,mdadm 是一种强大的软件 RAID 实现,在 HD 处于良好状态时很少会产生任何类型的错误,我有几个配置了 mdadm 的服务器,而且我从未在日志文件中收到过读取错误。

使用以下命令检查阵列的状态:

mdadm --detail /dev/mdX

不过我强烈建议您更换造成错误的驱动器...

相关内容