Whamcloud - gitweb
LU-14 utils: allow formatting OST without VIRGIN flag
[fs/lustre-release.git] / lustre / tests / conf-sanity.sh
index 0a7b06f..4f6dcda 100644 (file)
@@ -3827,7 +3827,7 @@ test_68() {
 
        umount_client $MOUNT || error "umount client failed"
 
-       start_mds || error "MDT start failed"
+       start_mdt 1 || error "MDT start failed"
        start_ost
 
        # START-END - the sequences we'll be reserving
@@ -3862,6 +3862,40 @@ test_68() {
 }
 run_test 68 "be able to reserve specific sequences in FLDB"
 
+test_69() {
+       setup
+
+       # use OST0000 since it probably has the most creations
+       local OSTNAME=$(ostname_from_index 0)
+       local mdtosc_proc1=$(get_mdtosc_proc_path mds1 $OSTNAME)
+       local last_id=$(do_facet mds1 lctl get_param -n \
+                       osc.$mdtosc_proc1.prealloc_last_id)
+
+       # Want to have OST LAST_ID over 1.5 * OST_MAX_PRECREATE to
+       # verify that the LAST_ID recovery is working properly.  If
+       # not, then the OST will refuse to allow the MDS connect
+       # because the LAST_ID value is too different from the MDS
+       #define OST_MAX_PRECREATE=20000
+       local num_create=$((20000 * 3/2 - $last_id + 100))
+
+       mkdir $DIR/$tdir
+       $LFS setstripe -i 0 $DIR/$tdir
+       createmany $DIR/$tdir/$tfile- $num_create
+       # delete all of the files with objects on OST0 so the
+       # filesystem is not inconsistent later on
+       $LFS find $MOUNT --index 0 -print0 | xargs -0 unlink
+
+       stop_ost || error "OST0 stop failure"
+       add ost1 $(mkfs_opts ost1 $ostdev) --reformat --replace $ostdev ||
+               error "reformat and replace $ostdev failed"
+       start_ost || error "OST0 restart failure"
+
+       touch $DIR/$tdir/$tfile-last || error "create file after reformat"
+       local idx=$($LFS getstripe -c $DIR/$tdir/$tfile-last)
+       [ $idx -ne 0 ] && error "$DIR/$tdir/$tfile-last on $idx not 0" || true
+}
+run_test 68 "replace an OST with the same index"
+
 test_70a() {
        [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
        local MDTIDX=1
@@ -4262,6 +4296,47 @@ test_76() {
 }
 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"
+
 if ! combined_mgs_mds ; then
        stop mgs
 fi