我有一个 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 邮件列表。