X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;ds=inline;f=lustre%2Ftests%2Fconf-sanity.sh;h=546780d939e3d4a7bfa30193a68d3988896f03ba;hb=11317196203c26f8c9e4d2a8261859b1c7a76c9d;hp=cc0f3dc1e57186d70e27d6e7ec8d772b533a2d96;hpb=98ac0fe3a45dde62759ecaa4c84e6250ac2067f8;p=fs%2Flustre-release.git diff --git a/lustre/tests/conf-sanity.sh b/lustre/tests/conf-sanity.sh index cc0f3dc..546780d 100644 --- a/lustre/tests/conf-sanity.sh +++ b/lustre/tests/conf-sanity.sh @@ -75,8 +75,8 @@ if [[ "$LDISKFS_MKFS_OPTS" != *lazy_itable_init* ]]; then fi [ $(facet_fstype $SINGLEMDS) = "zfs" ] && -# bug number for skipped test: LU-2778 LU-2059 - ALWAYS_EXCEPT="$ALWAYS_EXCEPT 57b 50h" +# bug number for skipped test: LU-2778 LU-2059 LU-4444 + ALWAYS_EXCEPT="$ALWAYS_EXCEPT 57b 50h 69" init_logging @@ -1062,6 +1062,78 @@ test_28() { } run_test 28 "permanent parameter setting" +test_28a() { # LU-4221 + [[ $(lustre_version_code ost1) -ge $(version_code 2.5.52) ]] || + { skip "Need OST version at least 2.5.52" && return 0; } + [ "$(facet_fstype ost1)" = "zfs" ] && + skip "LU-4221: no such proc params for ZFS OSTs" && return + + local name + local param + local cmd + local old + local new + local device="$FSNAME-OST0000" + + setup + + # In this test we will set three kinds of proc parameters with + # lctl conf_param: + # 1. the ones moved from the OFD to the OSD, and only their + # symlinks kept in obdfilter + # 2. non-symlink ones in the OFD + # 3. non-symlink ones in the OSD + + # Check 1. + # prepare a symlink parameter in the OFD + name="writethrough_cache_enable" + param="$device.ost.$name" + cmd="$LCTL get_param -n obdfilter.$device.$name" + + # conf_param the symlink parameter in the OFD + old=$(do_facet ost1 $cmd) + new=$(((old + 1) % 2)) + set_conf_param_and_check ost1 "$cmd" "$param" $new || + error "lctl conf_param $device.ost.$param=$new failed" + + # conf_param the target parameter in the OSD + param="$device.osd.$name" + cmd="$LCTL get_param -n osd-*.$device.$name" + set_conf_param_and_check ost1 "$cmd" "$param" $old || + error "lctl conf_param $device.osd.$param=$old failed" + + # Check 2. + # prepare a non-symlink parameter in the OFD + name="client_cache_seconds" + param="$device.ost.$name" + cmd="$LCTL get_param -n obdfilter.$device.$name" + + # conf_param the parameter in the OFD + old=$(do_facet ost1 $cmd) + new=$((old * 2)) + set_conf_param_and_check ost1 "$cmd" "$param" $new || + error "lctl conf_param $device.ost.$param=$new failed" + set_conf_param_and_check ost1 "$cmd" "$param" $old || + error "lctl conf_param $device.ost.$param=$old failed" + + # Check 3. + # prepare a non-symlink parameter in the OSD + name="lma_self_repair" + param="$device.osd.$name" + cmd="$LCTL get_param -n osd-*.$device.$name" + + # conf_param the parameter in the OSD + old=$(do_facet ost1 $cmd) + new=$(((old + 1) % 2)) + set_conf_param_and_check ost1 "$cmd" "$param" $new || + error "lctl conf_param $device.osd.$param=$new failed" + set_conf_param_and_check ost1 "$cmd" "$param" $old || + error "lctl conf_param $device.osd.$param=$old failed" + + cleanup +} +run_test 28a "set symlink parameters permanently with conf_param" + test_29() { [ "$OSTCOUNT" -lt "2" ] && skip_env "$OSTCOUNT < 2, skipping" && return setup > /dev/null 2>&1 @@ -1243,7 +1315,9 @@ test_32newtarball() { count=$(($T32_BLIMIT / 1024 / 2)) chown $T32_QID.$T32_QID $tmp/src/t32_qf_old - formatall + # format ost with comma-separated NIDs to verify LU-4460 + local failnid="$(h2$NETTYPE 1.2.3.4),$(h2$NETTYPE 4.3.2.1)" + MGSNID="$MGSNID,$MGSNID" OSTOPT="--failnode=$failnid" formatall setupall @@ -1335,6 +1409,7 @@ t32_check() { t32_test_cleanup() { local tmp=$TMP/t32 + local fstype=$(facet_fstype $SINGLEMDS) local rc=$? if $shall_cleanup_lustre; then @@ -1352,6 +1427,10 @@ t32_test_cleanup() { $r rm -rf $tmp rm -rf $tmp + if [ $fstype == "zfs" ]; then + $r $ZPOOL destroy t32fs-mdt1 || rc=$? + $r $ZPOOL destroy t32fs-ost1 || rc=$? + fi return $rc } @@ -1514,6 +1593,8 @@ t32_test() { local nrpcs local list local fstype=$(facet_fstype $SINGLEMDS) + local mdt_dev=$tmp/mdt + local ost_dev=$tmp/ost trap 'trap - RETURN; t32_test_cleanup' RETURN @@ -1536,17 +1617,31 @@ t32_test() { local version=$(version_code $img_commit) [[ $version -gt $(version_code 2.4.0) ]] && ff_convert="no" + if [ $fstype == "zfs" ]; then + # import pool first + $r $ZPOOL import -f -d $tmp t32fs-mdt1 + $r $ZPOOL import -f -d $tmp t32fs-ost1 + mdt_dev=t32fs-mdt1/mdt1 + ost_dev=t32fs-ost1/ost1 + wait_update_facet $SINGLEMDS "$ZPOOL list | + awk '/^t32fs-mdt1/ { print \\\$1 }'" "t32fs-mdt1" || { + error_noexit "import zfs pool failed" + return 1 + } + fi + $r $LCTL set_param debug="$PTLDEBUG" - $r $TUNEFS --dryrun $tmp/mdt || { + $r $TUNEFS --dryrun $mdt_dev || { $r losetup -a error_noexit "tunefs.lustre before mounting the MDT" return 1 } if [ "$writeconf" ]; then - mopts=loop,writeconf + mopts=writeconf if [ $fstype == "ldiskfs" ]; then - $r $TUNEFS --quota $tmp/mdt || { + mopts="loop,$mopts" + $r $TUNEFS --quota $mdt_dev || { $r losetup -a error_noexit "Enable mdt quota feature" return 1 @@ -1561,18 +1656,25 @@ t32_test() { local osthost=$(facet_active_host ost1) local ostnid=$(do_node $osthost $LCTL list_nids | head -1) - $r mount -t lustre -o loop,nosvc $tmp/mdt $tmp/mnt/mdt + mopts=nosvc + if [ $fstype == "ldiskfs" ]; then + mopts="loop,$mopts" + fi + $r mount -t lustre -o $mopts $mdt_dev $tmp/mnt/mdt $r lctl replace_nids $fsname-OST0000 $ostnid $r lctl replace_nids $fsname-MDT0000 $nid $r umount -d $tmp/mnt/mdt fi - mopts=loop,exclude=$fsname-OST0000 + mopts=exclude=$fsname-OST0000 + if [ $fstype == "ldiskfs" ]; then + mopts="loop,$mopts" + fi fi t32_wait_til_devices_gone $node - $r mount -t lustre -o $mopts $tmp/mdt $tmp/mnt/mdt || { + $r mount -t lustre -o $mopts $mdt_dev $tmp/mnt/mdt || { $r losetup -a error_noexit "Mounting the MDT" return 1 @@ -1617,23 +1719,27 @@ t32_test() { return 1 fi - $r $TUNEFS --dryrun $tmp/ost || { + $r $TUNEFS --dryrun $ost_dev || { error_noexit "tunefs.lustre before mounting the OST" return 1 } if [ "$writeconf" ]; then - mopts=loop,mgsnode=$nid,$writeconf + mopts=mgsnode=$nid,$writeconf if [ $fstype == "ldiskfs" ]; then - $r $TUNEFS --quota $tmp/ost || { + mopts="loop,$mopts" + $r $TUNEFS --quota $ost_dev || { $r losetup -a error_noexit "Enable ost quota feature" return 1 } fi else - mopts=loop,mgsnode=$nid + mopts=mgsnode=$nid + if [ $fstype == "ldiskfs" ]; then + mopts="loop,$mopts" + fi fi - $r mount -t lustre -o $mopts $tmp/ost $tmp/mnt/ost || { + $r mount -t lustre -o $mopts $ost_dev $tmp/mnt/ost || { error_noexit "Mounting the OST" return 1 } @@ -1873,13 +1979,17 @@ t32_test() { } # mount a second time to make sure we didnt leave upgrade flag on - $r $TUNEFS --dryrun $tmp/mdt || { + $r $TUNEFS --dryrun $mdt_dev || { $r losetup -a error_noexit "tunefs.lustre before remounting the MDT" return 1 } - $r mount -t lustre -o loop,exclude=$fsname-OST0000 $tmp/mdt \ - $tmp/mnt/mdt || { + + mopts=exclude=$fsname-OST0000 + if [ $fstype == "ldiskfs" ]; then + mopts="loop,$mopts" + fi + $r mount -t lustre -o $mopts $mdt_dev $tmp/mnt/mdt || { error_noexit "Remounting the MDT" return 1 } @@ -3183,7 +3293,13 @@ test_52() { do_node $ost1node 'mv '$objects' '${ost1mnt}'/lost+found' [ $? -eq 0 ] || { error "Unable to move objects"; return 14; } + # recover objects dry-run + echo "ll_recover_lost_found_objs dry_run" + do_node $ost1node "ll_recover_lost_found_objs -n -d $ost1mnt/O" + [ $? -eq 0 ] || { error "ll_recover_lost_found_objs failed"; return 15; } + # recover objects + echo "ll_recover_lost_found_objs fix run" do_node $ost1node "ll_recover_lost_found_objs -d $ost1mnt/lost+found" [ $? -eq 0 ] || { error "ll_recover_lost_found_objs failed"; return 15; } @@ -3907,7 +4023,8 @@ test_69() { mkdir -p $DIR/$tdir $LFS setstripe -i 0 $DIR/$tdir - createmany -o $DIR/$tdir/$tfile- $num_create + createmany -o $DIR/$tdir/$tfile- $num_create || + error "createmany: failed to create $num_create files: $?" # delete all of the files with objects on OST0 so the # filesystem is not inconsistent later on $LFS find $MOUNT --ost 0 | xargs rm