跳过正文
飞牛【阵列篇】
  1. 存储系统/

飞牛【阵列篇】

·1276 字·3 分钟·
目录
fnos - 这篇文章属于一个选集。
§ 2: 本文

基于最新Linux内核(Debian)深度开发,硬件兼容性强;支持主流X86硬件。正版免费(目前免费使用)。

快速开始
#

飞牛使用7块8T机械磁盘组建raid5阵列;有2块磁盘显示故障,正常运行,进行第一块故障盘替换后,md0恢复失败!

环境信息
#

  • Proxmox: fnas虚拟机
  • 阵列卡: SAS 2308
  • 磁盘: 8TB SATA * 8

错误日志
#

查看日志 /var/log/syslog,提示恢复中断md0: recover interrupted.

2025-10-09T10:13:28.686557+08:00 fnos kernel: [13084.162908] md/raid:md0: read error not correctable (sector 4930633544 on sdh1).
2025-10-09T10:13:30.212459+08:00 fnos kernel: [13085.688908] md/raid:md0: read error not correctable (sector 4930633400 on sdh1).
2025-10-09T10:13:30.212467+08:00 fnos kernel: [13085.688936] md/raid:md0: read error not correctable (sector 4930633408 on sdh1).
2025-10-09T10:13:42.151985+08:00 fnos kernel: [13097.626325] md: md0: recover interrupted.
2025-10-09T11:44:03.083175+08:00 fnos lvm[297]:   WARNING: VG trim_76b37b4a_b6bf_4098_afcf_b10adb61b01b is missing PV ZfpwUz-IF9r-Bf0w-RRhN-8tEV-Om0m-jpKFtY (last written to /dev/md0).
2025-10-09T11:46:27.726931+08:00 fnos kernel: [  151.246421] md/raid:md0: device sdi1 operational as raid disk 3
2025-10-09T11:46:27.726946+08:00 fnos kernel: [  151.246426] md/raid:md0: device sdf1 operational as raid disk 0
2025-10-09T11:46:27.726962+08:00 fnos kernel: [  151.246427] md/raid:md0: device sdc1 operational as raid disk 5
2025-10-09T11:46:27.726962+08:00 fnos kernel: [  151.246428] md/raid:md0: device sdh1 operational as raid disk 6
2025-10-09T11:46:27.726963+08:00 fnos kernel: [  151.246428] md/raid:md0: device sdg1 operational as raid disk 4
2025-10-09T11:46:27.730913+08:00 fnos kernel: [  151.247741] md/raid:md0: not enough operational devices (2/7 failed)
2025-10-09T11:46:27.763029+08:00 fnos kernel: [  151.279438] md/raid:md0: failed to run raid set.

经过一系列折腾后,磁盘阵列并未正常恢复,并且md0已经无法激活,存储丢失无法挂载备份数据(原因阵列中有2块提示警告的磁盘,本次只更新1块故障磁盘,重建过程失败的原因大概是不可纠正的坏块过多)。

修复步骤
#

经过慎重思考,不盲目操作,先尝试修复磁盘阵列,恢复存储空间,备份重要数据(照片、文档等)

恢复存储空间(备份数据)
#

  1. 查看md0状态
root@fnos:~# cat /proc/mdstat 
Personalities : [raid1] [linear] [raid0] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sde1[0]
      468718400 blocks super 1.2 [1/1] [U]
      bitmap: 0/4 pages [0KB], 65536KB chunk

md0 : active raid5 sdg1[4] sdd1[1] sdh1[6] sdc1[5] sdi1[3] sdf1[0]
      46883360640 blocks super 1.2 level 5, 64k chunk, algorithm 2 [7/6] [UU_UUUU]
      bitmap: 15/59 pages [60KB], 65536KB chunk

unused devices: <none>
  1. 查看md0详细状态
