From: Sergey Cheremencev Date: Fri, 31 Jan 2014 10:33:47 +0000 (+0400) Subject: LU-3266 test: regression tests for nrs policies X-Git-Tag: 2.7.53~14 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=38b68e47e5e240fd8d394a944737ecdbcf2fb70f LU-3266 test: regression tests for nrs policies Tests make IO for each policy with different parametrs. Change-Id: Iacf4721015be4cf9abdd2f41f5dd0614a8553756 Signed-off-by: Sergey Cheremencev Signed-off-by: Wu Libin Reviewed-on: http://review.whamcloud.com/9286 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: James Simmons --- diff --git a/lustre/tests/sanityn.sh b/lustre/tests/sanityn.sh index d086e6d..6c0cd31 100644 --- a/lustre/tests/sanityn.sh +++ b/lustre/tests/sanityn.sh @@ -2803,6 +2803,119 @@ test_76() { #LU-946 } run_test 76 "Verify open file for 2048 files" +nrs_write_read() { + local n=16 + local dir=$DIR/$tdir + + mkdir $dir || error "mkdir $dir failed" + $LFS setstripe -c $OSTCOUNT $dir || error "setstripe to $dir failed" + + do_nodes $CLIENTS dd if=/dev/zero of="$dir/nrs_r_$HOSTNAME"\ + bs=1M count=$n > /dev/null 2>&1 + + for ((i = 0; i < $n; i++)); do + do_nodes $CLIENTS dd if=/dev/zero of="$dir/nrs_w_$HOSTNAME"\ + bs=1M seek=$i count=1 > /dev/null 2>&1 & + local pids_w[$i]=$! + done + do_nodes $CLIENTS sync; + cancel_lru_locks osc + + for ((i = 0; i < $n; i++)); do + do_nodes $CLIENTS dd if="$dir/nrs_w_$HOSTNAME" of=/dev/zero\ + bs=1M seek=$i count=1 > /dev/null 2>&1 & + local pids_r[$i]=$! + done + cancel_lru_locks osc + + for ((i = 0; i < $n; i++)); do + wait ${pids_w[$i]} + wait ${pids_r[$i]} + done + rm -rf $dir || error "rm -rf $dir failed" +} + +test_77a() { #LU-3266 + do_facet $SINGLEMDS lctl set_param ost.OSS.*.nrs_policies="fifo" + nrs_write_read + + return 0 +} +run_test 77a "check FIFO NRS policy" + + +test_77b() { #LU-3266 + do_facet $SINGLEMDS lctl set_param ost.OSS.*.nrs_policies="crrn" + do_facet $SINGLEMDS lctl set_param ost.OSS.*.nrs_crrn_quantum=1 + + echo "policy: crr-n, crrn_quantum 1" + nrs_write_read + + do_facet $SINGLEMDS lctl set_param ost.OSS.*.nrs_crrn_quantum=64 + + echo "policy: crr-n, crrn_quantum 64" + nrs_write_read + + return 0 +} +run_test 77b "check CRR-N NRS policy" + +orr_trr() { + local policy=$1 + + for i in $(seq 1 $OSTCOUNT) + do + do_facet ost"$i" lctl set_param \ + ost.OSS.ost_io.nrs_policies=$policy + do_facet ost"$i" lctl set_param \ + ost.OSS.*.nrs_"$policy"_quantum=1 + do_facet ost"$i" lctl set_param \ + ost.OSS.*.nrs_"$policy"_offset_type="physical" + do_facet ost"$i" lctl set_param \ + ost.OSS.*.nrs_"$policy"_supported="reads" + done + + echo "policy: $policy, ${policy}_quantum 1, ${policy}_offset_type \ + physical, ${policy}_supported reads" + nrs_write_read + + for i in $(seq 1 $OSTCOUNT) + do + do_facet ost"$i" lctl set_param \ + ost.OSS.*.nrs_${policy}_supported="writes" + do_facet ost"$i" lctl set_param \ + ost.OSS.*.nrs_${policy}_quantum=64 + done + echo "policy: $policy, ${policy}_quantum 64, \ + ${policy}_offset_type physical, ${policy}_supported writes" + nrs_write_read + + for i in $(seq 1 $OSTCOUNT) + do + do_facet ost"$i" lctl set_param \ + ost.OSS.*.nrs_${policy}_supported="reads_and_writes" + do_facet ost"$i" lctl set_param \ + ost.OSS.*.nrs_${policy}_offset_type="logical" + done + echo "policy: $policy, ${policy}_quantum 64, \ + ${policy}_offset_type logical, ${policy}_supported reads_and_writes" + nrs_write_read + + return 0 +} + +test_77c() { #LU-3266 + orr_trr "orr" + return 0 +} +run_test 77c "check ORR NRS policy" + +test_77d() { #LU-3266 + orr_trr "trr" + return 0 +} +run_test 77d "check TRR nrs policy" + test_80() { [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return local MDTIDX=1