mdadm --grow $md0 --bitmap=internal
[ $? -eq '0' ] ||
die "$NODE1: change bitmap 'none' to 'internal' failed."
-sleep 1
+sleep 2
mdadm -X $dev0 $dev1 &> /dev/null
[ $? -eq '0' ] ||
die "$NODE1: create 'internal' bitmap failed."
[ $? -eq '0' ] ||
die "$NODE1: change bitmap 'none' to 'clustered' failed."
ssh $NODE2 mdadm -A $md0 $dev0 $dev1
-sleep 1
+sleep 2
for ip in $NODES
do
ssh $ip "mdadm -X $dev0 $dev1 | grep -q 'Cluster name'" ||
crm configure clone base-clone base-group \
meta interleave=true
fi
- sleep 1
+ sleep 2
for ip in $NODE1 $NODE2
do
ssh $ip "pgrep dlm_controld > /dev/null" || {
systemctl stop mdcheck_continue.timer
exit 0;
fi
- sleep 120
+ sleep 220
done
# We've waited, and there are still checks running.
mdadm $md0 --fail $dev2
check resync
mdadm $md0 --fail $dev1
-sleep 1
+sleep 2
check nosync
check state U___
mdadm $md0 --add $dev4 $dev3
mdadm $md0 --add $dev1 $dev5
mdadm $md0 --replace $dev0
- sleep 1
+ sleep 2
mdadm $md0 --fail $dev2
check wait
sum2=`sha1sum < $md0`
mdadm $md0 --remove $dev0 $dev2
mdadm $md0 --add $dev0 $dev2
mdadm $md0 --replace $dev3
- sleep 1
+ sleep 2
mdadm $md0 --fail $dev0 $dev2
check wait
sum3=`sha1sum < $md0`
sleep 6
mdadm $md0 -f $dev2
-sleep 1
+sleep 2
mdadm $md0 -r $dev2
mdadm $md0 -a $dev2
#cat /proc/mdstat
check nosync
mdadm $md0 -f $dev2
-sleep 1
+sleep 2
mdadm $md0 -r $dev2
testdev $md0 1 $mdsize1a 64
mdadm $md0 -a $dev2
blockdev --flushbufs $dev1 $dev2
cmp --ignore-initial=$[64*512] --bytes=$[$mdsize0*1024] $dev1 $dev2
-mdadm $md0 -f $dev2; sleep 1
+mdadm $md0 -f $dev2; sleep 2
mdadm $md0 -r $dev2
if dd if=/dev/zero of=$md0 ; then : ; fi
blockdev --flushbufs $md0 # ensure writes have been sent.
# readd should fail.
#
mdadm -B $md0 -l1 -n2 -d1 $dev1 $dev2
-sleep 1
+sleep 2
check resync
check wait
testdev $md0 1 $size 1
sleep 6
mdadm $md0 -f $dev2
-sleep 1
+sleep 2
mdadm $md0 -r $dev2
if mdadm $md0 --re-add $dev2; then
err "re-add should fail"
# then reshape back up to RAID5 and RAID5
mdadm -CR $md0 -l6 -n5 $dev0 $dev1 $dev2 $dev3 $dev4
-check wait; sleep 1
+check wait; sleep 2
check raid6
testdev $md0 3 19456 512
mdadm -G $md0 -l5
-check wait; sleep 1
+check wait; sleep 2
check raid5
testdev $md0 3 19456 512
mdadm -G $md0 -l0
-check wait; sleep 1
+check wait; sleep 2
while ps auxf | grep "mdadm -G" | grep -v grep
do
- sleep 1
+ sleep 2
done
check raid0
testdev $md0 3 19456 512
mdadm -G $md0 -l5 --add $dev3 $dev4
-check wait; sleep 1
+check wait; sleep 2
check raid5
check algorithm 2
testdev $md0 3 19456 512
mdadm -G $md0 -l 6
-check wait; sleep 1
+check wait; sleep 2
check raid6
check algorithm 2
testdev $md0 3 19456 512
END
udevadm settle
mdadm -CR -e 0 $md0 -l1 -n2 ${mdp0}p1 ${mdp1}p1
-sleep 1
+sleep 2
check resync
check raid1
check wait
shift
sleep 0.5
check wait
- sleep 1
+ sleep 2
for attr in level raid_disks chunk_size layout
do
if [ $# -gt 0 ] ; then
# level raid_disks chunk_size layout
dev=$1
shift
- sleep 15
+ sleep 25
check wait
- sleep 1
+ sleep 2
for attr in level raid_disks chunk_size layout
do
if [ $# -gt 0 ] ; then
if [[ $(echo check > /sys/block/md0/md/sync_action) != 0 ]]; then
break;
fi
- sleep 1
+ sleep 2
done
if [[ i == max ]]; then
success=1
break
fi
- sleep 1
+ sleep 2
done
if [ $success -ne 1 ]; then
mdadm --wait $member1 || true
mdadm -Ss
-sleep 1
+sleep 2
# Add all devices except those for $member0
mdadm -I $dev10
fail0=$1
mdadm $member0 --fail $fail0
-sleep 1
+sleep 2
mdadm $container --remove $fail0
set -- $(get_raiddisks $member0)
# We re-add the disk now
mdadm $container --add $fail0
-sleep 1
+sleep 2
mdadm --wait $member0 || true
ret=0
fail0=$1
mdadm $member0 --fail $fail0
-sleep 1
+sleep 2
set -- $(get_raiddisks $member0)
case $1 in MISSING) shift;; esac
good0=$1
# We re-add the disk now
mdadm $container --add $fail0
-sleep 1
+sleep 2
mdadm --wait $member0 || true
set -- $(get_raiddisks $member0)
fail0=$1
mdadm $member0 --fail $fail0
-sleep 1
+sleep 2
mdadm $container --remove $fail0
set -- $(get_raiddisks $member0)
mdadm -Ss
-sleep 1
+sleep 2
# Now simulate incremental assembly
mdadm -I $good0
mdadm -IRs || true
# We re-add the disk now
mdadm $container --add $fail0
-sleep 1
+sleep 2
mdadm --wait $member0 || true
ret=0
sum1=$(sha1sum $member1)
mdadm --fail $member1 $dev11
-sleep 1
+sleep 2
mdadm --fail $member1 $dev12
# We will have 4 resync procedures, 2 spares for 2 arrays.
sha_1a=$(sha1_sum $member1)
mdadm -Ss
-sleep 1
+sleep 2
# Add all devices except those for $member0
mdadm -I $dev10
sha_1b=$(sha1_sum $member1)
mdadm -Ss
-sleep 1
+sleep 2
# Seq number should be different now
seq8a=$(mdadm -E $dev8 | sed -n 's/^ *Seq : //p')
sha_1c=$(sha1_sum $member1)
mdadm -Ss
-sleep 1
+sleep 2
seq8c=$(mdadm -E $dev8 | sed -n 's/^ *Seq : //p')
seq10c=$(mdadm -E $dev10 | sed -n 's/^ *Seq : //p')
sha_0d=$(sha1_sum $member0)
sha_1d=$(sha1_sum $member1)
mdadm -Ss
- sleep 1
+ sleep 2
seq8d=$(mdadm -E $dev8 | sed -n 's/^ *Seq : //p')
seq10d=$(mdadm -E $dev10 | sed -n 's/^ *Seq : //p')
if [ x$sha_0a != x$sha_0d ]; then
kill -9 $pid
kill -9 $action_pid
- sleep 1
+ sleep 2
if ps $action_pid | tail -1 | awk '{print $3}' | grep D; then
die "thread that is writing sysfs is stuck in D state, deadlock is triggered"
pkill -9 fio
kill -9 $pid
- sleep 1
+ sleep 2
if ps $pid | tail -1 | awk '{print $3}' | grep D; then
die "thread that is writing sysfs is stuck in D state, deadlock is triggered"
# trigger reshape
mdadm --grow -l 6 $md0
-sleep 1
+sleep 2
# set up replacement
echo frozen > /sys/block/md0/md/sync_action
echo want_replacement > /sys/block/md0/md/rd0/state
echo reshape > /sys/block/md0/md/sync_action
-sleep 1
+sleep 2
# reassemeble array
mdadm -S $md0 || die "can't stop array"
# trigger reshape
echo 1000 > /sys/block/md0/md/sync_speed_max
mdadm --grow -l 6 $md0
-sleep 1
+sleep 2
# stop and start reshape
echo frozen > /sys/block/md0/md/sync_action
# trigger reshape
mdadm --grow -l 6 $md0
-sleep 1
+sleep 2
# stop reshape
echo frozen > /sys/block/md0/md/sync_action
# set up replacement
echo want_replacement > /sys/block/md0/md/rd0/state
-sleep 1
+sleep 2
# trigger reshape
echo frozen > /sys/block/md0/md/sync_action
mdadm --grow -l 6 $md0
-sleep 1
+sleep 2
# reassemeble array
mdadm -S $md0 || die "can't stop array"
do
sync_action=$(grep -Ec '(resync|recovery|reshape|check|repair) *=' /proc/mdstat)
if (( "$sync_action" != 0 )); then
- sleep 1
+ sleep 2
continue
elif [[ $(pgrep -f "mdadm --grow --continue" > /dev/null) != "" ]]; then
echo "Grow continue did not finish but reshape is done" >&2
do
sync_action=$(grep -Ec '(resync|recovery|reshape|check|repair) *=' /proc/mdstat)
if (( "$sync_action" == 0 )); then
- sleep 1
+ sleep 2
iterations=$(( $iterations + 1 ))
continue
else