11ba4a712SPawel Jakub Dawidek#!/bin/sh 21ba4a712SPawel Jakub Dawidek 31ba4a712SPawel Jakub Dawidekdir=`dirname $0` 41ba4a712SPawel Jakub Dawidek. ${dir}/../../misc.sh 51ba4a712SPawel Jakub Dawidek 61ba4a712SPawel Jakub Dawidekecho "1..27" 71ba4a712SPawel Jakub Dawidek 81ba4a712SPawel Jakub Dawidekdisks_create 4 91ba4a712SPawel Jakub Dawideknames_create 1 101ba4a712SPawel Jakub Dawidek 111ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} create ${name0} ${disk0} log mirror ${disk1} ${disk2} 121ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} export ${name0} 131ba4a712SPawel Jakub Dawidekdname1=${disk1} 141ba4a712SPawel Jakub Dawidekfdname1=${fdisk1} 151ba4a712SPawel Jakub Dawidekguid1=`get_guid ${fdisk1}` 161ba4a712SPawel Jakub Dawidekdisk_destroy 1 171ba4a712SPawel Jakub Dawidekdisk_create 1 ${dname1} 181ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} import ${import_flags} ${name0} 191ba4a712SPawel Jakub Dawidekexp=`( 201ba4a712SPawel Jakub Dawidek echo " pool: ${name0}" 211ba4a712SPawel Jakub Dawidek echo " state: DEGRADED" 221ba4a712SPawel Jakub Dawidek echo "status: One or more devices could not be used because the label is missing or" 231ba4a712SPawel Jakub Dawidek echo " invalid. Sufficient replicas exist for the pool to continue" 241ba4a712SPawel Jakub Dawidek echo " functioning in a degraded state." 251ba4a712SPawel Jakub Dawidek echo "action: Replace the device using 'zpool replace'." 261ba4a712SPawel Jakub Dawidek echo " see: http://www.sun.com/msg/ZFS-8000-4J" 271ba4a712SPawel Jakub Dawidek echo " scrub: none requested" 281ba4a712SPawel Jakub Dawidek echo "config:" 291ba4a712SPawel Jakub Dawidek echo " NAME STATE READ WRITE CKSUM" 301ba4a712SPawel Jakub Dawidek echo " ${name0} DEGRADED 0 0 0" 311ba4a712SPawel Jakub Dawidek echo " ${disk0} ONLINE 0 0 0" 321ba4a712SPawel Jakub Dawidek echo " logs DEGRADED 0 0 0" 331ba4a712SPawel Jakub Dawidek echo " mirror DEGRADED 0 0 0" 341ba4a712SPawel Jakub Dawidek echo " ${guid1} UNAVAIL 0 0 0 was ${fdname1}" 351ba4a712SPawel Jakub Dawidek echo " ${disk2} ONLINE 0 0 0" 361ba4a712SPawel Jakub Dawidek echo "errors: No known data errors" 371ba4a712SPawel Jakub Dawidek)` 381ba4a712SPawel Jakub Dawidekadd_msg="# TODO Sun CR 6710376, Lustre bug 16912" 391ba4a712SPawel Jakub Dawidekexpect "${exp}" ${ZPOOL} status ${name0} 401ba4a712SPawel Jakub Dawidekadd_msg="" 411ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} replace ${name0} ${disk1} ${disk3} 421ba4a712SPawel Jakub Dawidekwait_for_resilver ${name0} 431ba4a712SPawel Jakub Dawidekexp=`( 441ba4a712SPawel Jakub Dawidek echo " pool: ${name0}" 451ba4a712SPawel Jakub Dawidek echo " state: ONLINE" 461ba4a712SPawel Jakub Dawidek echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 471ba4a712SPawel Jakub Dawidek echo "config:" 481ba4a712SPawel Jakub Dawidek echo " NAME STATE READ WRITE CKSUM" 491ba4a712SPawel Jakub Dawidek echo " ${name0} ONLINE 0 0 0" 501ba4a712SPawel Jakub Dawidek echo " ${disk0} ONLINE 0 0 0" 511ba4a712SPawel Jakub Dawidek echo " logs ONLINE 0 0 0" 521ba4a712SPawel Jakub Dawidek echo " mirror ONLINE 0 0 0" 531ba4a712SPawel Jakub Dawidek echo " ${disk3} ONLINE 0 0 0" 541ba4a712SPawel Jakub Dawidek echo " ${disk2} ONLINE 0 0 0" 551ba4a712SPawel Jakub Dawidek echo "errors: No known data errors" 561ba4a712SPawel Jakub Dawidek)` 571ba4a712SPawel Jakub Dawidekexpect "${exp}" ${ZPOOL} status ${name0} 581ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} destroy ${name0} 591ba4a712SPawel Jakub Dawidekexpect_fl ${ZPOOL} status -x ${name0} 601ba4a712SPawel Jakub Dawidek 611ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} create ${name0} ${disk0} log mirror ${disk1} ${disk2} 621ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} replace ${name0} ${disk2} ${disk3} 631ba4a712SPawel Jakub Dawidekwait_for_resilver ${name0} 641ba4a712SPawel Jakub Dawidekexp=`( 651ba4a712SPawel Jakub Dawidek echo " pool: ${name0}" 661ba4a712SPawel Jakub Dawidek echo " state: ONLINE" 671ba4a712SPawel Jakub Dawidek echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 681ba4a712SPawel Jakub Dawidek echo "config:" 691ba4a712SPawel Jakub Dawidek echo " NAME STATE READ WRITE CKSUM" 701ba4a712SPawel Jakub Dawidek echo " ${name0} ONLINE 0 0 0" 711ba4a712SPawel Jakub Dawidek echo " ${disk0} ONLINE 0 0 0" 721ba4a712SPawel Jakub Dawidek echo " logs ONLINE 0 0 0" 731ba4a712SPawel Jakub Dawidek echo " mirror ONLINE 0 0 0" 741ba4a712SPawel Jakub Dawidek echo " ${disk1} ONLINE 0 0 0" 751ba4a712SPawel Jakub Dawidek echo " ${disk3} ONLINE 0 0 0" 761ba4a712SPawel Jakub Dawidek echo "errors: No known data errors" 771ba4a712SPawel Jakub Dawidek)` 781ba4a712SPawel Jakub Dawidekexpect "${exp}" ${ZPOOL} status ${name0} 791ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} destroy ${name0} 801ba4a712SPawel Jakub Dawidekexpect_fl ${ZPOOL} status -x ${name0} 811ba4a712SPawel Jakub Dawidek 821ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} create ${name0} ${disk0} log mirror ${disk1} ${disk2} 831ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} export ${name0} 841ba4a712SPawel Jakub Dawidekdname1=${disk1} 851ba4a712SPawel Jakub Dawidekfdname1=${fdisk1} 861ba4a712SPawel Jakub Dawidekguid1=`get_guid ${fdisk1}` 871ba4a712SPawel Jakub Dawidekdisk_destroy 1 881ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} import ${import_flags} ${name0} 891ba4a712SPawel Jakub Dawidekexp=`( 901ba4a712SPawel Jakub Dawidek echo " pool: ${name0}" 911ba4a712SPawel Jakub Dawidek echo " state: DEGRADED" 921ba4a712SPawel Jakub Dawidek echo "status: One or more devices could not be opened. Sufficient replicas exist for" 931ba4a712SPawel Jakub Dawidek echo " the pool to continue functioning in a degraded state." 941ba4a712SPawel Jakub Dawidek echo "action: Attach the missing device and online it using 'zpool online'." 951ba4a712SPawel Jakub Dawidek echo " see: http://www.sun.com/msg/ZFS-8000-2Q" 961ba4a712SPawel Jakub Dawidek echo " scrub: none requested" 971ba4a712SPawel Jakub Dawidek echo "config:" 981ba4a712SPawel Jakub Dawidek echo " NAME STATE READ WRITE CKSUM" 991ba4a712SPawel Jakub Dawidek echo " ${name0} DEGRADED 0 0 0" 1001ba4a712SPawel Jakub Dawidek echo " ${disk0} ONLINE 0 0 0" 1011ba4a712SPawel Jakub Dawidek echo " logs DEGRADED 0 0 0" 1021ba4a712SPawel Jakub Dawidek echo " mirror DEGRADED 0 0 0" 1031ba4a712SPawel Jakub Dawidek echo " ${guid1} UNAVAIL 0 0 0 was ${fdname1}" 1041ba4a712SPawel Jakub Dawidek echo " ${disk2} ONLINE 0 0 0" 1051ba4a712SPawel Jakub Dawidek echo "errors: No known data errors" 1061ba4a712SPawel Jakub Dawidek)` 1071ba4a712SPawel Jakub Dawidekexpect "${exp}" ${ZPOOL} status ${name0} 1081ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} replace ${name0} ${dname1} ${disk3} 1091ba4a712SPawel Jakub Dawidekwait_for_resilver ${name0} 1101ba4a712SPawel Jakub Dawidekexp=`( 1111ba4a712SPawel Jakub Dawidek echo " pool: ${name0}" 1121ba4a712SPawel Jakub Dawidek echo " state: ONLINE" 1131ba4a712SPawel Jakub Dawidek echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 1141ba4a712SPawel Jakub Dawidek echo "config:" 1151ba4a712SPawel Jakub Dawidek echo " NAME STATE READ WRITE CKSUM" 1161ba4a712SPawel Jakub Dawidek echo " ${name0} ONLINE 0 0 0" 1171ba4a712SPawel Jakub Dawidek echo " ${disk0} ONLINE 0 0 0" 1181ba4a712SPawel Jakub Dawidek echo " logs ONLINE 0 0 0" 1191ba4a712SPawel Jakub Dawidek echo " mirror ONLINE 0 0 0" 1201ba4a712SPawel Jakub Dawidek echo " ${disk3} ONLINE 0 0 0" 1211ba4a712SPawel Jakub Dawidek echo " ${disk2} ONLINE 0 0 0" 1221ba4a712SPawel Jakub Dawidek echo "errors: No known data errors" 1231ba4a712SPawel Jakub Dawidek)` 1241ba4a712SPawel Jakub Dawidekexpect "${exp}" ${ZPOOL} status ${name0} 1251ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} destroy ${name0} 1261ba4a712SPawel Jakub Dawidekexpect_fl ${ZPOOL} status -x ${name0} 1271ba4a712SPawel Jakub Dawidekdisk_create 1 ${dname1} 1281ba4a712SPawel Jakub Dawidek 1291ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} create ${name0} ${disk0} log mirror ${disk1} ${disk2} 1301ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} offline ${name0} ${disk1} 1311ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} replace ${name0} ${disk1} ${disk3} 1321ba4a712SPawel Jakub Dawidekwait_for_resilver ${name0} 1331ba4a712SPawel Jakub Dawidekexp=`( 1341ba4a712SPawel Jakub Dawidek echo " pool: ${name0}" 1351ba4a712SPawel Jakub Dawidek echo " state: ONLINE" 1361ba4a712SPawel Jakub Dawidek echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 1371ba4a712SPawel Jakub Dawidek echo "config:" 1381ba4a712SPawel Jakub Dawidek echo " NAME STATE READ WRITE CKSUM" 1391ba4a712SPawel Jakub Dawidek echo " ${name0} ONLINE 0 0 0" 1401ba4a712SPawel Jakub Dawidek echo " ${disk0} ONLINE 0 0 0" 1411ba4a712SPawel Jakub Dawidek echo " logs ONLINE 0 0 0" 1421ba4a712SPawel Jakub Dawidek echo " mirror ONLINE 0 0 0" 1431ba4a712SPawel Jakub Dawidek echo " ${disk3} ONLINE 0 0 0" 1441ba4a712SPawel Jakub Dawidek echo " ${disk2} ONLINE 0 0 0" 1451ba4a712SPawel Jakub Dawidek echo "errors: No known data errors" 1461ba4a712SPawel Jakub Dawidek)` 1471ba4a712SPawel Jakub Dawidekexpect "${exp}" ${ZPOOL} status ${name0} 1481ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} destroy ${name0} 1491ba4a712SPawel Jakub Dawidekexpect_fl ${ZPOOL} status -x ${name0} 1501ba4a712SPawel Jakub Dawidek 1511ba4a712SPawel Jakub Dawidekdisks_destroy 152