[ "$ALWAYS_EXCEPT$EXCEPT" ] && \
echo "Skipping tests: `echo $ALWAYS_EXCEPT $EXCEPT`"
-# disable till changelogs from orion landed (LU-2034)
-ALWAYS_EXCEPT="1 2 3 4 5 6 7 8 9"
-
KILL=/bin/kill
TMP=${TMP:-/tmp}
export LRSYNC=${LRSYNC:-"$LUSTRE/utils/lustre_rsync"}
[ ! -f "$LRSYNC" ] && export LRSYNC=$(which lustre_rsync)
-export LRSYNC="$LRSYNC -v -c no" # -a
+export LRSYNC="$LRSYNC -v -c no -d 2"
# control the time of tests
DBENCH_TIME=${DBENCH_TIME:-60} # No of seconds to run dbench
}
check_diff() {
- local changelog_file=$LOGDIR/${TESTSUITE}.test_${3}.changelog
+ local changelog_file=$(generate_logname "changelog")
if [ -e $1 -o -e $2 ]; then
diff -rq -x "dev1" $1 $2
# Device files
#mknod $DIR/$tdir/dev1 b 8 1
- # Replicate
- echo "Replication #1"
- $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG
+ # Replicate
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ echo "Replication #1"
+ $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG
# Set attributes
chmod 000 $DIR/$tdir/d2/file3
setfattr -n user.foo -v $value $DIR/$tdir/file5
fi
- echo "Replication #2"
- $LRSYNC -l $LREPL_LOG
+ echo "Replication #2"
+ $LRSYNC -l $LREPL_LOG -D $LRSYNC_LOG
if [[ "$xattr" != "no" ]]; then
local xval1=$(get_xattr_value user.foo $TGT/$tdir/file5)
RC=1
fi
- # Use diff to compare the source and the destination
- check_diff $DIR/$tdir $TGT/$tdir 1
- check_diff $DIR/$tdir $TGT2/$tdir 1
+ # Use diff to compare the source and the destination
+ check_diff $DIR/$tdir $TGT/$tdir
+ check_diff $DIR/$tdir $TGT2/$tdir
fini_changelog
cleanup_src_tgt
}
run_test 1 "Simple Replication"
-# Test 2a - Replicate files created by dbench
+# Test 2a - Replicate files created by dbench
test_2a() {
[ "$SLOW" = "no" ] && skip "Skipping slow test" && return
init_src
# Run dbench
sh rundbench -C -D $DIR/$tdir 2 -t $DBENCH_TIME || error "dbench failed!"
- # Replicate the changes to $TGT
- $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ # Replicate the changes to $TGT
+ $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG
- # Use diff to compare the source and the destination
- check_diff $DIR/$tdir $TGT/$tdir 2a
- check_diff $DIR/$tdir $TGT2/$tdir 2a
+ # Use diff to compare the source and the destination
+ check_diff $DIR/$tdir $TGT/$tdir
+ check_diff $DIR/$tdir $TGT2/$tdir
fini_changelog
cleanup_src_tgt
echo Stopping dbench
$KILL -SIGSTOP $child_pid
- echo Starting replication
- $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG
- check_diff $DIR/$tdir $TGT/$tdir 2b
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ echo Starting replication
+ $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG
+ check_diff $DIR/$tdir $TGT/$tdir
echo Resuming dbench
$KILL -SIGCONT $child_pid
echo Stopping dbench
$KILL -SIGSTOP $child_pid
- echo Starting replication
- $LRSYNC -l $LREPL_LOG
- check_diff $DIR/$tdir $TGT/$tdir 2b
+ echo Starting replication
+ $LRSYNC -l $LREPL_LOG -D $LRSYNC_LOG
+ check_diff $DIR/$tdir $TGT/$tdir
echo "Wait for dbench to finish"
$KILL -SIGCONT $child_pid
wait
- # Replicate the changes to $TGT
- echo Starting replication
- $LRSYNC -l $LREPL_LOG
+ # Replicate the changes to $TGT
+ echo Starting replication
+ $LRSYNC -l $LREPL_LOG -D $LRSYNC_LOG
- check_diff $DIR/$tdir $TGT/$tdir 2b
- check_diff $DIR/$tdir $TGT2/$tdir 2b
+ check_diff $DIR/$tdir $TGT/$tdir
+ check_diff $DIR/$tdir $TGT2/$tdir
fini_changelog
cleanup_src_tgt
}
run_test 2b "Replicate files changed by dbench."
-# Test 2c - Replicate files while dbench is running
+# Test 2c - Replicate files while dbench is running
test_2c() {
[ "$SLOW" = "no" ] && skip "Skipping slow test" && return
init_src
# Run dbench
sh rundbench -C -D $DIR/$tdir 2 -t $DBENCH_TIME &
- # Replicate the changes to $TGT
- sleep 10 # give dbench a headstart
- local quit=0
- while [ $quit -le 1 ];
- do
- echo "Running lustre_rsync"
- $LRSYNC -s $DIR -t $TGT -t $TGT2 -m ${mds1_svc} -u $CL_USER -l $LREPL_LOG
- sleep 5
- pgrep dbench
- if [ $? -ne 0 ]; then
- quit=$(expr $quit + 1)
- fi
- done
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ # Replicate the changes to $TGT
+ sleep 10 # give dbench a headstart
+ local quit=0
+ while [ $quit -le 1 ];
+ do
+ echo "Running lustre_rsync"
+ $LRSYNC -s $DIR -t $TGT -t $TGT2 -m ${mds1_svc} -u $CL_USER \
+ -l $LREPL_LOG -D $LRSYNC_LOG
+ sleep 5
+ pgrep dbench
+ if [ $? -ne 0 ]; then
+ quit=$(expr $quit + 1)
+ fi
+ done
- # Use diff to compare the source and the destination
- check_diff $DIR/$tdir $TGT/$tdir 2c
- check_diff $DIR/$tdir $TGT2/$tdir 2c
+ # Use diff to compare the source and the destination
+ check_diff $DIR/$tdir $TGT/$tdir
+ check_diff $DIR/$tdir $TGT2/$tdir
fini_changelog
cleanup_src_tgt
local numfiles=1000
createmany -o $DIR/$tdir/$tfile $numfiles || error "createmany failed!"
- # Replicate the changes to $TGT
- $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG
- check_diff $DIR/$tdir $TGT/$tdir 3a
- check_diff $DIR/$tdir $TGT2/$tdir 3a
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ # Replicate the changes to $TGT
+ $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG
+ check_diff $DIR/$tdir $TGT/$tdir
+ check_diff $DIR/$tdir $TGT2/$tdir
fini_changelog
cleanup_src_tgt
local threads=5
writemany -q -a $DIR/$tdir/$tfile $time $threads || error "writemany failed!"
- # Replicate the changes to $TGT
- $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ # Replicate the changes to $TGT
+ $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG
- check_diff $DIR/$tdir $TGT/$tdir 3b
- check_diff $DIR/$tdir $TGT2/$tdir 3b
+ check_diff $DIR/$tdir $TGT/$tdir
+ check_diff $DIR/$tdir $TGT2/$tdir
fini_changelog
cleanup_src_tgt
createmany -o $DIR/$tdir/$tfile $numfiles || error "createmany failed!"
unlinkmany $DIR/$tdir/$tfile $numfiles || error "unlinkmany failed!"
- # Replicate the changes to $TGT
- $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG
- check_diff $DIR/$tdir $TGT/$tdir 3c
- check_diff $DIR/$tdir $TGT2/$tdir 3c
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ # Replicate the changes to $TGT
+ $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG
+ check_diff $DIR/$tdir $TGT/$tdir
+ check_diff $DIR/$tdir $TGT2/$tdir
fini_changelog
cleanup_src_tgt
child_pid=$(pgrep iozone)
$KILL -SIGSTOP $child_pid
- # Replicate the changes to $TGT
- $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG
- check_diff $DIR/$tdir $TGT/$tdir 4
- check_diff $DIR/$tdir $TGT2/$tdir 4
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ # Replicate the changes to $TGT
+ $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG
+ check_diff $DIR/$tdir $TGT/$tdir
+ check_diff $DIR/$tdir $TGT2/$tdir
$KILL -SIGCONT $child_pid
sleep 60
sleep 1;
done
- $LRSYNC -l $LREPL_LOG
- check_diff $DIR/$tdir $TGT/$tdir 4
- check_diff $DIR/$tdir $TGT2/$tdir 4
+ $LRSYNC -l $LREPL_LOG -D $LRSYNC_LOG
+ check_diff $DIR/$tdir $TGT/$tdir
+ check_diff $DIR/$tdir $TGT2/$tdir
fini_changelog
cleanup_src_tgt
NUMTEST=2000
createmany -o $DIR/$tdir/$tfile $NUMTEST
- # Replicate the changes to $TGT
-
- $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG &
- local child_pid=$!
- sleep 30
- $KILL -SIGHUP $child_pid
- wait
- $LRSYNC -l $LREPL_LOG
+ # Replicate the changes to $TGT
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG &
+ local child_pid=$!
+ sleep 30
+ $KILL -SIGHUP $child_pid
+ wait
+ $LRSYNC -l $LREPL_LOG -D $LRSYNC_LOG
- check_diff $DIR/$tdir $TGT/$tdir 5a
- check_diff $DIR/$tdir $TGT2/$tdir 5a
+ check_diff $DIR/$tdir $TGT/$tdir
+ check_diff $DIR/$tdir $TGT2/$tdir
fini_changelog
cleanup_src_tgt
NUMTEST=2000
createmany -o $DIR/$tdir/$tfile $NUMTEST
- # Replicate the changes to $TGT
-
- $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG &
- local child_pid=$!
- sleep 30
- $KILL -SIGKILL $child_pid
- wait
- $LRSYNC -l $LREPL_LOG
+ # Replicate the changes to $TGT
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG &
+ local child_pid=$!
+ sleep 30
+ $KILL -SIGKILL $child_pid
+ wait
+ $LRSYNC -l $LREPL_LOG -D $LRSYNC_LOG
- check_diff $DIR/$tdir $TGT/$tdir 5b
- check_diff $DIR/$tdir $TGT2/$tdir 5b
+ check_diff $DIR/$tdir $TGT/$tdir
+ check_diff $DIR/$tdir $TGT2/$tdir
fini_changelog
cleanup_src_tgt
i=$(expr $i + 1)
done
- # Replicate the changes to $TGT
- $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG
- check_diff $DIR/$tdir $TGT/$tdir 6
- check_diff $DIR/$tdir $TGT2/$tdir 6
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ # Replicate the changes to $TGT
+ $LRSYNC -s $DIR -t $TGT -t $TGT2 -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG
+ check_diff $DIR/$tdir $TGT/$tdir
+ check_diff $DIR/$tdir $TGT2/$tdir
local count1=$(ls -l $TGT/$tdir/link0 | sed -r 's/ +/ /g' | cut -f 2 -d ' ')
local count2=$(ls -l $TGT/$tdir/link0 | sed -r 's/ +/ /g' | cut -f 2 -d ' ')
lfs setstripe -c $OSTCOUNT $DIR/$tdir
createmany -o $DIR/$tdir/$tfile $NUMFILES
- # To simulate replication to another lustre filesystem, replicate
- # the changes to $DIR/tgt. We can't turn off the changelogs
- # while we are registered, so lustre_rsync better not try to
- # replicate the replication steps. It seems ok :)
-
- $LRSYNC -s $DIR -t $DIR/tgt -m $MDT0 -u $CL_USER -l $LREPL_LOG
- check_diff ${DIR}/$tdir $DIR/tgt/$tdir 7
-
- local i=0
- while [ $i -lt $NUMFILES ];
- do
- local count=$(lfs getstripe $DIR/tgt/$tdir/${tfile}$i | awk '/stripe_count/ {print $2}')
- if [ $count -ne $OSTCOUNT ]; then
- error "Stripe size not replicated"
- fi
- i=$(expr $i + 1)
- done
- fini_changelog
- cleanup_src_tgt
- return 0
+ # To simulate replication to another lustre filesystem, replicate
+ # the changes to $DIR/tgt. We can't turn off the changelogs
+ # while we are registered, so lustre_rsync better not try to
+ # replicate the replication steps. It seems ok :)
+
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ $LRSYNC -s $DIR -t $DIR/tgt -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG
+ check_diff ${DIR}/$tdir $DIR/tgt/$tdir
+
+ local i=0
+ while [ $i -lt $NUMFILES ];
+ do
+ local count=$(lfs getstripe $DIR/tgt/$tdir/${tfile}$i | \
+ awk '/stripe_count/ {print $2}')
+ if [ $count -ne $OSTCOUNT ]; then
+ error "Stripe size not replicated"
+ fi
+ i=$(expr $i + 1)
+ done
+ fini_changelog
+ cleanup_src_tgt
+ return 0
}
run_test 7 "lustre_rsync stripesize"
mv $DIR/$tdir/d$i $DIR/$tdir/d0$i
done
- $LRSYNC -s $DIR -t $TGT -m $MDT0 -u $CL_USER -l $LREPL_LOG
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ $LRSYNC -s $DIR -t $TGT -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG
- check_diff ${DIR}/$tdir $TGT/$tdir 8
+ check_diff ${DIR}/$tdir $TGT/$tdir
fini_changelog
cleanup_src_tgt
mkdir $DIR/$tdir/foo
touch $DIR/$tdir/foo/a1
- $LRSYNC -s $DIR -t $TGT -m $MDT0 -u $CL_USER -l $LREPL_LOG
+ local LRSYNC_LOG=$(generate_logname "lrsync_log")
+ $LRSYNC -s $DIR -t $TGT -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG
- check_diff ${DIR}/$tdir $TGT/$tdir 9
+ check_diff ${DIR}/$tdir $TGT/$tdir
- rm -rf $DIR/$tdir/foo
+ rm -rf $DIR/$tdir/foo
- $LRSYNC -s $DIR -t $TGT -m $MDT0 -u $CL_USER -l $LREPL_LOG
+ $LRSYNC -s $DIR -t $TGT -m $MDT0 -u $CL_USER -l $LREPL_LOG \
+ -D $LRSYNC_LOG
- check_diff ${DIR}/$tdir $TGT/$tdir 9
+ check_diff ${DIR}/$tdir $TGT/$tdir
fini_changelog
cleanup_src_tgt