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 / 问题 / 449124
Accepted
rob
rob
Asked: 2012-11-16 09:38:23 +0800 CST2012-11-16 09:38:23 +0800 CST 2012-11-16 09:38:23 +0800 CST

我如何找出多磁盘 mdadm RAID1 中的哪个磁盘触发了重建?

  • 772

我将 mdadm 用于多个 RAID1 镜像。md7 是一个 N 路镜像,由 3 个旋转磁盘(全部标记为主要写入)和一个 SSD 组成:

md7 : active raid1 sdd1[0] sde5[3](W) sdf5[4](W) sdc1[1](W)
      234428416 blocks [4/4] [UUUU]

md6 : active raid1 sdf6[0] sde6[1]
      1220988096 blocks [2/2] [UU]

md2 : active raid1 sdb6[0] sda6[1]
      282229824 blocks [2/2] [UU]

md1 : active raid1 sdb2[0] sda2[1]
      19534976 blocks [2/2] [UU]

md0 : active raid1 sdb1[0] sda1[1]
      192640 blocks [2/2] [UU]

整个系统在过去 2 周内挂了 3 次,需要硬重置。目前,我假设系统挂起与我的 md 问题无关,尽管我不能完全排除这种可能性。每次我们重新启动时,md7 都需要重建,但我不知道如何从日志中判断哪个磁盘触发了重建。我认为 iostat 可能会在 RAID 仍在重建时帮助我:

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              43.39      1038.34       558.83     223108     120075
sdb              66.88      1445.47       648.86     310588     139420
sdc              36.42        12.99     22256.81       2792    4782320
sdd             190.75     23227.78       331.14    4990954      71152
md0               2.11        21.39         0.23       4596         50
md1             173.72      1855.87       522.14     398770     112192
md2              11.68        65.84        27.59      14146       5928
md6              27.42       149.83        69.51      32194      14936
sde              75.83        70.81     22326.91      15214    4797384
sdf              79.31        99.41     22326.91      21360    4797384
sr0               0.04         2.61         0.00        560          0
md7             202.31      1287.41       331.07     276626      71136

...但在我看来,md7 正在使用 sdd 重建该 RAID 中的所有其他磁盘。我想这可能只是因为 sdd 是一个 SSD 并且所有其他磁盘都被标记为主要写入,但在那种情况下,它应该只重建一个不同步的磁盘(除非所有旋转磁盘恰好不同步同步,这对我来说似乎不太可能)。

我的另一个理论是,所有旋转的磁盘在重新启动时总是不同步,这仅仅是因为 SSD 的写入速度太快以至于它有时间完成一个块的写入,而其他块仍在写入,然后系统恰好锁定在其他磁盘完成写入该块之前?

那么,如何判断哪个磁盘触发了重新同步?事实上,我有一个混合 SSD 和旋转磁盘的 n 向镜像可能是所有旋转磁盘总是在这些冻结之一之后重建的事实,或者 md 驱动程序是否保证块不被认为是写入的在一个磁盘上,直到成功写入所有磁盘?

linux
  • 2 2 个回答
  • 602 Views

2 个回答

  • Voted
  1. Michael Slade
    2012-11-16T09:54:02+08:002012-11-16T09:54:02+08:00

    我知道(至少是 linux)raid 的工作方式类似于用于这些目的的文件系统 - 如果系统在使用时崩溃,则需要在重新启动时对其进行检查。所以系统崩溃的原因可能不是阵列中的任何磁盘。

    • 1
  2. Best Answer
    kiko
    2014-11-26T09:47:17+08:002014-11-26T09:47:17+08:00

    正如 Michael 在上面指出的那样,挂起和随之而来的不正常关机是您看到 RAID 重建的原因。内核 md 驱动程序重建不干净的数组以确保它们真正同步,因为挂起、崩溃或 powerloss 不能保证哪些写入实际上被刷新到磁盘。

    现在,至于为什么sdd被使用,首先要了解的是,在不干净的关闭中,实际的阵列,而不是单个成员设备,被标记为脏。在我上面链接的联机帮助页中,以下内容是关于 RAID-1 的:

    如果 md 驱动程序在启动时发现一个数组是脏的,它会继续纠正任何可能的不一致。对于 RAID1,这涉及将第一个驱动器的内容复制到所有其他驱动器上。

    在您的示例中,该数组在 drives , , &md7上有分区,但是如果您查看输出:sdcsddsdesdfmdstat

    md7:活动 raid1 sdd1[0] sde53 sdf54 sdc11

    请注意标有 a 的第一个分区是如何在[0]上的sdd,即sdd1。这sdd就是被使用的原因——它是md7.

    • 1

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

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