AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1150361
Accepted
Nicolas Straub
Nicolas Straub
Asked: 2023-12-25 21:00:21 +0800 CST2023-12-25 21:00:21 +0800 CST 2023-12-25 21:00:21 +0800 CST

尝试使用故障驱动器重建 RAID 5 阵列,“/dev/sdc1 没有超级块 - 程序集已中止”

  • 772

我有大约 20TB MD 阵列,分布在 5 个 6TB 硬盘上。昨天,其中一个驱动器出现故障,系统停止启动。我不太擅长 Linux,所以过去每当发生这种情况时,我都会简单地重新安装 Debian,并运行使mdadm阵列再次运行所需的任何必要命令(在从本地商店购买备用硬盘之后) )。具体来说,我从系统中删除旧驱动器,运行mdadm --assemble然后将新驱动器添加到阵列中,以便在第二天左右对其进行配置。

这一次,当我运行时mdadm --assemble /dev/md0 /dev/sd{a,c,d,f}1 --force,它未能抱怨No super block found on /dev/sdc1 (expected magic a92b4efc, got 00000000)。

在某些情况下,这 4 个驱动器 (sd{a,c,d,f}) 是过去 3 个月内购买的新硬盘。第五个驱动器(我将其卸下并更换为新驱动器之一)已经使用了五年。

虽然 sdc 可能是故障驱动器(我即将测试),但更有可能是旧驱动器。我的备份也有点旧了,大约两个月前了。老实说,我什至不知道从哪里开始。我已经做了一些谷歌搜索,但这对这个凡人来说似乎非常神秘,我非常害怕一个错误的步骤可能会导致我丢失所有数据(如果我还没有)。

我可以提供我现在正在做的事情的日志。我当前的系统是在 Hyper-V 主机上运行的 Debian 12。将不胜感激任何帮助。

raid
  • 1 1 个回答
  • 36 Views

1 个回答

  • Voted
  1. Best Answer
    tsc_chazz
    2024-01-01T00:25:50+08:002024-01-01T00:25:50+08:00

    在我最近对阵列的工作中,我发现驱动器命名经常从一个启动更改为另一个启动 - 我的操作系统是在当时创建的sda1,并且在最近的启动中尝试从故障硬件中恢复时,我发现有时启动驱动器最终为sdc1,有时为sdf1(是的,该特定机器有很多驱动器)。在这种情况下,mdadm报告您认为是某个集合的一部分的驱动器没有超级块,首先要确认的是系统上的哪个驱动器实际上构成了相关的 RAID 阵列。如果您正在运行 GUI,您应该有一个可用的工具,Disks该工具将向您显示系统中的所有硬盘驱动器及其当前使用情况。从命令行,sudo parted -l将向您显示该信息。

    一旦您确定哪个驱动器构成了您的五个磁盘组中仍然有效的四个驱动器,您就可以使用mdadm --assemble --force /dev/md0 /dev/sd{a,c,d,f}1 missing(使用您的示例,并假设您确认它实际上是sda1、sdc1、sdd1、 以及sdf1哪个驱动器组成了RAID 设置)。请注意驱动器名称关键字的使用missing,这是一个标志mdadm那里应该有另一个驱动器,但它(尚未)可用。严格来说,这可能没有必要;超级块将包含几何信息,将其显示为五磁盘阵列,并将尝试将其重建为降级阵列。其他人可能会说你必须小心匹配原始磁盘顺序;我自己的经验表明,虽然这在过去是必要的,但更现代的系统似乎将磁盘在阵列中的位置记录为超级块的一部分,即使设备名称发生变化(就像他们对我所做的那样),阵列也会自行重建成功地。

    就你的情况而言,我必须承认,我怀疑在你不注意的时候该阵列发生了一些事情。sdc我能看到最终可能出现恢复分区的唯一方法是它是否来自计算机。我很想知道当最近的驱动器发生故障时该阵列是否已经降级;我可能会花很多时间检查序列号,看看它是否是我认为应该放入其中的驱动器。无论发生什么情况,可以肯定的是,当驱动器添加到系统时,它实际上并未添加到阵列中;家庭办公室 RAID 硬件通常会自动将新驱动器添加到阵列中,无论谁进行了物理驱动器交换,都可能认为您的系统也做了同样的事情。

    我还会注意到评论中提到的一件事。谷歌确实在不久前发布过,同一批的驱动器往往会同时出现故障;由从一个供应商同时购买的大量磁盘组成的 RAID 阵列在阵列中的第一个驱动器发生故障后尝试重建阵列时可能会丢失第二个驱动器。如果我正在构建 RAID5 阵列,我会故意从多个不同的供应商(通常是多个不同的制造商)购买,以降低从同一批次获得多个驱动器的风险。随着时间的推移,您一直在更换驱动器,因此您很可能已经免受这种特定故障模式的影响。

    • 1

相关问题

  • Windows 文件服务器性能调优

  • SSD TRIM 的硬件 RAID 控制器支持

  • 了解磁盘队列长度

  • 使用混合磁盘突袭 0?

  • Windows Server 2008 Hyper-V 虚拟化服务器的最佳 RAID 配置?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve