X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Ftests%2Fsanity-flr.sh;h=2298ec10ca0e9426c554f92d5a8670e74f441f25;hp=60a154cdb0e2a0c0f74202d2976015162c967bee;hb=3ed6b8c2ea27b1a3a9fa073e19d77d7c317ae69f;hpb=818340364d51ac9fb97151b0c244c4e2fd477715 diff --git a/lustre/tests/sanity-flr.sh b/lustre/tests/sanity-flr.sh index 60a154c..2298ec1 100644 --- a/lustre/tests/sanity-flr.sh +++ b/lustre/tests/sanity-flr.sh @@ -17,6 +17,7 @@ LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)} . $LUSTRE/tests/test-framework.sh init_test_env $@ . ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} +get_lustre_env init_logging [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.10.56) ]] || @@ -667,13 +668,16 @@ test_0g() { cat $tf &> /dev/null || error "error reading file '$tf'" # verify that the data was provided by OST1 where mirror 1 resides - local nr_read=$($LCTL get_param -n osc.$FSNAME-OST0000-osc-ffff*.stats | + local nr_read=$($LCTL get_param -n osc.$FSNAME-OST0000-osc-[-0-9a-f]*.stats | awk '/ost_read/{print $2}') [ -n "$nr_read" ] || error "read was not provided by OST1" } run_test 0g "lfs mirror create flags support" test_0h() { + [ $MDS1_VERSION -lt $(version_code 2.11.57) ] && + skip "Need MDS version at least 2.11.57" + local td=$DIR/$tdir local tf=$td/$tfile local ids @@ -895,7 +899,7 @@ get_osc_lock_count() { local osc_name local count - osc_name=${FSNAME}-OST$(printf "%04x" $((idx-1)))-osc-'ffff*' + osc_name=${FSNAME}-OST$(printf "%04x" $((idx-1)))-osc-'[-0-9a-f]*' count=$($LCTL get_param -n ldlm.namespaces.$osc_name.lock_count) lock_count=$((lock_count + count)) done @@ -1060,7 +1064,7 @@ test_33() { start_osts 1 # read file again with ost2 failed - $LCTL set_param ldlm.namespaces.lustre-*-osc-ffff*.lru_size=clear + $LCTL set_param ldlm.namespaces.lustre-*-osc-[-0-9a-f]*.lru_size=clear fail ost2 & sleep 1 @@ -1074,7 +1078,7 @@ test_33() { [[ "$rs" == "ost1" ]] || error "file content error: expected: \"ost1\", actual: \"$rs\"" - wait_osc_import_state client ost2 FULL + wait_osc_import_ready client ost2 } run_test 33 "read can choose available mirror to read" @@ -1270,11 +1274,17 @@ create_files_37() { test_37() { + [ $MDS1_VERSION -lt $(version_code 2.11.57) ] && + skip "Need MDS version at least 2.11.57" + local tf=$DIR/$tfile local tf2=$DIR/$tfile-2 local tf3=$DIR/$tfile-3 + local tf4=$DIR/$tfile-4 create_files_37 $((RANDOM + 15 * 1048576)) $tf $tf2 $tf3 + rm -f $tf4 + cp $tf $tf4 # assume the mirror id will be 1, 2, and 3 declare -A checksums @@ -1297,11 +1307,20 @@ test_37() local sum for i in ${mirror_array[@]}; do - sum=$($LFS mirror dump -N $i $tf | md5sum) + $LCTL set_param ldlm.namespaces.*.lru_size=clear > /dev/null + sum=$($LFS mirror read -N $i $tf | md5sum) [ "$sum" = "${checksums[$i]}" ] || error "$i: mismatch: \'${checksums[$i]}\' vs. \'$sum\'" done + # verify mirror write + echo "Verifying mirror write .." + $LFS mirror write -N2 $tf < $tf4 + + sum=$($LFS mirror read -N2 $tf | md5sum) + [[ "$sum" = "${checksums[1]}" ]] || + error "2: mismatch \'${checksums[1]}\' vs. \'$sum\'" + # verify mirror copy, write to this mirrored file will invalidate # the other two mirrors echo "Verifying mirror copy .." @@ -1320,7 +1339,7 @@ test_37() # verify copying is successful by checking checksums remount_client $MOUNT for i in ${mirror_array[@]}; do - sum=$($LFS mirror dump -N $i $tf | md5sum) + sum=$($LFS mirror read -N $i $tf | md5sum) [ "$sum" = "${checksums[1]}" ] || error "$i: mismatch checksum after copy" done @@ -1379,7 +1398,7 @@ test_38() { local valid_mirror stale_mirror id mirror_cksum for id in "${mirror_array[@]}"; do - mirror_cksum=$($LFS mirror dump -N $id $tf | md5sum) + mirror_cksum=$($LFS mirror read -N $id $tf | md5sum) [ "$ref_cksum" == "$mirror_cksum" ] && { valid_mirror=$id; continue; } @@ -1392,7 +1411,7 @@ test_38() { mirror_io resync $tf || error "resync failed" verify_flr_state $tf "ro" - mirror_cksum=$($LFS mirror dump -N $stale_mirror $tf | md5sum) + mirror_cksum=$($LFS mirror read -N $stale_mirror $tf | md5sum) [ "$file_cksum" = "$ref_cksum" ] || error "resync failed" # case 2: inject an error to make mirror_io exit after changing @@ -1518,7 +1537,7 @@ test_41() { echo " **verify $tf-1 data consistency in all mirrors" for i in 1 2 3; do - local sum=$($LFS mirror dump -N$i $tf-1 | md5sum) + local sum=$($LFS mirror read -N$i $tf-1 | md5sum) [[ "$sum" = "$sum0" ]] || error "$tf-1.$i: checksum mismatch: $sum != $sum0" done @@ -1801,7 +1820,7 @@ test_44() { run_test 44 "lfs mirror split check" test_45() { - [ $OSTCOUNT -lt 2 ] && skip "needs >= 2 OSTs" && return + [ $OSTCOUNT -lt 2 ] && skip "needs >= 2 OSTs" local file=$DIR/$tdir/$tfile local dir=$DIR/$tdir/$dir @@ -1813,16 +1832,14 @@ test_45() { -N -E3m -S1m -Eeof -N -E8m -Eeof $file || error "Create $file failed" - echo "getstripe --yaml $file" - $LFS getstripe --yaml $file > $temp || error "getstripe $file failed" - echo "setstripe --yaml=$temp $file.2" - $LFS setstripe --yaml=$temp $file.2 || error "setstripe $file.2 failed" + verify_yaml_layout $file $file.copy $temp "1. FLR file" + rm -f $file $file.copy - echo "compare layout" - local layout1=$(get_layout_param $file) - local layout2=$(get_layout_param $file.2) - [ "$layout1" == "$layout2" ] || - error "FLR file $file/$file.2 layouts are not equal" + $LFS setstripe -N -E1m -S1m -c2 -o0,1 -E2m -Eeof -N -E4m -Eeof \ + -N -E3m -S1m -Eeof -N -E8m --flags=prefer -Eeof $file || + error "Create $file failed" + + verify_yaml_layout $file $file.copy $temp "2. FLR file with flags" } run_test 45 "Verify setstripe/getstripe with YAML with FLR file" @@ -1969,6 +1986,9 @@ test_47() { run_test 47 "Verify mirror obj alloc" test_48() { + [ $MDS1_VERSION -lt $(version_code 2.11.55) ] && + skip "Need MDS version at least 2.11.55" + local tf=$DIR/$tfile rm -f $tf @@ -1997,8 +2017,8 @@ test_48() { verify_flr_state $tf "wp" verify_comp_attr lcme_flags $tf 0x20003 nosync,stale - local sum1=$($LFS mirror dump -N1 $tf | md5sum) - local sum2=$($LFS mirror dump -N2 $tf | md5sum) + local sum1=$($LFS mirror read -N1 $tf | md5sum) + local sum2=$($LFS mirror read -N2 $tf | md5sum) echo " ** verify mirror 2 doesn't change" echo "original checksum: $sum0" @@ -2015,8 +2035,8 @@ test_48() { verify_flr_state $tf "ro" verify_comp_attr lcme_flags $tf 0x20003 nosync,^stale - sum1=$($LFS mirror dump -N1 $tf | md5sum) - sum2=$($LFS mirror dump -N2 $tf | md5sum) + sum1=$($LFS mirror read -N1 $tf | md5sum) + sum2=$($LFS mirror read -N2 $tf | md5sum) echo " ** verify mirror 2 resync-ed" echo "original checksum: $sum0" @@ -2161,9 +2181,9 @@ test_200() { mirror_io resync $tf get_mirror_ids $tf - local csum=$($LFS mirror dump -N ${mirror_array[0]} $tf | md5sum) + local csum=$($LFS mirror read -N ${mirror_array[0]} $tf | md5sum) for id in ${mirror_array[@]:1}; do - [ "$($LFS mirror dump -N $id $tf | md5sum)" = "$csum" ] || + [ "$($LFS mirror read -N $id $tf | md5sum)" = "$csum" ] || error "checksum error for mirror $id" done @@ -2242,7 +2262,9 @@ test_202() { run_test 202 "lfs setstripe --add-component wide striping" test_203() { - [[ $OSTCOUNT -lt 2 ]] && skip "need >= 2 OSTs" && return + [ $MDS1_VERSION -lt $(version_code 2.11.55) ] && + skip "Need MDS version at least 2.11.55" + [[ $OSTCOUNT -lt 2 ]] && skip "need >= 2 OSTs" local tf=$DIR/$tfile