对于 mdadm RAID 阵列,将 Number 列中的数字更改为从 0 开始连续

对于 mdadm RAID 阵列,将 Number 列中的数字更改为从 0 开始连续

我有一个 RAID 1 阵列:

# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Thu Oct 18 21:52:43 2012
     Raid Level : raid1
     Array Size : 1048564 (1024.16 MiB 1073.73 MB)
  Used Dev Size : 1048564 (1024.16 MiB 1073.73 MB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Fri Oct 19 16:25:32 2012
          State : clean
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1

           Name : cow:0  (local to host cow)
           UUID : 9e691db1:f8fcc7d8:f56d9c11:1c202693
         Events : 98

    Number   Major   Minor   RaidDevice State
       2       8        2        0      active sync   /dev/sda2
       3       8       18        1      active sync   /dev/sdb2

       4       8       34        -      spare   /dev/sdc2

是否可以将列中的数字更改Number为 0、1、2 而不是 2、3、4?它们是 0、1、2,直到我对阵列进行了一些修改,删除和添加了设备。

答案1

这些数字是永恒的设备标识符存储在超级块RAID 阵列设备的数量(“This-Component-Device”部分中的“dev_number”字段)且无法更改。

但是,您可以重新创建干净的使用相同设备的数组,这将生成具有新设备标识符的新超级块。


此操作不应影响 RAID 阵列上存储的任何数据,仅影响 RAID 元数据(超级块)。


1。备份您的数据 -安全总比后悔好-这样做需要您自担风险

# Retrieve [/dev/md0] metadata version
METADATAVER=`cat /sys/block/md0/md/metadata_version`

2。停止 RAID 阵列

mdadm --stop /dev/md0

3。重新创建RAID阵列,假设是干净的,具有相同的元数据版本

mdadm --create /dev/md0 --assume-clean --metadata=$METADATAVER --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2

    mdadm: /dev/sda2 appears to be part of a raid array:
          level=raid1 devices=2 ctime=Sun Mar 11 11:11:11 2021
    mdadm: /dev/sdb2 appears to be part of a raid array:
          level=raid1 devices=2 ctime=Sun Mar 11 11:11:11 2021
    Continue creating array? y
    mdadm: array /dev/md0 started.

4。将备用设备重新添加到RAID阵列中

mdadm --add /dev/md0 /dev/sdc2

5。享受您的强迫症免费设备号码

mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Mon Mar 13 13:13:13 2023
        Raid Level : raid1
        Array Size : 1048564 (1024.16 MiB 1073.73 MB)
     Used Dev Size : 1048564 (1024.16 MiB 1073.73 MB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Mon Mar 13 13:13:13 2023
             State : clean 
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 1

Consistency Policy : resync

              Name : cow:0  (local to host cow)
              UUID : 9e691db1:f8fcc7d8:f56d9c11:1c202693
            Events : 3

    Number   Major   Minor   RaidDevice State
       0       7        1        0      active sync   /dev/sda2
       1       7        2        1      active sync   /dev/sdb2

       2       7        3        -      spare   /dev/sdc2

这个答案的灵感来自“超级块版本之间的转换” 作者:Neil Brown,最初发布到 linux-raid 邮件列表。


相关内容