In mail.linux.raid I write:

>Other than the superblocks, does 'mdadm --create' harm existing data?

It would seem not according to this test:

------------------------------------------------------------

#!/bin/sh
# Create a test raid6 array, then create it again forcing the devices
# into a different order. Verify that the devices themselves (except the 
superblocks)
# are not altered

num_devices=4
device_size=2 # MByte
loop_start=10
md=/dev/md9
dir=/tmp/raidtest

test -d $dir || mkdir -v $dir
cd $dir

checksum() {
        # dont check superblock at end
        echo $1 `dd if=$1 bs=1024k count=$(($device_size-1)) 2>/dev/null | sum`
}

devs=""
reverse_devs=""
files=""
i=0
while test $i -lt $num_devices; do
  file=dev$i
  loop=/dev/loop$(($loop_start+$i))
  if test ! -f $file; then
    dd if=/dev/urandom of=$file bs=1024k count=$device_size 2>/dev/null
    losetup -d $loop
    losetup $loop $file
  fi
  checksum $file
  devs="$devs $loop"
  reverse_devs="$loop $reverse_devs"
  files="$files $file"
  i=$(($i+1))
done

stop() {
        mdadm --stop $md
}

create() {
        stop
        exe="mdadm -C --force -c 128 -l raid6 -n $(($num_devices+2)) -a $md $* 
missing missing"
        echo $exe
        $exe
        grep `basename $md` /proc/mdstat
        sum $md
        stop
}

create $devs
create $reverse_devs

for d in $devs; do
  checksum $d
done

----------------------------------------------------------------------

Output:

athlon:aab > sudo raidtest
dev0 23143 1024
dev1 38751 1024
dev2 30484 1024
dev3 05590 1024
mdadm -C --force -c 128 -l raid6 -n 6 -a /dev/md9 /dev/loop10 /dev/loop11 
/dev/loop12 /dev/loop13 missing missing
mdadm: /dev/loop10 appears to be part of a raid array:
    level=raid6 devices=6 ctime=Sat Dec  3 15:24:15 2005
mdadm: /dev/loop11 appears to be part of a raid array:
    level=raid6 devices=6 ctime=Sat Dec  3 15:24:15 2005
mdadm: /dev/loop12 appears to be part of a raid array:
    level=raid6 devices=6 ctime=Sat Dec  3 15:24:15 2005
mdadm: /dev/loop13 appears to be part of a raid array:
    level=raid6 devices=6 ctime=Sat Dec  3 15:24:15 2005
Continue creating array? y
mdadm: array /dev/md9 started.
md9 : active raid6 loop13[3] loop12[2] loop11[1] loop10[0]
63189  7680
mdadm -C --force -c 128 -l raid6 -n 6 -a /dev/md9 /dev/loop13 /dev/loop12 
/dev/loop11 /dev/loop10 missing missing
mdadm: /dev/loop13 appears to be part of a raid array:
    level=raid6 devices=6 ctime=Sat Dec  3 15:29:20 2005
mdadm: /dev/loop12 appears to be part of a raid array:
    level=raid6 devices=6 ctime=Sat Dec  3 15:29:20 2005
mdadm: /dev/loop11 appears to be part of a raid array:
    level=raid6 devices=6 ctime=Sat Dec  3 15:29:20 2005
mdadm: /dev/loop10 appears to be part of a raid array:
    level=raid6 devices=6 ctime=Sat Dec  3 15:29:20 2005
Continue creating array? y
mdadm: array /dev/md9 started.
md9 : active raid6 loop10[3] loop11[2] loop12[1] loop13[0]
58879  7680
/dev/loop10 23143 1024
/dev/loop11 38751 1024
/dev/loop12 30484 1024
/dev/loop13 05590 1024

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

Reply via email to