Kde to jde používám na systém a důležitější část dat raid1 a občas toho zneužiju tak, že jedno z těch zrcadel vezmu a připojím do jiného počítače.
Raid mám staticky v kernelu, raidované partitions mají typ fd, autodetekce a bootování (lilo) funguje.
Jde o to, že když ty disky po nějakém čase odděleného používání dám zase do jednoho stroje, do pole se dle očekávání vždy nadetekuje jen jedna ze zrcadlených oblastí. Bohužel mi ale uniká algoritmus, který určí, která to bude (tedy mám na to jistou hypotézu a kdybych nebyl líný, tak bych to možná ze zdrojáků pochopil, ale možná to bude zajímat víc lidí, proto píšu sem).
Na kazdem disku je pocitadlo eventu a vybere se ten disk, ktery ma maximalni hodnotu. Nevim presne co to udela u raid5, kdyz maji disky stav treba 1, 1, 3, tam bych ocekaval, ze se to vubec nespusti a ne ze se to spusti z tech prvnich dvou a bude se cekat na povoleni rebuildu obsluhou.
Je tam pocitadlo eventu, ktere se zapisuje do superbloku. Vsimni si na vypisu kernel logu pri startu: nahore je 45 eventu a po spusteni pole se pocitadlo inkrementuje.
md: raid1 personality registered as nr 3
md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
md: Autodetecting RAID arrays.
[events: 00000045]
[events: 00000045]
md: autorun ...
md: considering hdc1 ...
md: adding hdc1 ...
md: adding hda1 ...
md: created md0
md: bind<hda1,1>
md: bind<hdc1,2>
md: running: <hdc1><hda1>
md: hdc1's event counter: 00000045
md: hda1's event counter: 00000045
md: RAID level 1 does not need chunksize! Continuing anyway.
md0: max total readahead window set to 124k
md0: 1 data-disks, max readahead per data-disk: 124k
raid1: device hdc1 operational as mirror 1
raid1: device hda1 operational as mirror 0
raid1: raid set md0 active with 2 out of 2 mirrors
md: updating md0 RAID superblock on device
md: hdc1 [events: 00000046]<6>(write) hdc1's sb offset: 38081984
md: hda1 [events: 00000046]