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 / 问题 / 554502
Accepted
T.J. Crowder
T.J. Crowder
Asked: 2013-11-13 09:23:22 +0800 CST2013-11-13 09:23:22 +0800 CST 2013-11-13 09:23:22 +0800 CST

如何摆脱 mdadm 中顽固的“已移除”设备

  • 772

我的服务器的一个驱动器出现故障,因此我从所有三个相关阵列中移除了故障驱动器,更换了驱动器,然后将新驱动器添加到阵列中。其中两个阵列完美运行。第三个将驱动器作为备用驱动器添加回来,mdadm详细信息中有一个奇怪的“已删除”条目。

我都试过了

mdadm /dev/md2 --remove failed

和

mdadm /dev/md2 --remove detached

正如这里和这里所建议的那样,两者都没有抱怨,但也没有任何效果。

有谁知道我如何摆脱该条目并正确添加驱动器?(理想情况下不重新同步第三次,我已经不得不做两次,这需要几个小时。但如果这就是它所需要的,那就是它所需要的。)新驱动器是/dev/sda,相关分区是/dev/sda3.

这是数组的详细信息:

# mdadm --detail /dev/md2
/dev/md2:
        版本:0.90
  创建时间 : Wed Oct 26 12:27:49 2011
     突袭等级:raid1
     阵列大小:729952192(696.14 GiB 747.47 GB)
  使用的开发大小:729952192(696.14 GiB 747.47 GB)
   突袭设备:2
  设备总数:2
首选未成年人:2
    持久性:超级块是持久的

    更新时间:2013年11月12日星期二17:48:53
          状态:干净,退化
 有源设备:1
工作装置:2
 失败的设备:0
  备用设备:1

           UUID:2fdbf68c:d572d905:776c2c25:004bd7b2(本地到主机等等)
         事件:0.34665

    编号 主要次要 RaidDevice 状态
       0 0 0 0 已移除
       1 8 19 1 主动同步 /dev/sdb3

       2 8 3 - 备用 /dev/sda3

如果它是相关的,它是一个 64 位服务器。它通常运行 Ubuntu,但现在我在数据中心的“救援”操作系统中,即 Debian 7 (wheezy)。上次我在 Ubuntu 中时,“已删除”条目就在那里(目前它不会从磁盘启动),所以我认为这不是 Ubuntu/Debian 冲突(当然,它们非常接近有关的)。


更新:

在本地机器上对测试设备进行了广泛的测试后,我很明显地从mdadm这个阵列中得到了异常行为。例如,/dev/sda3再次从数组中删除后,我这样做了:

mdadm /dev/md2 --grow --force --raid-devices=1

这摆脱了“已移除”的设备,只剩下/dev/sdb3. 然后我 nuked /dev/sda3(给它写了一个文件系统,所以它不再有 raid fs),然后:

mdadm /dev/md2 --grow --raid-devices=2

...这给了我一个在插槽 0 中并在插槽 1 中“删除”的数组,/dev/sdb3正如您所期望的那样。然后

mdadm /dev/md2 --add /dev/sda3

...添加它 -再次作为备用。(又是 3.5 小时的下水道。)

所以有了阵列中重建的备用,鉴于mdadm手册页说

RAID 设备更改

...

当设备数量增加时,任何存在的热备件都将立即激活。

...我将阵列增加到三个设备,以尝试激活“备用”:

mdadm /dev/md2 --grow --raid-devices=3

我得到了什么?两个“移除”设备和备用设备。然而,当我使用测试数组执行此操作时,我没有得到这种行为。

所以我/dev/sda3再次 nuked,用它来创建一个全新的数组,并将数据从旧数组复制到新数组:

rsync -r -t -v --exclude 'lost+found' --progress /mnt/oldarray/* /mnt/newarray

当然,这需要几个小时。希望完成后,我可以完全停止旧数组 nuke/dev/sdb3并将其添加到新数组中。希望它不会被添加为备用!

mdadm
  • 1 1 个回答
  • 2829 Views

1 个回答

  • Voted
  1. Best Answer
    T.J. Crowder
    2013-11-15T14:12:44+08:002013-11-15T14:12:44+08:00

    好吧,所有通常的选项(在我的问题中列出)都失败了,我别无选择,只能:

    1. /dev/sda3从数组中移除

    2. 核爆它

    3. 创建一个包含它的新降级数组和一个空槽

    4. rsync旧数组中的文件到新数组

    5. 停止旧数组

    6. 核弹/dev/sdb3

    7. 添加/dev/sdb3到新数组

    它开始说“备用,正在重建”,但一旦重建,它就会作为活动驱动器添加到阵列中。

    当然,这意味着要处理已更改的阵列的连锁效应(因为这是根文件系统,所以这些都是非常痛苦的)。

    据我所知,前一个数组的定义中有些东西被破坏了,因为:

    A)添加驱动器应该像其他两个一样刚刚工作(tm) ,

    和

    B)如果没有,缩小和扩大阵列应该有效。

    • 1

相关问题

  • 将 Linux 软件 RAID 1 扩展到 RAID 10 的最佳方法

  • 如何在没有备用的情况下创建软件 raid5 阵列

  • mdadm raid5 超级块丢失

  • 如何将 Linux 软件 RAID 移动到新机器上?

  • 有没有好的图形或基于 Web 的 md 状态或管理工具?

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