On Thursday November 2, [EMAIL PROTECTED] wrote:
> If I use mdadm 2.5.4 to create a version 1 superblock raid1 device, it
> starts a resync. If I then reboot the computer part way through, when
> it boots back up, the resync gets cancelled and the array is considered
> clean. This is against a 2.6.18.1 kernel.
I cannot reproduce that (I tried exactly 2.6.18.1).
Do you have kernel logs of the various stages?
>
> If I create a version 1 superblock raid1 array, mdadm -D <constituent
> device> says that the device is not part of a raid array (and likewise
> the kernel autorun facility fails to find the device).
mdadm -D <constituent device>
is incorrect usage. You want
mdadm -E <constituent device>
or
mdadm -D <assembled array>
in-kernel autorun does not work with version 1 metadata as it does not
store a 'preferred minor'.
>
> If I create a version 1 superblock raid1 array, mdadm -E <constituent
> device> sees the superblock. If I then run mdadm -E --brief on that
> same device, it prints out the 1 line ARRAY line, but it misprints the
> UUID such that is a 10 digit hex number: 8 digit hex number: 8 digit hex
> number: 6 digit hex number.
Oops, so it does. Fix below. Thanks.
> It also prints the mdadm device in the
> ARRAY line as /dev/md/# where as mdadm -D --brief prints the device
> as /dev/md#. Consistency would be nice.
It would be nice .... but how important is it really?
If you create the same array with --name=fred, then
-Eb with give /dev/md/fred, while -Db will give /dev/md2.
Both a right in a sense.
Ofcourse if you say
mdadm -Db /dev/md/2
then you get /dev/md/2.
You only have /dev/md2 force on you with
mdadm -Ds
In that case mdadm doesn't really know what name you want to use for
the md device.... I guess it could scan /dev.
>
> Does the superblock still not store any information about whether or not
> the array is a single device or partitionable? Would be nice if the
> superblock gave some clue as to that fact so that it could be used to
> set the auto= param on an mdadm -E --brief line to the right mode.
No the superblock does not store any information about where or not
the array has partitions. Presumably the partition table does ...
I would recommend that if you want to do everything automatically,
then assemble all arrays as partitionable. Then you can use it with
or without partitions.
> Mdadm assumes that the --name option passed in to create an array means
> something in particular to the md array name and modifies subsequent
> mdadm -D --brief and mdadm -E --brief outputs to include the name option
> minus the hostname. Aka, if I set the name to firewall:/boot, mdadm -E
> --brief will then print out the ARRAY line device as /dev/md//boot. I
> don't think this is documented anywhere. This also raises the question
> of how partitionable md devices will be handled in regards to their name
> component.
The 'Auto Assembly' section talks about this a bit, though not in the
context of --examine.
The documentation for --auto suggest that in the above case,
partitions would be
/dev/md/boot1
/dev/md/boot2
I'm always keen to improve the documentation. What would you like
included where?
NeilBrown
### Diffstat output
./super1.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff .prev/super1.c ./super1.c
--- .prev/super1.c 2006-10-19 16:45:26.000000000 +1000
+++ ./super1.c 2006-11-09 16:11:57.000000000 +1100
@@ -345,8 +345,8 @@ static void brief_examine_super1(void *s
nm,
c?c:"-unknown-", __le32_to_cpu(sb->raid_disks));
for (i=0; i<16; i++) {
- printf("%02x", sb->set_uuid[i]);
if ((i&3)==0 && i != 0) printf(":");
+ printf("%02x", sb->set_uuid[i]);
}
if (sb->set_name[0])
printf(" name=%.32s", sb->set_name);
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html