+test_70a() {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+ local MDTIDX=1
+
+ start_mdt 1 || error "MDT0 start fail"
+
+ start_ost || error "OST0 start fail"
+
+ start_mdt 2 || error "MDT1 start fail"
+
+ mount_client $MOUNT || error "mount client fails"
+
+ mkdir -p $DIR/$tdir || error "create dir fail"
+
+ $LFS mkdir -i $MDTIDX $DIR/$tdir/remote_dir ||
+ error "create remote dir fail"
+
+ rm -rf $DIR/$tdir || error "delete dir fail"
+ cleanup || return $?
+}
+run_test 70a "start MDT0, then OST, then MDT1"
+
+test_70b() {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+ local MDTIDX=1
+
+ start_ost || error "OST0 start fail"
+
+ start_mdt 1 || error "MDT0 start fail"
+ start_mdt 2 || error "MDT1 start fail"
+
+ mount_client $MOUNT || error "mount client fails"
+
+ mkdir -p $DIR/$tdir || error "create dir fail"
+
+ $LFS mkdir -i $MDTIDX $DIR/$tdir/remote_dir ||
+ error "create remote dir fail"
+
+ rm -rf $DIR/$tdir || error "delete dir fail"
+
+ cleanup || return $?
+}
+run_test 70b "start OST, MDT1, MDT0"
+
+test_70c() {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+ local MDTIDX=1
+
+ start_mdt 1 || error "MDT0 start fail"
+ start_mdt 2 || error "MDT1 start fail"
+ start_ost || error "OST0 start fail"
+
+ mount_client $MOUNT || error "mount client fails"
+ stop_mdt 1 || error "MDT1 start fail"
+
+ local mdc_for_mdt1=$($LCTL dl | grep MDT0000-mdc | awk '{print $4}')
+ echo "deactivate $mdc_for_mdt1"
+ $LCTL --device $mdc_for_mdt1 deactivate || return 1
+
+ mkdir -p $DIR/$tdir && error "mkdir succeed"
+
+ $LFS mkdir -i $MDTIDX $DIR/$tdir/remote_dir &&
+ error "create remote dir succeed"
+
+ cleanup || return $?
+}
+run_test 70c "stop MDT0, mkdir fail, create remote dir fail"
+
+test_70d() {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+ local MDTIDX=1
+
+ start_mdt 1 || error "MDT0 start fail"
+ start_mdt 2 || error "MDT1 start fail"
+ start_ost || error "OST0 start fail"
+
+ mount_client $MOUNT || error "mount client fails"
+
+ stop_mdt 2 || error "MDT1 start fail"
+
+ local mdc_for_mdt2=$($LCTL dl | grep MDT0001-mdc |
+ awk '{print $4}')
+ echo "deactivate $mdc_for_mdt2"
+ $LCTL --device $mdc_for_mdt2 deactivate ||
+ error "set $mdc_for_mdt2 deactivate failed"
+
+ mkdir -p $DIR/$tdir || error "mkdir fail"
+ $LFS mkdir -i $MDTIDX $DIR/$tdir/remote_dir &&
+ error "create remote dir succeed"
+
+ rm -rf $DIR/$tdir || error "delete dir fail"
+
+ cleanup || return $?
+}
+run_test 70d "stop MDT1, mkdir succeed, create remote dir fail"
+
+test_71a() {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+ if combined_mgs_mds; then
+ skip "needs separate MGS/MDT" && return
+ fi
+ local MDTIDX=1
+
+ start_mdt 1 || error "MDT0 start fail"
+ start_ost || error "OST0 start fail"
+ start_mdt 2 || error "MDT1 start fail"
+ start_ost2 || error "OST1 start fail"
+
+ mount_client $MOUNT || error "mount client fails"
+
+ mkdir -p $DIR/$tdir || error "mkdir fail"
+ $LFS mkdir -i $MDTIDX $DIR/$tdir/remote_dir ||
+ error "create remote dir succeed"
+
+ mcreate $DIR/$tdir/remote_dir/$tfile || error "create file failed"
+ rm -rf $DIR/$tdir || error "delete dir fail"
+
+ umount_client $MOUNT
+ stop_mdt 1 || error "MDT0 stop fail"
+ stop_mdt 2 || error "MDT1 stop fail"
+ stop_ost || error "OST0 stop fail"
+ stop_ost2 || error "OST1 stop fail"
+}
+run_test 71a "start MDT0 OST0, MDT1, OST1"
+
+test_71b() {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+ if combined_mgs_mds; then
+ skip "needs separate MGS/MDT" && return
+ fi
+ local MDTIDX=1
+
+ start_mdt 2 || error "MDT1 start fail"
+ start_ost || error "OST0 start fail"
+ start_mdt 1 || error "MDT0 start fail"
+ start_ost2 || error "OST1 start fail"
+
+ mount_client $MOUNT || error "mount client fails"
+
+ mkdir -p $DIR/$tdir || error "mkdir fail"
+ $LFS mkdir -i $MDTIDX $DIR/$tdir/remote_dir ||
+ error "create remote dir succeed"
+
+ mcreate $DIR/$tdir/remote_dir/$tfile || error "create file failed"
+ rm -rf $DIR/$tdir || error "delete dir fail"
+
+ umount_client $MOUNT
+ stop_mdt 1 || error "MDT0 stop fail"
+ stop_mdt 2 || error "MDT1 stop fail"
+ stop_ost || error "OST0 stop fail"
+ stop_ost2 || error "OST1 stop fail"
+}
+run_test 71b "start MDT1, OST0, MDT0, OST1"
+
+test_71c() {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+ if combined_mgs_mds; then
+ skip "needs separate MGS/MDT" && return
+ fi
+ local MDTIDX=1
+
+ start_ost || error "OST0 start fail"
+ start_ost2 || error "OST1 start fail"
+ start_mdt 2 || error "MDT1 start fail"
+ start_mdt 1 || error "MDT0 start fail"
+
+ mount_client $MOUNT || error "mount client fails"
+
+ mkdir -p $DIR/$tdir || error "mkdir fail"
+ $LFS mkdir -i $MDTIDX $DIR/$tdir/remote_dir ||
+ error "create remote dir succeed"
+
+ mcreate $DIR/$tdir/remote_dir/$tfile || error "create file failed"
+ rm -rf $DIR/$tdir || error "delete dir fail"
+
+ umount_client $MOUNT
+ stop_mdt 1 || error "MDT0 stop fail"
+ stop_mdt 2 || error "MDT1 stop fail"
+ stop_ost || error "OST0 stop fail"
+ stop_ost2 || error "OST1 stop fail"
+
+}
+run_test 71c "start OST0, OST1, MDT1, MDT0"
+
+test_71d() {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+ if combined_mgs_mds; then
+ skip "needs separate MGS/MDT" && return
+ fi
+ local MDTIDX=1
+
+ start_ost || error "OST0 start fail"
+ start_mdt 2 || error "MDT0 start fail"
+ start_mdt 1 || error "MDT0 start fail"
+ start_ost2 || error "OST1 start fail"
+
+ mount_client $MOUNT || error "mount client fails"
+
+ mkdir -p $DIR/$tdir || error "mkdir fail"
+ $LFS mkdir -i $MDTIDX $DIR/$tdir/remote_dir ||
+ error "create remote dir succeed"
+
+ mcreate $DIR/$tdir/remote_dir/$tfile || error "create file failed"
+ rm -rf $DIR/$tdir || error "delete dir fail"
+
+ umount_client $MOUNT
+ stop_mdt 1 || error "MDT0 stop fail"
+ stop_mdt 2 || error "MDT1 stop fail"
+ stop_ost || error "OST0 stop fail"
+ stop_ost2 || error "OST1 stop fail"
+
+}
+run_test 71d "start OST0, MDT1, MDT0, OST1"
+
+test_71e() {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+ if combined_mgs_mds; then
+ skip "needs separate MGS/MDT" && return
+ fi
+ local MDTIDX=1
+
+ start_ost || error "OST0 start fail"
+ start_mdt 2 || error "MDT1 start fail"
+ start_ost2 || error "OST1 start fail"
+ start_mdt 1 || error "MDT0 start fail"
+
+ mount_client $MOUNT || error "mount client fails"
+
+ mkdir -p $DIR/$tdir || error "mkdir fail"
+ $LFS mkdir -i $MDTIDX $DIR/$tdir/remote_dir ||
+ error "create remote dir succeed"
+
+ mcreate $DIR/$tdir/remote_dir/$tfile || error "create file failed"
+ rm -rf $DIR/$tdir || error "delete dir fail"
+
+ umount_client $MOUNT
+ stop_mdt 1 || error "MDT0 stop fail"
+ stop_mdt 2 || error "MDT1 stop fail"
+ stop_ost || error "OST0 stop fail"
+ stop_ost2 || error "OST1 stop fail"
+
+}
+run_test 71e "start OST0, MDT1, OST1, MDT0"
+