[gull] Disques de tailles différentes et Raid-0 (striping)

Félix Hauri felix at f-hauri.ch
Wed Aug 6 18:01:40 CEST 2008


Bonjour,

Que se passe-t-il si j'associe en raid-0 2 disques de taille différente?
A priori, cela fonctionne, en ce sens que j'obtiendrais bien un raid
présentant une taille totale égale à la somme des tailles inclues, mais
du point de vue du ``striping''...

Pennons un exemple: deux disques sda 1Mo sdb 1.5Mo...
# dd if=/dev/zero bs=1024 count=1024 of=sda
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.00558941 seconds, 188 MB/s
# dd if=/dev/zero bs=1024 count=1536 of=sdb
1536+0 records in
1536+0 records out
1572864 bytes (1.6 MB) copied, 0.00910629 seconds, 173 MB/s

# losetup -f sda
# losetup -f sdb
# losetup  /dev/loop/0 
/dev/loop/0: [0905]:327044 (sda)
# losetup  /dev/loop1
/dev/loop1: [0905]:327045 (sdb)

... que l'on associe en raid-0:
# mdadm --create /dev/md9 --level 0 --raid-devices 2 /dev/loop{0,1}
mdadm: array /dev/md9 started.

Bon, on s'accroche!
# i=0
# while printf "%16d\n%494s\n" $i ' ' |\
    dd of=/dev/md9 seek=$i 2>log ;do   \
        echo -en \\r$((i++))\\e[K    
    done;echo
4863

(ou bien:
 # i=0;
 # while printf "%16d\n%494s\n" $i ' ';do
       printf >/dev/stderr "\r%6d\e[K" $((i++));
     done |\
     dd of=/dev/md9 
  4991dd: writing to `/dev/md9': No space left on device
   4865+0 records in
   4864+0 records out
  2490368 bytes (2.5 MB) copied, 1.87245 seconds, 1.3 MB/s

Bref...

# mdadm --stop /dev/md9 
# losetup -d /dev/loop0
# losetup -d /dev/loop1
# strings sda | grep [0-9] >sda.nrs
# strings sdb | grep [0-9] >sdb.nrs
# diff sd[ab].nrs |\
    grep ^[\<\>]  |\
    sort -k2  -n  |\
    sed s/\ .*$// |\
    tr \<\> ab    |\
    uniq -c       |\
    column
    128 a           128 a           128 a           128 a           128 a
    128 b           128 b           128 b           128 b           128 b
    128 a           128 a           128 a           128 a           128 a
    128 b           128 b           128 b           128 b           128 b
    128 a           128 a           128 a           128 a           128 a
    128 b           128 b           128 b           128 b          1152 b

CQFD. Le striping s'opère naturellement par tranches régulière
tant que le mirroir est possible...
 Le ``reste'' n'est pas ``stripé''.

-- 
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch



More information about the gull mailing list