⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 conf-sanity.sh

📁 lustre 1.6.5 source code
💻 SH
📖 第 1 页 / 共 4 页
字号:
        facet="mds"        rm -f ${facet}active        add_facet $facet        echo "the name for node and mds is the same"        do_lmc --add mds --node ${facet}_facet --mds ${facet}_facet \            --dev $MDSDEV --size $MDSSIZE || return $?        do_lmc --add lov --mds ${facet}_facet --lov lov1 --stripe_sz \            $STRIPE_BYTES --stripe_cnt $STRIPES_PER_OBJ \            --stripe_pattern 0 || return $?        add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE        facet="client"        add_facet $facet --lustre_upcall $UPCALL        do_lmc --add mtpt --node ${facet}_facet --mds mds_facet \            --lov lov1 --path $MOUNT        echo "mount lustre"        start_ost        start_mds        mount_client $MOUNT        check_mount || return 41        cleanup || return $?        echo "Success!"        XMLCONFIG=$OLDXMLCONFIG}run_test 10 "mount lustre with the same name for node and mds"test_11() {        OLDXMLCONFIG=$XMLCONFIG        XMLCONFIG="conf11.xml"        [ -f "$XMLCONFIG" ] && rm -f $XMLCONFIG        add_mds mds --dev $MDSDEV --size $MDSSIZE        add_ost ost --dev $OSTDEV --size $OSTSIZE        add_client client mds --path $MOUNT --ost ost_svc || return $?        echo "Default lov config success!"        [ -f "$XMLCONFIG" ] && rm -f $XMLCONFIG        add_mds mds --dev $MDSDEV --size $MDSSIZE        add_ost ost --dev $OSTDEV --size $OSTSIZE        add_client client mds --path $MOUNT && return $?        echo "--add mtpt with neither --lov nor --ost will return error"        echo ""        echo "Success!"        XMLCONFIG=$OLDXMLCONFIG}run_test 11 "use default lov configuration (should return error)"test_12() {        OLDXMLCONFIG=$XMLCONFIG        XMLCONFIG="batch.xml"        BATCHFILE="batchfile"        # test double quote        [ -f "$XMLCONFIG" ] && rm -f $XMLCONFIG        [ -f "$BATCHFILE" ] && rm -f $BATCHFILE        echo "--add net --node $HOSTNAME --nid $HOSTNAME --nettype tcp" > $BATCHFILE        echo "--add mds --node $HOSTNAME --mds mds1 --mkfsoptions \"-I 128\"" >> $BATCHFILE        # --mkfsoptions "-I 128"        do_lmc -m $XMLCONFIG --batch $BATCHFILE || return $?        if [ `sed -n '/>-I 128</p' $XMLCONFIG | wc -l` -eq 1 ]; then                echo "matched double quote success"        else                echo "matched double quote fail"                return 1        fi        rm -f $XMLCONFIG        rm -f $BATCHFILE        echo "--add net --node $HOSTNAME --nid $HOSTNAME --nettype tcp" > $BATCHFILE        echo "--add mds --node $HOSTNAME --mds mds1 --mkfsoptions \"-I 128" >> $BATCHFILE        # --mkfsoptions "-I 128        do_lmc -m $XMLCONFIG --batch $BATCHFILE && return $?        echo "unmatched double quote should return error"        # test single quote        rm -f $BATCHFILE        echo "--add net --node $HOSTNAME --nid $HOSTNAME --nettype tcp" > $BATCHFILE        echo "--add mds --node $HOSTNAME --mds mds1 --mkfsoptions '-I 128'" >> $BATCHFILE        # --mkfsoptions '-I 128'        do_lmc -m $XMLCONFIG --batch $BATCHFILE || return $?        if [ `sed -n '/>-I 128</p' $XMLCONFIG | wc -l` -eq 1 ]; then                echo "matched single quote success"        else                echo "matched single quote fail"                return 1        fi        rm -f $XMLCONFIG        rm -f $BATCHFILE        echo "--add net --node $HOSTNAME --nid $HOSTNAME --nettype tcp" > $BATCHFILE        echo "--add mds --node $HOSTNAME --mds mds1 --mkfsoptions '-I 128" >> $BATCHFILE        # --mkfsoptions '-I 128        do_lmc -m $XMLCONFIG --batch $BATCHFILE && return $?        echo "unmatched single quote should return error"        # test backslash        rm -f $BATCHFILE        echo "--add net --node $HOSTNAME --nid $HOSTNAME --nettype tcp" > $BATCHFILE        echo "--add mds --node $HOSTNAME --mds mds1 --mkfsoptions \-\I\ \128" >> $BATCHFILE        # --mkfsoptions \-\I\ \128        do_lmc -m $XMLCONFIG --batch $BATCHFILE || return $?        if [ `sed -n '/>-I 128</p' $XMLCONFIG | wc -l` -eq 1 ]; then                echo "backslash followed by a whitespace/letter success"        else                echo "backslash followed by a whitespace/letter fail"                return 1        fi        rm -f $XMLCONFIG        rm -f $BATCHFILE        echo "--add net --node $HOSTNAME --nid $HOSTNAME --nettype tcp" > $BATCHFILE        echo "--add mds --node $HOSTNAME --mds mds1 --mkfsoptions -I\ 128\\" >> $BATCHFILE        # --mkfsoptions -I\ 128\        do_lmc -m $XMLCONFIG --batch $BATCHFILE && return $?        echo "backslash followed by nothing should return error"        rm -f $BATCHFILE        XMLCONFIG=$OLDXMLCONFIG}run_test 12 "lmc --batch, with single/double quote, backslash in batchfile"test_13() {        OLDXMLCONFIG=$XMLCONFIG        XMLCONFIG="conf13-1.xml"        # check long uuid will be truncated properly and uniquely        echo "To generate XML configuration file(with long ost name): $XMLCONFIG"        [ -f "$XMLCONFIG" ] && rm -f $XMLCONFIG        do_lmc --add net --node $HOSTNAME --nid $HOSTNAME --nettype tcp        do_lmc --add mds --node $HOSTNAME --mds mds1_name_longer_than_31characters        do_lmc --add mds --node $HOSTNAME --mds mds2_name_longer_than_31characters        if [ ! -f "$XMLCONFIG" ]; then                echo "Error:no file $XMLCONFIG created!"                return 1        fi        EXPECTEDMDS1UUID="e_longer_than_31characters_UUID"        EXPECTEDMDS2UUID="longer_than_31characters_UUID_2"        FOUNDMDS1UUID=`awk -F"'" '/<mds .*uuid=/' $XMLCONFIG | sed -n '1p' \                       | sed "s/ /\n\r/g" | awk -F"'" '/uuid=/{print $2}'`        FOUNDMDS2UUID=`awk -F"'" '/<mds .*uuid=/' $XMLCONFIG | sed -n '2p' \                       | sed "s/ /\n\r/g" | awk -F"'" '/uuid=/{print $2}'`	[ -z "$FOUNDMDS1UUID" ] && echo "MDS1 UUID empty" && return 1	[ -z "$FOUNDMDS2UUID" ] && echo "MDS2 UUID empty" && return 1        if ([ $EXPECTEDMDS1UUID = $FOUNDMDS1UUID ] && [ $EXPECTEDMDS2UUID = $FOUNDMDS2UUID ]) || \           ([ $EXPECTEDMDS1UUID = $FOUNDMDS2UUID ] && [ $EXPECTEDMDS2UUID = $FOUNDMDS1UUID ]); then                echo "Success:long uuid truncated successfully and being unique."        else                echo "Error:expected uuid for mds1 and mds2: $EXPECTEDMDS1UUID; $EXPECTEDMDS2UUID"                echo "but:     found uuid for mds1 and mds2: $FOUNDMDS1UUID; $FOUNDMDS2UUID"                return 1        fi        rm -f $XMLCONFIG        XMLCONFIG=$OLDXMLCONFIG}run_test 13 "check new_uuid of lmc operating correctly"test_13b() {        OLDXMLCONFIG=$XMLCONFIG        XMLCONFIG="conf13-1.xml"        SECONDXMLCONFIG="conf13-2.xml"        # check multiple invocations for lmc generate same XML configuration file        rm -f $XMLCONFIG        echo "Generate the first XML configuration file"        gen_config        echo "mv $XMLCONFIG to $SECONDXMLCONFIG"        sed -e "s/mtime[^ ]*//" $XMLCONFIG > $SECONDXMLCONFIG || return $?        echo "Generate the second XML configuration file"        gen_config	# don't compare .xml mtime, it will always be different        if [ `sed -e "s/mtime[^ ]*//" $XMLCONFIG | diff - $SECONDXMLCONFIG | wc -l` -eq 0 ]; then                echo "Success:multiple invocations for lmc generate same XML file"        else                echo "Error: multiple invocations for lmc generate different XML file"                return 1        fi        rm -f $XMLCONFIG $SECONDXMLCONFIG        XMLCONFIG=$OLDXMLCONFIG}run_test 13b "check lmc generates consistent .xml file"test_14() {        rm -f $XMLCONFIG        # create xml file with --mkfsoptions for ost        echo "create xml file with --mkfsoptions for ost"        add_mds mds --dev $MDSDEV --size $MDSSIZE        add_lov lov1 mds --stripe_sz $STRIPE_BYTES\            --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0        add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE \            --mkfsoptions "-Llabel_conf_14"        add_client client mds --lov lov1 --path $MOUNT        FOUNDSTRING=`awk -F"<" '/<mkfsoptions>/{print $2}' $XMLCONFIG`        EXPECTEDSTRING="mkfsoptions>-Llabel_conf_14"        if [ "$EXPECTEDSTRING" != "$FOUNDSTRING" ]; then                echo "Error: expected: $EXPECTEDSTRING; found: $FOUNDSTRING"                return 1        fi        echo "Success:mkfsoptions for ost written to xml file correctly."        # mount lustre to test lconf mkfsoptions-parsing        echo "mount lustre"        start_ost        start_mds        mount_client $MOUNT || return $?        if [ -z "`do_facet ost1 dumpe2fs -h $OSTDEV | grep label_conf_14`" ]; then                echo "Error: the mkoptions not applied to mke2fs of ost."                return 1        fi        cleanup        echo "lconf mkfsoptions for ost success"        gen_config}run_test 14 "test mkfsoptions of ost for lmc and lconf"cleanup_15() {	trap 0	[ -f $MOUNTLUSTRE ] && echo "remove $MOUNTLUSTRE" && rm -f $MOUNTLUSTRE	if [ -f $MOUNTLUSTRE.sav ]; then		echo "return original $MOUNTLUSTRE.sav to $MOUNTLUSTRE"		mv $MOUNTLUSTRE.sav $MOUNTLUSTRE	fi}# this only tests the kernel mount command, not anything about lustre.test_15() {        MOUNTLUSTRE=${MOUNTLUSTRE:-/sbin/mount.lustre}	start_ost	start_mds	echo "mount lustre on ${MOUNT} without $MOUNTLUSTRE....."	if [ -f "$MOUNTLUSTRE" ]; then		echo "save $MOUNTLUSTRE to $MOUNTLUSTRE.sav"		mv $MOUNTLUSTRE $MOUNTLUSTRE.sav && trap cleanup_15 EXIT INT		if [ -f $MOUNTLUSTRE ]; then			skip "$MOUNTLUSTRE cannot be moved, skipping test"			return 0		fi	fi	mount_client $MOUNT && error "mount succeeded" && return 1	echo "mount lustre on $MOUNT without $MOUNTLUSTRE failed as expected"	cleanup_15	cleanup || return $?}run_test 15 "zconf-mount without /sbin/mount.lustre (should return error)"test_16() {        TMPMTPT="${TMP}/conf16"        if [ ! -e "$MDSDEV" ]; then            log "no $MDSDEV existing, so mount Lustre to create one"            setup            check_mount || return 41            cleanup || return $?        fi        [ -f "$MDSDEV" ] && LOOPOPT="-o loop"        log "change the mode of $MDSDEV/OBJECTS,LOGS,PENDING to 555"        do_facet mds "mkdir -p $TMPMTPT &&                      mount $LOOPOPT -t $FSTYPE $MDSDEV $TMPMTPT &&                      chmod 555 $TMPMTPT/{OBJECTS,LOGS,PENDING} &&                      umount $TMPMTPT" || return $?        log "mount Lustre to change the mode of OBJECTS/LOGS/PENDING, then umount Lustre"	setup        check_mount || return 41        cleanup || return $?        log "read the mode of OBJECTS/LOGS/PENDING and check if they has been changed properly"        EXPECTEDOBJECTSMODE=`do_facet mds "debugfs -R 'stat OBJECTS' $MDSDEV 2> /dev/null" | grep 'Mode: ' | sed -e "s/.*Mode: *//" -e "s/ *Flags:.*//"`        EXPECTEDLOGSMODE=`do_facet mds "debugfs -R 'stat LOGS' $MDSDEV 2> /dev/null" | grep 'Mode: ' | sed -e "s/.*Mode: *//" -e "s/ *Flags:.*//"`        EXPECTEDPENDINGMODE=`do_facet mds "debugfs -R 'stat PENDING' $MDSDEV 2> /dev/null" | grep 'Mode: ' | sed -e "s/.*Mode: *//" -e "s/ *Flags:.*//"`        if [ "$EXPECTEDOBJECTSMODE" = "0777" ]; then                log "Success:Lustre change the mode of OBJECTS correctly"        else                error "Lustre does not change mode of OBJECTS properly"        fi        if [ "$EXPECTEDLOGSMODE" = "0777" ]; then                log "Success:Lustre change the mode of LOGS correctly"        else                error "Lustre does not change mode of LOGS properly"        fi        if [ "$EXPECTEDPENDINGMODE" = "0777" ]; then                log "Success:Lustre change the mode of PENDING correctly"        else                error "Lustre does not change mode of PENDING properly"        fi}run_test 16 "verify that lustre will correct the mode of OBJECTS/LOGS/PENDING"test_17() {        if [ ! -e "$MDSDEV" ]; then            echo "no $MDSDEV existing, so mount Lustre to create one"	    setup            check_mount || return 41            cleanup || return $?        fi        echo "Remove mds config log"        do_facet mds "debugfs -w -R 'unlink CONFIGS/$FSNAME-MDT0000' $MDSDEV || return \$?" || return $?        start_ost	start_mds && return 42	gen_config}run_test 17 "Verify failed mds_postsetup won't fail assertion (2936) (should return errs)"test_18() {        [ -f $MDSDEV ] && echo "remove $MDSDEV" && rm -f $MDSDEV        echo "mount mds with large journal..."        local myMDSSIZE=2000000        OLD_MDS_MKFS_OPTS=$MDS_MKFS_OPTS        MDS_MKFS_OPTS="--mgs --mdt --fsname=$FSNAME --device-size=$myMDSSIZE --param sys.timeout=$TIMEOUT $MDSOPT"        gen_config        echo "mount lustre system..."	setup        check_mount || return 41        echo "check journal size..."        FOUNDSIZE=`do_facet mds "debugfs -c -R 'stat <8>' $MDSDEV" | awk '/Size: / { print $NF; exit;}'`        if [ $FOUNDSIZE -gt $((32 * 1024 * 1024)) ]; then                log "Success: mkfs creates large journals. Size: $((FOUNDSIZE >> 20))M"        else                error "expected journal size > 32M, found $((FOUNDSIZE >> 20))M"        fi        cleanup || return $?        MDS_MKFS_OPTS=$OLD_MDS_MKFS_OPTS        gen_config}run_test 18 "check mkfs creates large journals"test_19a() {	start_mds || return 1	stop_mds -f || return 2}run_test 19a "start/stop MDS without OSTs"test_19b() {	start_ost || return 1	stop_ost -f || return 2}run_test 19b "start/stop OSTs without MDS"test_20() {	# first format the ost/mdt	start_ost	start_mds	mount_client $MOUNT	check_mount || return 43	rm -f $DIR/$tfile	remount_client ro $MOUNT || return 44	touch $DIR/$tfile && echo "$DIR/$tfile created incorrectly" && return 45	[ -e $DIR/$tfile ] && echo "$DIR/$tfile exists incorrectly" && return 46	remount_client rw $MOUNT || return 47	touch $DIR/$tfile	[ ! -f $DIR/$tfile ] && echo "$DIR/$tfile missing" && return 48	MCNT=`grep -c $MOUNT /etc/mtab`	[ "$MCNT" -ne 1 ] && echo "$MOUNT in /etc/mtab $MCNT times" && return 49	umount_client $MOUNT	stop_mds	stop_ost}run_test 20 "remount ro,rw mounts work and doesn't break /etc/mtab"test_21a() {        start_mds	start_ost	stop_ost	stop_mds}run_test 21a "start mds before ost, stop ost first"test_21b() {        start_ost	start_mds	stop_mds	stop_ost}run_test 21b "start ost before mds, stop mds first"test_21c() {        start_ost	start_mds	start_ost2	stop_ost

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -