I'm sort of new to mdadm, but I have 15 years experience with Novell NetWare and during these days, I have seen and touched a lot of servers, most having software mirroring. NetWare has a "mirror group" ID (32 bit) and all disks have a 32-bit ID (based on timestamps). It is highly unlikely to find two disks from two different system having the same group ID and a belonging disk ID (not to mention the same size for the partition). I swapped/changed disks and broke/ create mirrors for like hundreds of occasion of migrations, and I never had any problem with that. I strongly believe that it is much more likely to find two systems with the same hostname... (I mean like: "server", "backup", etc...).
I really like to understand how mdadm works in deep tech - possibly without studying the source code. For one thing, I just cannot imagine a "wrong thing gets assembled" scenario. Can someone help me with this? I mean having two disks from two system with a same 16 byte UUID and same partition size (if that is needed for mdadm) is so unlikely that we can just skip that. Or am I missing something here?
About "One of the main issues ... If you find 2 arrays that both claim to be '0', which one do you believe?" Well, such an issue can only happen if someone on purpose moves one disk to another system. Also I fail to see why this is an "assemble" problem, if we have different UIDs on both disks. Then simply there should be two broken md0-s, the "second" md0 being called as md1 (or the next available #). This is more like a mounting/booting issue, as if I would want to boot from md0(:1) then I'd need to specify md1. This would be a temporary problem if I could just "rename" the separate array member disk "name".
Also consider that some people (like myself) use "ironclad" kernels, eg. no "initrd and stuff". (This leaves -e 0.90 for system partitions if I see correctly.)
