* Making RAIDS with firewire drives -- changing device IDs.
@ 2003-10-25 20:21 AndyLiebman
2003-10-25 20:26 ` seth vidal
0 siblings, 1 reply; 2+ messages in thread
From: AndyLiebman @ 2003-10-25 20:21 UTC (permalink / raw)
To: linux-raid
Hi everyone,
I have a problem, however, and I'm wondering if anybody knows how to solve
it.
Using raidtab and mkraid, I am creating RAID arrays with external firewire
drives and 5 separate PCI firewire controllers. I'm getting great performance.
However, it seems that the device IDs of the drives are not fixed. When I
created the RAIDs, I specified devices sda1, sdb1, sdc1, etc. in my raidtab.
However, if I add additional drives to my system (say, to make a second additional
RAID array) -- or if I accidentally unplug some drives while moving the
computer and plug them in again differently - what was once sdb1 can now become
sde1. This seems like a dangerous situation to me. At the very least, the
information in the raidtab file will no longer accurate.
I have now carefully labeled what drive is pluged into what controller port
-- to guard against the accidental unplugging problem. However, it's inevitable
that I'm going to want to add more drives to the system and that's going to
change the device label assignments.
I understand that mdadm can use UUIDs to identify drives. It's not clear to
me whether each disk or partition that belongs to an array gets the SAME UUID
number on it -- allowing mdadm to find all the disks that go together. Or does
each member of an array gets its own UUID and somewhere there's a record of
all the UUIDs that go together? And if it's the latter, where is that record
kept?
Regardless of the answer to the above question, my bigger question is, will
UUIDs give me a way of guaranteeing that I'll be able to start and manage my
arrays even if the device labels (sda1, sdb1, etc.) change from what they were
when I created the arrays? Do I have to record a UUID for each drive? Or only
from each array?
Based on what I have read about mdadm, it seems to me that each device in an
array probably gets the same UUID, and that once I store the information from
an array in the etc/mdadm.conf file I can use the UUID instead of the device
name to start the array.
(I also understand that all the involved device names must be listed in the
mdadm.conf file. However, I'm not sure whether it would be bad to list ALL
firewire devices (sda, sdb, etc.) in the mdadm.conf file, even if some of them are
NOT part of any of the arrays listed there? If I had 12 firewire drives
involved in arrays, but two that weren't, would it be bad to list all 14 in the
mdadm.conf file if I wasn't sure which ones didn't belong to any arrays?)
Right now I have three RAID 1 arrays that I made out of sda1, sdb1, sdc1, sdd
1, sde1, sdf1. These are md0, md1, and md2. On top of that, I have made a RAID
0 array that stripes the three mirrors.
Now lets say next month I want to make another set of arrays just like the
first. So, I'll plug six more drives into my system and now, in addition to the
first group of devices, I also have sdg1, sdh1, sdi1, sdj1, sdk1, sdl1.
I'm 99 percent sure that when I plug in those devices and boot up my
computer, some of the new devices will get assigned the older device ids. And some of
the older drives that were part of the first group of arrays will get device
IDs in the g-l range. That's just the way Firewire works, I'm afraid.
Will I be able to start up my old arrays?
And in order to create NEW arrays, will I have to figure out what device IDs
(sda, sdb, etc.) correspond to the new empty drives that I just added? And
what's the best way to do that?
I am using Mandrake 9.2 -- which includes a configuration program (HardDrake)
that lets me see all the device IDs and also tells me what the hardware
location is for that device. So, for instance, sda is currently at
scsi/host2/bus0/target1/lun0/part1.
After adding new drives, assuming I can activate my existing arrays, I should
be able to do a "cat /proc/mdstat" that will tell me what hardware
location corresponds to each device in those arrays. I should then be able to go back
to HardDrake and see what the device IDs are (sda, sdb, etc) which correspond
to those hardware locations that are referred to in the existing arrays. And
then I would know what hardware locations -- and therefore device IDs -- are
available for the new arrays.
Does this make sense? Is there any easier way to solve my problem? I would
very much appreciate the answers of people who know better than I.
Thanks in advance.
Sincerely,
Andy Liebman
P.S. The problem of "changing device id's" cropped up today after I wrote
this note. I was resyncing one of my mirrors (md1 -- originally made up of sdc
and sde). One of the drives had developed a "bad sector" and I needed to
replace it. All I did was unplug the existing drive (with the computer shut down),
put a new drive in its place, and boot up.
The drive was recognized fine -- and I still had device id's sda- through
-sdf. As it turns out, I didn't have any data on any of my drives, so I just
issued the command "mkraid --really-force /dev/md1" to recreate the array. And
much to my horror, I saw the drive lights come on for the drive I just replaced
AND one of the drives that was supposed to be in my md2. Upon investigating the
situation, I discovered that the drive that HAD BEEN sde was now sdf, and
vice versa. So, without adding any additional drives (just substituting one for
another), and without changing which PCI cards and ports the drives were
plugged into, the drive ids changed! My raidtab file no longer accurately described
what drive (sda, sdb, sdc, etc.) was supposed to be in what RAID array
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Making RAIDS with firewire drives -- changing device IDs.
2003-10-25 20:21 Making RAIDS with firewire drives -- changing device IDs AndyLiebman
@ 2003-10-25 20:26 ` seth vidal
0 siblings, 0 replies; 2+ messages in thread
From: seth vidal @ 2003-10-25 20:26 UTC (permalink / raw)
To: AndyLiebman; +Cc: linux-raid
> I understand that mdadm can use UUIDs to identify drives. It's not clear to
> me whether each disk or partition that belongs to an array gets the SAME UUID
> number on it -- allowing mdadm to find all the disks that go together. Or does
> each member of an array gets its own UUID and somewhere there's a record of
> all the UUIDs that go together? And if it's the latter, where is that record
> kept?
it's the former.
> Regardless of the answer to the above question, my bigger question is, will
> UUIDs give me a way of guaranteeing that I'll be able to start and manage my
> arrays even if the device labels (sda1, sdb1, etc.) change from what they were
> when I created the arrays? Do I have to record a UUID for each drive? Or only
> from each array?
yes - it guarantees that you can start the array.
> (I also understand that all the involved device names must be listed in the
> mdadm.conf file. However, I'm not sure whether it would be bad to list ALL
> firewire devices (sda, sdb, etc.) in the mdadm.conf file, even if some of them are
> NOT part of any of the arrays listed there? If I had 12 firewire drives
> involved in arrays, but two that weren't, would it be bad to list all 14 in the
> mdadm.conf file if I wasn't sure which ones didn't belong to any arrays?)
look at --scan and --assemble .
-sv
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-10-25 20:26 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-10-25 20:21 Making RAIDS with firewire drives -- changing device IDs AndyLiebman
2003-10-25 20:26 ` seth vidal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).