Re: Raid10, six drives, two mirrors

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

 



On Tue, Sep 11, 2018 at 12:25:07AM +0200, Andreas Klauer wrote:
> In practise it seems few people use this option. When I tried it, 
> with six 100M-loopdevs just for testing it, the kernel oopsed out.
> (unable to handle kernel NULL pointer dereference in r10buf_pool_alloc)

So I updated my slightly dated kernel today (4.16.12 to 4.18.7) 
and the kernel panic didn't happen again. :-)

So create a raid10 with n3 layout for testing purposes:

# truncate -s 100M a b c d e f
# for x in a b c d e f; do losetup --find --show $x; done
/dev/loop0
/dev/loop1
/dev/loop2
/dev/loop3
/dev/loop4
/dev/loop5

# mdadm --create /dev/md42 --level=10 --layout=n3 --raid-devices=6 /dev/loop{0..5}
# for ((i=0; i>=0; i+=16)) ; do printf "%015x\n" $i; done | pv > /dev/md42
# hexdump -C /dev/md42 | head
00000000  30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 0a  |000000000000000.|
00000010  30 30 30 30 30 30 30 30  30 30 30 30 30 31 30 0a  |000000000000010.|
00000020  30 30 30 30 30 30 30 30  30 30 30 30 30 32 30 0a  |000000000000020.|

So that's each 16-byte block populated with its hex offset. 
That way we can grep where each data block ended up and how 
many copies there are:

# grep -a -b 000000000100000 *
a:1572864:000000000100000
b:1572864:000000000100000
c:1572864:000000000100000
# grep -a -b 000000000180000 *
d:1572864:000000000180000
e:1572864:000000000180000
f:1572864:000000000180000
# grep -a -b 000000000200000 *
a:2097152:000000000200000
b:2097152:000000000200000
c:2097152:000000000200000
# grep -a -b 000000000280000 *
d:2097152:000000000280000
e:2097152:000000000280000
f:2097152:000000000280000

So each data block exists three times on either side (abc or def).
It switches sides every 0x80000 (512K) bytes.

Regards
Andreas Klauer



[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