Rebuilding software RAID array is very easy when you have your mdadm.conf file at hand, but when you find yourself in a situation without backup of that little config file, e.g. after reinstalling the system or when your migrate disks to the new server, it can be a bit daunting.
Recently I had to reassemble two software RAID1 arrays one small Debian server after OS reinstall. So, there were four hard drives in total and to avoid mix-up and data loss, I had to find out which disk belonged which RAID array. Examining each drive with mdamd provided me with the necessary information.
# mdadm --examine /dev/sdd1
/dev/sdd1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : a4efd493:632caec4:50789581:e67b9b47
Name : localhost:RA2 (local to host localhost)
Creation Time : Wed Mar 4 19:26:05 2015
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 11720780943 (5588.90 GiB 6001.04 GB)
Array Size : 5860390272 (5588.90 GiB 6001.04 GB)
Used Dev Size : 11720780544 (5588.90 GiB 6001.04 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : b5e2af07:edc086ce:c54c1952:b360835f
Update Time : Sun Aug 2 13:24:02 2015
Checksum : 714f53f - correct
Events : 81709
Device Role : Active device 0
Array State : AA ('A' == active, '.' == missing)
# mdadm --examine /dev/sde1
/dev/sde1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : a4efd493:632caec4:50789581:e67b9b47
Name : localhost:RA2 (local to host localhost)
Creation Time : Wed Mar 4 19:26:05 2015
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 11720780943 (5588.90 GiB 6001.04 GB)
Array Size : 5860390272 (5588.90 GiB 6001.04 GB)
Used Dev Size : 11720780544 (5588.90 GiB 6001.04 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : ca0d4119:7d0ffe70:eeda4f58:f9b5cf56
Update Time : Sun Aug 2 13:24:02 2015
Checksum : b8a05254 - correct
Events : 81709
Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing)
The key information I was looking for was array UUID. When I found the two disks with the same array UUID, I was able to create new MD device and assemble the RAID array.
# mdadm --assemble --uuid=a4efd493:632caec4:50789581:e67b9b47 --verbose /dev/md0 /dev/sdd1 /dev/sde1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sdb is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdc is identified as a member of /dev/md0, slot 1.
mdadm: added /dev/sdd1 to /dev/md0 as 1
mdadm: added /dev/sde1 to /dev/md0 as 0
mdadm: /dev/md0 has been started with 2 drives.
Checking array details confirmed that everything was in order.
# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Mar 4 19:26:05 2015
Raid Level : raid1
Array Size : 5860390272 (5588.90 GiB 6001.04 GB)
Used Dev Size : 5860390272 (5588.90 GiB 6001.04 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sun Aug 2 13:24:02 2015
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : localhost:RA2 (local to host localhost)
UUID : a4efd493:632caec4:50789581:e67b9b47
Events : 81709
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
2 8 65 1 active sync /dev/sde1
Of course, updating mdadm.conf
with reassembled array mustn’t be forgotten.
# mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Also, make sure to take care of your mount definitions in /etc/fstab
.