Linux md 配置在重启后发生变化

Linux md 配置在重启后发生变化

我的 Ubuntu RAID 配置在重新启动期间发生了变化,我不明白为什么。

  • 问题 1:启动时未创建 /dev/md/host:name 设备。我不明白描述性名称是如何、何时或为何创建的,如果它更可预测,那就更好了。

该数组始终获取设备名称:

jak # mdadm --detail /dev/md127
[...]
名称:jak:neat(主机 jak 的本地)
UUID:593fc406:87eefd53:0a076a84:f1405112

该数组几乎从不获取设备名称:

jak # mdadm --detail /dev/md130
[...]
名称:jak:sour(主机 jak 本地)
UUID:809a185b:a2613844:3975b412:759ec297

我的理解是这些人类可读名称的目的是在 /etc/fstab 中使用:

jak # tail -2 /etc/fstab
/dev/md130 /jak/data/sour ext4 默认 0 0
/dev/md/jak:neat /jak/data/neat ext4 默认 0 0

您可以看到,对于 jak:sour,我显式安装了 /dev/md130,这是有问题的,因为该设备名称偶尔会更改。我也不明白为什么设备编号会改变。我应该在 fstab 中使用什么可靠的 /dev 条目?

  • 问题 2:每次重新启动时,我的备用驱动器都会从阵列中掉出。

jak:neat 和 jak:sour 都有备用驱动器(mdadm 输出如下)。每次重新启动后,备用驱动器都会从阵列中消失。磁盘设备确实出现在 /dev/sd* 中,我可以轻松地将它们重新连接到阵列(mdadm --add /dev/md127 /dev/sdn1),但显然我不希望它们掉出阵列。

  • 卑躬屈膝:Google 和 Stack Exchange 搜索具体的Linux 软件 raid 阵列问题是一种令人痛苦的信噪比练习。我希望这些都是值得提出的好问题。

  • 配置详情:

# uname -a
Linux jak 4.15.0-65-generic #74-Ubuntu SMP 九月 17 日星期二 17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
jak # mdadm --detail /dev/md127
/dev/md127:
           版本:1.2
     创建时间:2018年6月1日周五07:33:21
        突袭等级:raid10
        阵列大小:23441682432(22355.73 GiB 24004.28 GB)
     已用开发大小:7813894144 (7451.91 GiB 8001.43 GB)
      突袭设备:6
     设备总数:7
       持久性:Superblock是持久性的

     意图位图:内部

       更新时间 : 2019年10月6日 星期日 07:02:47
             状态:干净,检查中
    活跃设备:6
   工作装置:7
    失败设备:0
     备用设备:1

            布局:近=2
        块大小:512K

一致性策略:位图

      检查状态:完成 18%

              名称:jak:neat(主机 jak 的本地)
              UUID:593fc406:87eefd53:0a076a84:f1405112
            事件:201984

    编号 主要 次要 RaidDevice 状态
       0 8 17 0 活动同步集-A /dev/sdb1
       1 65 1 1 活动同步集-B /dev/sdq1
       2 8 81 2 主动同步集-A /dev/sdf1
       3 65 33 3 活动同步集-B /dev/sds1
       4 8 49 4 活动同步集-A /dev/sdd1
       6 65 17 5 活动同步集-B /dev/sdr1

       7 8 177 - 备用 /dev/sdl1
杰克#
jak # mdadm --detail /dev/md130
/dev/md130:
           版本:1.2
     创建时间:2018年5月26日星期六10:51:23
        突袭等级:raid6
        阵列大小:39065217024 (37255.49 GiB 40002.78 GB)
     已用开发大小:9766304256 (9313.87 GiB 10000.70 GB)
      突袭设备:6
     设备总数:7
       持久性:Superblock是持久性的

     意图位图:内部

       更新时间 : 2019年10月6日 星期日 07:03:43
             状态:干净,检查中
    活跃设备:6
   工作装置:7
    失败设备:0
     备用设备:1

            布局:左对称
        块大小:512K

一致性策略:位图

      检查状态:已完成 41%

              名称:jak:sour(主机 jak 本地)
              UUID:809a185b:a2613844:3975b412:759ec297
            活动:139649

    编号 主要 次要 RaidDevice 状态
       0 8 1 0 主动同步 /dev/sda1
       1 8 33 1 活动同步 /dev/sdc1
       2 8 129 2 活动同步 /dev/sdi1
       3 8 145 3 活动同步 /dev/sdj1
       4 8 161 4 主动同步 /dev/sdk1
       6 8 241 5 活动同步 /dev/sdp1

       7 8 209 - 备用 /dev/sdn1
杰克#

我不怀疑 /dev/sdn 是可疑的,但无论如何,这里有详细信息。

jak # smartctl -a /dev/sdn
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.15.0-65-generic](本地构建)
版权所有 (C) 2002-16,Bruce Allen、Christian Franke,www.smartmontools.org

=== 信息部分开始 ===
设备型号:WDC WD100EFAX-68LHPN0
序列号:JEKG3TLZ
LU WWN 设备 ID:5 000cca 267f04f25
固件版本:83.H0A83
用户容量:10,000,831,348,736 字节 [10.0 TB]
扇区大小:512 字节逻辑,4096 字节物理
转速:5400 rpm
外形尺寸:3.5 英寸
设备是:不在 smartctl 数据库中 [有关详细信息,请使用:-P showall]
ATA 版本为:ACS-2、ATA8-ACS T13/1699-D 修订版 4
SATA 版本为:SATA 3.2,6.0 Gb/s(当前:6.0 Gb/s)
当地时间是: 2019 年 10 月 6 日星期日 07:04:58 PDT
SMART 支持: 可用 - 设备具有 SMART 功能。
SMART 支持为:已启用

