Sunday, April 19, 2015

linux - Replaced a RAID 10 drive on my Debian server - what do I do next?


I have 4 x 3TB drives in a RAID 10 array. One failed, so is now removed.



/proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : active raid10 sdd[2] sdc[1] sde[3]
5860530176 blocks super 1.2 512K chunks 2 near-copies [4/3] [_UUU]



I've put the new HDD in, and it appears to have picked it up as sdb. I can't seem to figure out (even with much googling) what the correct procedure is now, to add sdb as the replacement disk. I've found posts telling me to copy the partition table from one of the other disks, but when I use fdisk or sfdisk it tells me that there are no valid partition tables, and looking in /dev there are sdc, sdd, sde devices but with no partitions listed. Yet the RAID array is working fine (albeit degraded)! What gives here? The array was originally built when I was running Openmediavault, so is it a hangover from that?


I've tried mdadm --assemble --scan but that does nothing.. I guess I need to force sdb into the array somehow, but I don't want to do the wrong thing, obvs!


Some output from mdadm:


sudo mdadm -D /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Wed Dec 12 13:48:21 2012
Raid Level : raid10
Array Size : 5860530176 (5589.04 GiB 6001.18 GB)
Used Dev Size : 2930265088 (2794.52 GiB 3000.59 GB)
Raid Devices : 4
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Tue Jul 8 22:19:20 2014
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Name : omv:4x3TB
UUID : acaef996:1ea7102b:9cd52d00:af0ef09e
Events : 779391
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde

...and full output from fdisk -l



sudo fdisk -l


WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 60.0 GB, 60022480896 bytes
255 heads, 63 sectors/track, 7297 cylinders, total 117231408 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Device Boot Start End Blocks Id System
/dev/sda1 1 117231407 58615703+ ee GPT


Disk /dev/mapper/tower--vg-root: 55.1 GB, 55067017216 bytes
255 heads, 63 sectors/track, 6694 cylinders, total 107552768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/tower--vg-root doesn't contain a valid partition table


Disk /dev/mapper/tower--vg-swap_1: 4185 MB, 4185915392 bytes
255 heads, 63 sectors/track, 508 cylinders, total 8175616 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/tower--vg-swap_1 doesn't contain a valid partition table


Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000


Disk /dev/sdb doesn't contain a valid partition table


Disk /dev/sdc: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000


Disk /dev/sdc doesn't contain a valid partition table


Disk /dev/sde: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000


Disk /dev/sde doesn't contain a valid partition table


Disk /dev/sdd: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000


Disk /dev/sdd doesn't contain a valid partition table


Disk /dev/md127: 6001.2 GB, 6001182900224 bytes
2 heads, 4 sectors/track, 1465132544 cylinders, total 11721060352 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x00000000


Disk /dev/md127 doesn't contain a valid partition table



Answer



When running into a similar situation (though it was not a RAID10, nor was it created by an OpenMediaVault installation) I simply mdadm -add'ed the new disk to the array. This effectively made the new disk a (hot) spare disk, after which the degraded array picked it up as a means to repair the array.


Besides the mdadm --add I'm not entirely sure which other commands I ran (if any at all). All I used from there was the mdadm(8) man page.


No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...