Re: Renaming MD devices (metadata=1.1)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10.01.2012 07:12, Gilbert Kowarzyk wrote:


# mdadm --examine --scan /dev/sdc1
=================================>
ARRAY /dev/md/9 metadata=1.1 UUID=0fa7f737:7806ca61:fb89edd6:14aa351a
name=xyz.homelinux.com:9
<=================================


# mdadm --examine --scan /dev/sdd1
=================================>
ARRAY /dev/md/9 metadata=1.1 UUID=0fa7f737:7806ca61:fb89edd6:14aa351a
name=xyz.homelinux.com:9
<=================================


# mdadm --detail --scan
=================================>
ARRAY /dev/md/xyz.homelinux.com:9 metadata=1.1
name=xyz.homelinux.com:9 UUID=0fa7f737:7806ca61:fb89edd6:14aa351a
<=================================

# blkid
=================================>
/dev/md127: UUID="c301cf13-cfaf-4f56-887e-c648caf5a931" TYPE="ext4"
<=================================

in /etc/fstab I have:
=================================>
UUID=c301cf13-cfaf-4f56-887e-c648caf5a931 /DATA    ext4  defaults 1 2
<=================================

and in /etc/mdadm.conf I have:
=================================>
ARRAY /dev/md/xyz.homelinux.com:9 metadata=1.1
name=xyz.homelinux.com:9 UUID=0fa7f737:7806ca61:fb89edd6:14aa351a
<=================================


To me, the line that looks suspicious is the one we get from "mdadm
- --detail --scan". All the devices that "look right" say "ARRAY
/dev/md/X" where X is a number.

I fixed this temporarily by stopping the array and re-assembling it with:

mdadm --assemble /dev/md9 --name=9 --update=name /dev/sdc1 /dev/sdd1


You updated name stored in the metadata, and assembled the array explicitly requesting particular standard name. But the names directly under /dev are managed/assigned by udev.

As the /dev/md9 was explicitly given in this form, the MD_DEVNAME was not present in 'mdadm --detail --export' output, thus /dev/md/9 was not created by mdadm's udev rules - but it would have been if you had done mdadm --assemble /dev/md/9 ...


Then the mdadm --detail --scan line says:
ARRAY /dev/md/9 metadata=1.1 name=xyz.homelinux.com:9
UUID=0fa7f737:7806ca61:fb89edd6:14aa351a

... which makes more sense to me (it looks like the other ones.

Yet, when I reboot the computer this "temporarily fixed" array returns
to /dev/md127.

But you should have proper, permanent name (as a symlink) under /dev/md/

Autoassembly (be it -I used with modern mdadm's udev rules) or -A will try to honor the device name if the name is in standard format, so for mdadm.conf with ARRAY /dev/md/9 ... - you will (usually) get /dev/md9 - but this it's not really worth chasing after or relying on (and what if the name is already taken ?).

Just write:

ARRAY /dev/md/somename UUID=0fa7f737:7806ca61:fb89edd6:14aa351a
ARRAY somename UUID=0fa7f737:7806ca61:fb89edd6:14aa351a

in which case 'somename' will be created under /dev/md/ regardless of the name stored in the metadata, or just

ARRAY UUID=0fa7f737:7806ca61:fb89edd6:14aa351a

so the metadata (without hostname prefix) will be used.

So to sum it up - if '9' is what you're after - then the ARRAY line with just UUID is all you should be needing - and you should always get /dev/md/9 (pointing to something else assigned dynamically).

If udevd is not running (hardly interesting case anymore), then mdadm will fall back to the pre-udev behavior and setup the nodes itself, though the rules are slightly different then.

--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux