* sparegroups + sparemove
@ 2004-07-26 12:06 bernd
0 siblings, 0 replies; only message in thread
From: bernd @ 2004-07-26 12:06 UTC (permalink / raw)
To: linux-raid; +Cc: Roger Diller
Hi mirror freaks,
we are using sw-raid and its a pretty fine thing. After a while playing
around with sparegroups and mdadm -f/-r/-a and watching how fine the
sparedisks are moved within the sparegroups the system stops moving
sparedisks from one array to another.
It is caused by wrong counters for sparedisks. The counters become wrong
as already mentioned in a former thread by Guy. This is no problem if the
counters are only showed in outputs but in this case the functionality
isn't given any more!
My question: is there a secure way to adjust the counters in case they are
wrong? Ok, it's easy to write a small programm reading the superblock and
writing it back with corrected numbers but can I do that on a working array?
For us it isn't possible to upgrade to kernel 2.6 which should fix the
problem at this time for many reasons....
Greetings Bernd Rieke
--------------------------------------------------------------------------
Here our investigations, the two arrays are:
/dev/md2:
Version : 00.90.00
Creation Time : Thu May 20 22:55:59 2004
Raid Level : raid1
Array Size : 143653120 (136.100 GiB 147.10 GB)
Device Size : 143653120 (136.100 GiB 147.10 GB)
Raid Devices : 2
Total Devices : 1
Preferred Minor : 2
Persistence : Superblock is persistent
Update Time : Sat Jul 10 16:15:21 2004
State : dirty, no-errors
Active Devices : 1
Working Devices : 2
Failed Devices : -1
Spare Devices : 1 <<<<<<<<<<<<<<<<<< wrong !!!!!!!!!!!!!!!
Number Major Minor RaidDevice State
0 8 81 0 active sync /dev/sda
1 8 17 1 faulty removed
UUID : 666644bc:fd696534:33349994:a71194a3
Events : 0.211
/dev/md3:
Version : 00.90.00
Creation Time : Thu May 20 23:40:25 2004
Raid Level : raid1
Array Size : 143653120 (136.100 GiB 147.10 GB)
Device Size : 143653120 (136.100 GiB 147.10 GB)
Raid Devices : 2
Total Devices : 3
Preferred Minor : 3
Persistence : Superblock is persistent
Update Time : Sun Jul 11 01:13:31 2004
State : dirty, no-errors
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 5 <<<<<<<<<<<<<<<<<<<<<<<< even wrong !!!!
Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc
1 8 97 1 active sync /dev/sdd
2 8 113 2 spare /dev/sde
UUID : 9fb3650a:0a054f9e:00f14fde:8fd31b65
Events : 0.137
As one can see in the code of mdadm-1.5.0/Monitor.c the move between the
group is only initiated if the sparecount in the degrated array is zero
(which makes sense:-)). In our case it's 1 so no sparemove will take place.
./mdadm-1.5.0/Monitor.c line 364 ff
-----------------------------------
....
....
/* If an array has active < raid && spare == 0 && spare_group != NULL
* Look for another array with spare > 0 and active == raid and same spare_group
* if found, choose a device and hotremove/hotadd
*/
for (st = statelist; st; st=st->next)
if (st->active < st->raid &&
st->spare == 0 && <<<<<<<< md2 isn't zero, but has no spare
st->spare_group != NULL) {
struct state *st2;
for (st2=statelist ; st2 ; st2=st2->next)
if (st2 != st &&
st2->spare > 0 &&
st2->active == st2->raid &&
st2->spare_group != NULL &&
strcmp(st->spare_group, st2->spare_group) == 0) {
/* try to remove and add */
.....
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2004-07-26 12:06 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-26 12:06 sparegroups + sparemove bernd
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).