Hot-swap drive got new name, can I change it on-the-fly?
Posted
by
T.J. Crowder
on Server Fault
See other posts from Server Fault
or by T.J. Crowder
Published on 2011-06-30T13:54:50Z
Indexed on
2011/06/30
16:24 UTC
Read the original article
Hit count: 300
One of the HDDs in my server's RAID config failed, so I took it out of the array and had the data center hot-swap it. They've done that, but now the new drive is /dev/sdc
rather than /dev/sda
. I suspect — correct me if I'm wrong — that if I reboot the server, it will be /dev/sda
again, so I'm hesitant to add it back to the array as /dev/sdc
because I don't want to lay a trap for myself to fall into on the next reboot. I'd just as soon not reboot the server if I don't need to (if I do need to, well, too bad for me).
Is there a way I can change the device name from /dev/sdc
to /dev/sda
without rebooting?
This is on Ubuntu 10.04 LTS. It's an md
array ("Linux Software RAID"), where currently one of the devices (there are a couple of them) looks like this ("degraded" because I've removed the old /dev/sda
from it):
# mdadm --detail /dev/md0 /dev/md0: Version : 00.90.03 Creation Time : Sun Oct 11 21:07:54 2009 Raid Level : raid1 Array Size : 97536 (95.27 MiB 99.88 MB) Used Dev Size : 97536 (95.27 MiB 99.88 MB) Raid Devices : 2 Total Devices : 1 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Thu Jun 30 09:31:16 2011 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 0 Spare Devices : 0 UUID : 496be7a5:ab9177ed:7792c71e:7dc17aa4 Events : 0.112 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 0 0 1 removed
Thanks,
Update: Reading through the kernel md
documentation, I suspect that if the name changes on reboot, it won't matter. (Good design, that.) Here's why:
Boot time autodetection of RAID arrays
When md is compiled into the kernel (not as module), partitions of type 0xfd are scanned and automatically assembled into RAID arrays. This autodetection may be suppressed with the kernel parameter "raid=noautodetect". As of kernel 2.6.9, only drives with a type 0 superblock can be autodetected and run at boot time.
The kernel parameter "raid=partitionable" (or "raid=part") means that all auto-detected arrays are assembled as partitionable.
I do have md
compiled into the kernel, so I'm rebuilding the array now and will do the reboot to see what happens.
Even if it works, the above doesn't answer the question I actually asked, so unless someone comes along and answers that question in the meantime (I'd be interested, even if it's not necessary for what I'm doing this very moment), I'll just delete the question to keep noise down.
© Server Fault or respective owner