root@fnos:~# mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Thu Sep 11 19:06:49 2025
        Raid Level : raid5
        Array Size : 46883360640 (43.66 TiB 48.01 TB)
     Used Dev Size : 7813893440 (7.28 TiB 8.00 TB)
      Raid Devices : 7
     Total Devices : 6
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Fri Oct 10 08:01:48 2025
             State : clean, degraded 
    Active Devices : 6
   Working Devices : 6
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 64K

Consistency Policy : bitmap

              Name : fnos:0  (local to host fnos)
              UUID : a9d20e5d:210b0c33:64c43c93:bd8b1b05
            Events : 5251

    Number   Major   Minor   RaidDevice State
       0       8       81        0      active sync   /dev/sdf1
       1       8       49        1      active sync   /dev/sdd1
       -       0        0        2      removed
       3       8      129        3      active sync   /dev/sdi1
       4       8       97        4      active sync   /dev/sdg1
       5       8       33        5      active sync   /dev/sdc1
       6       8      113        6      active sync   /dev/sdh1
  1. 停止阵列md0
mdadm --stop /dev/md0
  1. 添加新磁盘
  • 删除新磁盘上的所有分区表​(包括 MBR/GPT),使其变成一个无分区的空白磁盘。
# /dev/sdb修改为你的新磁盘
# 查看所有磁盘 `lsblk`
sfdisk --delete /dev/sdb
  1. 组建阵列md0
组建已有的磁盘使用--assemble,切勿使用--create创建新阵列
  • 磁盘信息: 请根据你的实际信息,填写磁盘
  • --assemble: Assemble a previously created array.
# sync 磁盘信息
mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 --run --force
# --readonly: 只读模式(建议优先使用,非readonly模式下,会执行sync)
mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 --run --force --readonly
  1. 重新挂载存储,及时备份数据

mdadm
#

查看磁盘信息mdadm -E /dev/sdb1

  • 🪻 Array UUID
  • 🐳 Raid Level
  • 🌾 Raid Devices
  • 🪸 State
  • 🌴 Events
root@fnos:~# mdadm -E /dev/sdb1
/dev/sdb1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : a9d20e5d:210b0c33:64c43c93:bd8b1b05
           Name : fnos:0  (local to host fnos)
  Creation Time : Thu Sep 11 19:06:49 2025
     Raid Level : raid5
   Raid Devices : 7

 Avail Dev Size : 15627786895 sectors (7.28 TiB 8.00 TB)
     Array Size : 46883360640 KiB (43.66 TiB 48.01 TB)
  Used Dev Size : 15627786880 sectors (7.28 TiB 8.00 TB)
    Data Offset : 264192 sectors
   Super Offset : 8 sectors
   Unused Space : before=264112 sectors, after=15 sectors
          State : clean
    Device UUID : 7620653a:fc5cf7eb:0b410a2a:da06d197

Internal Bitmap : 8 sectors from superblock
    Update Time : Wed Oct  8 22:24:43 2025
  Bad Block Log : 512 entries available at offset 40 sectors
       Checksum : 45fd4167 - correct
         Events : 115

         Layout : left-symmetric
     Chunk Size : 64K

   Device Role : Active device 2
   Array State : AAAAAAA ('A' == active, '.' == missing, 'R' == replacing)

磁盘更换
#

  1. 磁盘信息: 操作故障磁盘 停用

  1. 更换磁盘
  • 直接更换: 硬件支持磁盘热插拔,可以直接更换磁盘,无需停机。
  • 停机更换: 硬件不支持磁盘热插拔,需要飞牛关机,更换磁盘,再开机。
  1. 选择磁盘,重新构建
  • 存储空间管理: 显示阵列降级,点击修复,选择新磁盘,输入管理员密码,确认修复。

fnos - 这篇文章属于一个选集。
§ 2: 本文

相关文章


微信赞赏
微信赞赏
关注公众号
关注公众号
支付宝赞赏
支付宝赞赏