=== 读取智能数据部分的开始 ===
SMART整体健康自我评估测试结果:通过

一般 SMART 价值观:
离线数据收集状态:(0x82) 离线数据收集活动
                    已完成,没有错误。
                    自动离线数据收集:已启用。
自检执行状态:(0) 上一次自检例程已完成
                    没有错误或没有自检过
                    已运行。
离线完成的总时间
数据收集:(93)秒。
离线数据采集
功能:(0x5b) SMART 立即离线执行。
                    自动离线数据收集开/关支持。
                    新品上线后暂停线下收藏
                    命令。
                    支持离线表面扫描。
                    支持自检。
                    不支持传输自检。
                    支持选择性自检。
SMART 功能:(0x0003) 在输入之前保存 SMART 数据
                    省电模式。
                    支持SMART自动保存定时器。
错误记录功能:(0x01) 支持错误记录。
                    支持通用日志记录。
简短的自检程序
建议轮询时间:(2)分钟。
扩展自检程序
建议轮询时间:(1116) 分钟。
SCT 功能:(0x003d) 支持 SCT 状态。
                    支持 SCT 错误恢复控制。
                    支持 SCT 功能控制。
                    支持 SCT 数据表。

SMART 属性数据结构修订号:16
具有阈值的供应商特定 SMART 属性:
ID# ATTRIBUTE_NAME 标志值 最差阈值类型已更新 WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate 0x000b 100 100 016 预失败始终 - 0
  2 吞吐量_性能 0x0004 131 131 054 Old_age 离线 - 104
  3 Spin_Up_Time 0x0007 100 100 024 始终预故障 - 0
  4 Start_Stop_Count 0x0012 100 100 000 Old_age 始终 - 3
  5 Realated_Sector_Ct 0x0033 100 100 005 故障前始终 - 0
  7 Seek_Error_Rate 0x000a 100 100 067 Old_age 始终 - 0
  8 Seek_Time_Performance 0x0004 128 128 020 Old_age 离线 - 18
  9 Power_On_Hours 0x0012 100 100 000 Old_age 始终 - 1148
 10 Spin_Retry_Count 0x0012 100 100 060 Old_age 始终 - 0
 12 Power_Cycle_Count 0x0032 100 100 000 Old_age 始终 - 3
 22 Unknown_Attribute 0x0023 100 100 025 故障前始终 - 100
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age 始终 - 51
193 Load_Cycle_Count 0x0012 100 100 000 Old_age 始终 - 51
194Temperature_Celsius 0x0002 144 144 000 Old_age 始终 - 45(最小/最大 20/54)
196 Realated_Event_Count 0x0032 100 100 000 Old_age 始终 - 0
197 Current_Pending_Sector 0x0022 100 100 000 Old_age 始终 - 0
198 Offline_Un Correctable 0x0008 100 100 000 Old_age 离线 - 0
199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age 始终 - 0

SMART 错误日志版本:1
没有记录错误

SMART 自检日志结构修订号 1
未记录任何自检。 [要运行自检,请使用:smartctl -t]

SMART 选择性自检日志数据结构修订号 1
 跨度 MIN_LBA MAX_LBA CURRENT_TEST_STATUS
    1 0 0 未测试
    2 0 0 未测试
    3 0 0 未测试
    4 0 0 未测试
    5 0 0 未测试
选择性自检标志 (0x0):
  扫描选定的跨度后,请勿读取扫描磁盘的其余部分。
如果选择性自检在加电时等待,请在 0 分钟延迟后恢复。

杰克#
#mdadm.conf
#
#!注意!更新此文件后运行 update-initramfs -u。
#!注意!这将确保 initramfs 具有最新的副本。
#
# 有关此文件的信息,请参阅 mdadm.conf(5)。
#

# 默认情况下(内置),扫描所有分区(/proc/partitions)和所有
# MD 超级块的容器。或者,指定要扫描的设备,使用
# 如果需要的话可以使用通配符。
#DEVICE 对容器进行分区

# 自动将新数组标记为属于本地系统
家庭主机

# 指示监控守护进程向何处发送邮件警报
MAILADDR根

# 现有 MD 数组的定义
数组 /dev/md/0 元数据=1.2 UUID=7636d5d0:8c9d0823:7252c563:30724789 名称=jak:0
ARRAY /dev/md130 元数据=1.2 UUID=809a185b:a2613844:3975b412:759ec297 name=jak:sour

# 此配置由 mkconf 在 2018 年 4 月 28 日星期六 16:34:38 -0700 自动生成

现在剩下的问题

  • /etc/md/jak:neat并且/etc/md/jak:sour不出现。什么过程创建了这些?

  • 运行blkid /dev/md127没有返回任何输出。它确实返回了预期的输出/dev/md0。因此,我fstab现在将文件系统设备列为 和/dev/md127/dev/md130感觉是临时的。

提前感谢评论!

答案1

谢谢Linux安全怪胎寻找一些线索。

我从来没有(故意)更新过mdadm.conf(手册页);我不知道它在那里。添加缺失的内容ARRAY确实有帮助。

另外,我没有(故意)跑步update-initramfs(手册页)

采取这两个步骤使其连续两次成功启动我的工作站,所以这太棒了。


请在我的问题末尾查看我剩下的问题。

相关内容