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} raidz1 ${disk0} ${disk1} ${disk2} 121ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} export ${name0} 131ba4a712SPawel Jakub Dawidekdname0=${disk0} 141ba4a712SPawel Jakub Dawidekfdname0=${fdisk0} 151ba4a712SPawel Jakub Dawidekguid0=`get_guid ${fdisk0}` 161ba4a712SPawel Jakub Dawidekdisk_destroy 0 171ba4a712SPawel Jakub Dawidekdisk_create 0 ${dname0} 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 " raidz1 DEGRADED 0 0 0" 321ba4a712SPawel Jakub Dawidek echo " ${guid0} UNAVAIL 0 0 0 was ${fdname0}" 331ba4a712SPawel Jakub Dawidek echo " ${disk1} ONLINE 0 0 0" 341ba4a712SPawel Jakub Dawidek echo " ${disk2} ONLINE 0 0 0" 351ba4a712SPawel Jakub Dawidek echo "errors: No known data errors" 361ba4a712SPawel Jakub Dawidek)` 371ba4a712SPawel Jakub Dawidekexpect "${exp}" ${ZPOOL} status ${name0} 381ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} replace ${name0} ${disk0} ${disk3} 391ba4a712SPawel Jakub Dawidekwait_for_resilver ${name0} 401ba4a712SPawel Jakub Dawidekexp=`( 411ba4a712SPawel Jakub Dawidek echo " pool: ${name0}" 421ba4a712SPawel Jakub Dawidek echo " state: ONLINE" 431ba4a712SPawel Jakub Dawidek echo " scrub: (scrub|resilver) completed after [0-9]+h[0-9]+m with 0 errors on .*" 441ba4a712SPawel Jakub Dawidek echo "config:" 451ba4a712SPawel Jakub Dawidek echo " NAME STATE READ WRITE CKSUM" 461ba4a712SPawel Jakub Dawidek echo " ${name0} ONLINE 0 0 0" 471ba4a712SPawel Jakub Dawidek echo " raidz1 ONLINE 0 0 0" 481ba4a712SPawel Jakub Dawidek echo " ${disk3} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 491ba4a712SPawel Jakub Dawidek echo " ${disk1} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 501ba4a712SPawel Jakub Dawidek echo " ${disk2} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 511ba4a712SPawel Jakub Dawidek echo "errors: No known data errors" 521ba4a712SPawel Jakub Dawidek)` 531ba4a712SPawel Jakub Dawidekexpect "${exp}" ${ZPOOL} status ${name0} 541ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} destroy ${name0} 551ba4a712SPawel Jakub Dawidekexpect_fl ${ZPOOL} status -x ${name0} 561ba4a712SPawel Jakub Dawidek 571ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} create ${name0} raidz1 ${disk0} ${disk1} ${disk2} 581ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} replace ${name0} ${disk1} ${disk3} 591ba4a712SPawel Jakub Dawidekwait_for_resilver ${name0} 601ba4a712SPawel Jakub Dawidekexp=`( 611ba4a712SPawel Jakub Dawidek echo " pool: ${name0}" 621ba4a712SPawel Jakub Dawidek echo " state: ONLINE" 631ba4a712SPawel Jakub Dawidek echo " scrub: (scrub|resilver) completed after [0-9]+h[0-9]+m with 0 errors on .*" 641ba4a712SPawel Jakub Dawidek echo "config:" 651ba4a712SPawel Jakub Dawidek echo " NAME STATE READ WRITE CKSUM" 661ba4a712SPawel Jakub Dawidek echo " ${name0} ONLINE 0 0 0" 671ba4a712SPawel Jakub Dawidek echo " raidz1 ONLINE 0 0 0" 681ba4a712SPawel Jakub Dawidek echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 691ba4a712SPawel Jakub Dawidek echo " ${disk3} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 701ba4a712SPawel Jakub Dawidek echo " ${disk2} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 711ba4a712SPawel Jakub Dawidek echo "errors: No known data errors" 721ba4a712SPawel Jakub Dawidek)` 731ba4a712SPawel Jakub Dawidekexpect "${exp}" ${ZPOOL} status ${name0} 741ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} destroy ${name0} 751ba4a712SPawel Jakub Dawidekexpect_fl ${ZPOOL} status -x ${name0} 761ba4a712SPawel Jakub Dawidek 771ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} create ${name0} raidz1 ${disk0} ${disk1} ${disk2} 781ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} export ${name0} 791ba4a712SPawel Jakub Dawidekdname0=${disk0} 801ba4a712SPawel Jakub Dawidekfdname0=${fdisk0} 811ba4a712SPawel Jakub Dawidekguid0=`get_guid ${fdisk0}` 821ba4a712SPawel Jakub Dawidekdisk_destroy 0 831ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} import ${import_flags} ${name0} 841ba4a712SPawel Jakub Dawidekexp=`( 851ba4a712SPawel Jakub Dawidek echo " pool: ${name0}" 861ba4a712SPawel Jakub Dawidek echo " state: DEGRADED" 871ba4a712SPawel Jakub Dawidek echo " scrub: none requested" 881ba4a712SPawel Jakub Dawidek echo "config:" 891ba4a712SPawel Jakub Dawidek echo " NAME STATE READ WRITE CKSUM" 901ba4a712SPawel Jakub Dawidek echo " ${name0} DEGRADED 0 0 0" 911ba4a712SPawel Jakub Dawidek echo " raidz1 DEGRADED 0 0 0" 921ba4a712SPawel Jakub Dawidek echo " ${guid0} REMOVED 0 0 0 was ${fdname0}" 931ba4a712SPawel Jakub Dawidek echo " ${disk1} ONLINE 0 0 0" 941ba4a712SPawel Jakub Dawidek echo " ${disk2} ONLINE 0 0 0" 951ba4a712SPawel Jakub Dawidek echo "errors: No known data errors" 961ba4a712SPawel Jakub Dawidek)` 971ba4a712SPawel Jakub Dawidekexpect "${exp}" ${ZPOOL} status ${name0} 981ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} replace ${name0} ${dname0} ${disk3} 991ba4a712SPawel Jakub Dawidekwait_for_resilver ${name0} 1001ba4a712SPawel Jakub Dawidekexp=`( 1011ba4a712SPawel Jakub Dawidek echo " pool: ${name0}" 1021ba4a712SPawel Jakub Dawidek echo " state: ONLINE" 1031ba4a712SPawel Jakub Dawidek echo " scrub: (scrub|resilver) completed after [0-9]+h[0-9]+m with 0 errors on .*" 1041ba4a712SPawel Jakub Dawidek echo "config:" 1051ba4a712SPawel Jakub Dawidek echo " NAME STATE READ WRITE CKSUM" 1061ba4a712SPawel Jakub Dawidek echo " ${name0} ONLINE 0 0 0" 1071ba4a712SPawel Jakub Dawidek echo " raidz1 ONLINE 0 0 0" 1081ba4a712SPawel Jakub Dawidek echo " ${disk3} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 1091ba4a712SPawel Jakub Dawidek echo " ${disk1} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 1101ba4a712SPawel Jakub Dawidek echo " ${disk2} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 1111ba4a712SPawel Jakub Dawidek echo "errors: No known data errors" 1121ba4a712SPawel Jakub Dawidek)` 1131ba4a712SPawel Jakub Dawidekexpect "${exp}" ${ZPOOL} status ${name0} 1141ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} destroy ${name0} 1151ba4a712SPawel Jakub Dawidekexpect_fl ${ZPOOL} status -x ${name0} 1161ba4a712SPawel Jakub Dawidekdisk_create 0 ${dname0} 1171ba4a712SPawel Jakub Dawidek 1181ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} create ${name0} raidz1 ${disk0} ${disk1} ${disk2} 1191ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} offline ${name0} ${disk1} 1201ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} replace ${name0} ${disk1} ${disk3} 1211ba4a712SPawel Jakub Dawidekwait_for_resilver ${name0} 1221ba4a712SPawel Jakub Dawidekexp=`( 1231ba4a712SPawel Jakub Dawidek echo " pool: ${name0}" 1241ba4a712SPawel Jakub Dawidek echo " state: ONLINE" 1251ba4a712SPawel Jakub Dawidek echo " scrub: (scrub|resilver) completed after [0-9]+h[0-9]+m with 0 errors on .*" 1261ba4a712SPawel Jakub Dawidek echo "config:" 1271ba4a712SPawel Jakub Dawidek echo " NAME STATE READ WRITE CKSUM" 1281ba4a712SPawel Jakub Dawidek echo " ${name0} ONLINE 0 0 0" 1291ba4a712SPawel Jakub Dawidek echo " raidz1 ONLINE 0 0 0" 1301ba4a712SPawel Jakub Dawidek echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 1311ba4a712SPawel Jakub Dawidek echo " ${disk3} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 1321ba4a712SPawel Jakub Dawidek echo " ${disk2} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 1331ba4a712SPawel Jakub Dawidek echo "errors: No known data errors" 1341ba4a712SPawel Jakub Dawidek)` 1351ba4a712SPawel Jakub Dawidekexpect "${exp}" ${ZPOOL} status ${name0} 1361ba4a712SPawel Jakub Dawidekexpect_ok ${ZPOOL} destroy ${name0} 1371ba4a712SPawel Jakub Dawidekexpect_fl ${ZPOOL} status -x ${name0} 1381ba4a712SPawel Jakub Dawidek 1391ba4a712SPawel Jakub Dawidekdisks_destroy 140