+test_75() { # LU-2374
+ [[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.4.1) ]] &&
+ skip "Need MDS version at least 2.4.1" && return
+
+ local index=0
+ local opts_mds="$(mkfs_opts mds1 $(mdsdevname 1)) \
+ --reformat $(mdsdevname 1) $(mdsvdevname 1)"
+ local opts_ost="$(mkfs_opts ost1 $(ostdevname 1)) \
+ --reformat $(ostdevname 1) $(ostvdevname 1)"
+
+ #check with default parameters
+ add mds1 $opts_mds || error "add mds1 failed for default params"
+ add ost1 $opts_ost || error "add ost1 failed for default params"
+
+ opts_mds=$(echo $opts_mds | sed -e "s/--mdt//")
+ opts_mds=$(echo $opts_mds |
+ sed -e "s/--index=$index/--index=$index --mdt/")
+ opts_ost=$(echo $opts_ost | sed -e "s/--ost//")
+ opts_ost=$(echo $opts_ost |
+ sed -e "s/--index=$index/--index=$index --ost/")
+
+ add mds1 $opts_mds || error "add mds1 failed for new params"
+ add ost1 $opts_ost || error "add ost1 failed for new params"
+ return 0
+}
+run_test 75 "The order of --index should be irrelevant"
+
+test_76() {
+ [[ $(lustre_version_code mgs) -ge $(version_code 2.4.52) ]] ||
+ { skip "Need MDS version at least 2.4.52" && return 0; }
+ setup
+ local MDMB_PARAM="osc.*.max_dirty_mb"
+ echo "Change MGS params"
+ local MAX_DIRTY_MB=$($LCTL get_param -n $MDMB_PARAM |
+ head -1)
+ echo "max_dirty_mb: $MAX_DIRTY_MB"
+ local NEW_MAX_DIRTY_MB=$((MAX_DIRTY_MB + MAX_DIRTY_MB))
+ echo "new_max_dirty_mb: $NEW_MAX_DIRTY_MB"
+ do_facet mgs $LCTL set_param -P $MDMB_PARAM=$NEW_MAX_DIRTY_MB
+ wait_update $HOSTNAME "lctl get_param -n $MDMB_PARAM |
+ head -1" $NEW_MAX_DIRTY_MB
+ MAX_DIRTY_MB=$($LCTL get_param -n $MDMB_PARAM | head -1)
+ echo "$MAX_DIRTY_MB"
+ [ $MAX_DIRTY_MB = $NEW_MAX_DIRTY_MB ] ||
+ error "error while apply max_dirty_mb"
+
+ echo "Check the value is stored after remount"
+ stopall
+ setupall
+ wait_update $HOSTNAME "lctl get_param -n $MDMB_PARAM |
+ head -1" $NEW_MAX_DIRTY_MB
+ MAX_DIRTY_MB=$($LCTL get_param -n $MDMB_PARAM | head -1)
+ [ $MAX_DIRTY_MB = $NEW_MAX_DIRTY_MB ] ||
+ error "max_dirty_mb is not saved after remount"
+
+ echo "Change OST params"
+ CLIENT_PARAM="obdfilter.*.client_cache_count"
+ local CLIENT_CACHE_COUNT
+ CLIENT_CACHE_COUNT=$(do_facet ost1 $LCTL get_param -n $CLIENT_PARAM |
+ head -1)
+ echo "client_cache_count: $CLIENT_CACHE_COUNT"
+ NEW_CLIENT_CACHE_COUNT=$((CLIENT_CACHE_COUNT+CLIENT_CACHE_COUNT))
+ echo "new_client_cache_count: $NEW_CLIENT_CACHE_COUNT"
+ do_facet mgs $LCTL set_param -P $CLIENT_PARAM=$NEW_CLIENT_CACHE_COUNT
+ wait_update $(facet_host ost1) "lctl get_param -n $CLIENT_PARAM |
+ head -1" $NEW_CLIENT_CACHE_COUNT
+ CLIENT_CACHE_COUNT=$(do_facet ost1 $LCTL get_param -n $CLIENT_PARAM |
+ head -1)
+ echo "$CLIENT_CACHE_COUNT"
+ [ $CLIENT_CACHE_COUNT = $NEW_CLIENT_CACHE_COUNT ] ||
+ error "error while apply client_cache_count"
+
+ echo "Check the value is stored after remount"
+ stopall
+ setupall
+ wait_update $(facet_host ost1) "lctl get_param -n $CLIENT_PARAM |
+ head -1" $NEW_CLIENT_CACHE_COUNT
+ CLIENT_CACHE_COUNT=$(do_facet ost1 $LCTL get_param -n $CLIENT_PARAM |
+ head -1)
+ echo "$CLIENT_CACHE_COUNT"
+ [ $CLIENT_CACHE_COUNT = $NEW_CLIENT_CACHE_COUNT ] ||
+ error "client_cache_count is not saved after remount"
+ stopall
+}
+run_test 76 "set permanent params set_param -P"
+
+test_77() { # LU-3445
+ local server_version=$(lustre_version_code $SINGLEMDS)
+
+ [[ $server_version -ge $(version_code 2.2.60) ]] &&
+ [[ $server_version -le $(version_code 2.4.0) ]] &&
+ skip "Need MDS version < 2.2.60 or > 2.4.0" && return
+
+ if [[ -z "$fs2ost_DEV" || -z "$fs2mds_DEV" ]]; then
+ is_blkdev $SINGLEMDS $(mdsdevname ${SINGLEMDS//mds/}) &&
+ skip_env "mixed loopback and real device not working" && return
+ fi
+
+ local fs2mdsdev=$(mdsdevname 1_2)
+ local fs2ostdev=$(ostdevname 1_2)
+ local fs2mdsvdev=$(mdsvdevname 1_2)
+ local fs2ostvdev=$(ostvdevname 1_2)
+ local fsname=test1234
+ local mgsnid
+ local failnid="$(h2$NETTYPE 1.2.3.4),$(h2$NETTYPE 4.3.2.1)"
+
+ add fs2mds $(mkfs_opts mds1 $fs2mdsdev) --mgs --fsname=$fsname \
+ --reformat $fs2mdsdev $fs2mdsvdev || error "add fs2mds failed"
+ start fs2mds $fs2mdsdev $MDS_MOUNT_OPTS && trap cleanup_24a EXIT INT ||
+ error "start fs2mds failed"
+
+ mgsnid=$(do_facet fs2mds $LCTL list_nids | xargs | tr ' ' ,)
+ [[ $mgsnid = *,* ]] || mgsnid+=",$mgsnid"
+
+ add fs2ost $(mkfs_opts ost1 $fs2ostdev) --mgsnode=$mgsnid \
+ --failnode=$failnid --fsname=$fsname \
+ --reformat $fs2ostdev $fs2ostvdev ||
+ error "add fs2ost failed"
+ start fs2ost $fs2ostdev $OST_MOUNT_OPTS || error "start fs2ost failed"
+
+ mkdir -p $MOUNT2
+ mount -t lustre $mgsnid:/$fsname $MOUNT2 || error "mount $MOUNT2 failed"
+ DIR=$MOUNT2 MOUNT=$MOUNT2 check_mount || error "check $MOUNT2 failed"
+ cleanup_24a
+}
+run_test 77 "comma-separated MGS NIDs and failover node NIDs"
+