1185029Spjd#!/bin/sh 2185029Spjd# $FreeBSD$ 3185029Spjd 4185029Spjddir=`dirname $0` 5185029Spjd. ${dir}/../../misc.sh 6185029Spjd 7185029Spjdecho "1..27" 8185029Spjd 9185029Spjddisks_create 3 10185029Spjdnames_create 1 11185029Spjd 12185029Spjdexpect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1} 13185029Spjdexpect_ok ${ZPOOL} export ${name0} 14185029Spjddname0=${disk0} 15185029Spjdfdname0=${fdisk0} 16185029Spjdguid0=`get_guid ${fdisk0}` 17185029Spjddisk_destroy 0 18185029Spjddisk_create 0 ${dname0} 19185029Spjdexpect_ok ${ZPOOL} import ${import_flags} ${name0} 20185029Spjdexp=`( 21185029Spjd echo " pool: ${name0}" 22185029Spjd echo " state: DEGRADED" 23185029Spjd echo "status: One or more devices could not be used because the label is missing or" 24185029Spjd echo " invalid. Sufficient replicas exist for the pool to continue" 25185029Spjd echo " functioning in a degraded state." 26185029Spjd echo "action: Replace the device using 'zpool replace'." 27185029Spjd echo " see: http://www.sun.com/msg/ZFS-8000-4J" 28185029Spjd echo " scrub: none requested" 29185029Spjd echo "config:" 30185029Spjd echo " NAME STATE READ WRITE CKSUM" 31185029Spjd echo " ${name0} DEGRADED 0 0 0" 32185029Spjd echo " mirror DEGRADED 0 0 0" 33185029Spjd echo " ${guid0} UNAVAIL 0 0 0 was ${fdname0}" 34185029Spjd echo " ${disk1} ONLINE 0 0 0" 35185029Spjd echo "errors: No known data errors" 36185029Spjd)` 37185029Spjdexpect "${exp}" ${ZPOOL} status ${name0} 38185029Spjdexpect_ok ${ZPOOL} replace ${name0} ${disk0} ${disk2} 39185029Spjdwait_for_resilver ${name0} 40185029Spjdexp=`( 41185029Spjd echo " pool: ${name0}" 42185029Spjd echo " state: ONLINE" 43185029Spjd echo " scrub: (scrub|resilver) completed after [0-9]+h[0-9]+m with 0 errors on .*" 44185029Spjd echo "config:" 45185029Spjd echo " NAME STATE READ WRITE CKSUM" 46185029Spjd echo " ${name0} ONLINE 0 0 0" 47185029Spjd echo " mirror ONLINE 0 0 0" 48185029Spjd echo " ${disk2} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 49185029Spjd echo " ${disk1} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 50185029Spjd echo "errors: No known data errors" 51185029Spjd)` 52185029Spjdexpect "${exp}" ${ZPOOL} status ${name0} 53185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 54185029Spjdexpect_fl ${ZPOOL} status -x ${name0} 55185029Spjd 56185029Spjdexpect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1} 57185029Spjdexpect_ok ${ZPOOL} replace ${name0} ${disk1} ${disk2} 58185029Spjdwait_for_resilver ${name0} 59185029Spjdexp=`( 60185029Spjd echo " pool: ${name0}" 61185029Spjd echo " state: ONLINE" 62185029Spjd echo " scrub: (scrub|resilver) completed after [0-9]+h[0-9]+m with 0 errors on .*" 63185029Spjd echo "config:" 64185029Spjd echo " NAME STATE READ WRITE CKSUM" 65185029Spjd echo " ${name0} ONLINE 0 0 0" 66185029Spjd echo " mirror ONLINE 0 0 0" 67185029Spjd echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 68185029Spjd echo " ${disk2} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 69185029Spjd echo "errors: No known data errors" 70185029Spjd)` 71185029Spjdexpect "${exp}" ${ZPOOL} status ${name0} 72185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 73185029Spjdexpect_fl ${ZPOOL} status -x ${name0} 74185029Spjd 75185029Spjdexpect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1} 76185029Spjdexpect_ok ${ZPOOL} export ${name0} 77185029Spjddname0=${disk0} 78185029Spjdfdname0=${fdisk0} 79185029Spjdguid0=`get_guid ${fdisk0}` 80185029Spjddisk_destroy 0 81185029Spjdexpect_ok ${ZPOOL} import ${import_flags} ${name0} 82185029Spjdexp=`( 83185029Spjd echo " pool: ${name0}" 84185029Spjd echo " state: DEGRADED" 85185029Spjd echo " scrub: none requested" 86185029Spjd echo "config:" 87185029Spjd echo " NAME STATE READ WRITE CKSUM" 88185029Spjd echo " ${name0} DEGRADED 0 0 0" 89185029Spjd echo " mirror DEGRADED 0 0 0" 90185029Spjd echo " ${guid0} REMOVED 0 0 0 was ${fdname0}" 91185029Spjd echo " ${disk1} ONLINE 0 0 0" 92185029Spjd echo "errors: No known data errors" 93185029Spjd)` 94185029Spjdexpect "${exp}" ${ZPOOL} status ${name0} 95185029Spjdexpect_ok ${ZPOOL} replace ${name0} ${dname0} ${disk2} 96185029Spjdwait_for_resilver ${name0} 97185029Spjdexp=`( 98185029Spjd echo " pool: ${name0}" 99185029Spjd echo " state: ONLINE" 100185029Spjd echo " scrub: (scrub|resilver) completed after [0-9]+h[0-9]+m with 0 errors on .*" 101185029Spjd echo "config:" 102185029Spjd echo " NAME STATE READ WRITE CKSUM" 103185029Spjd echo " ${name0} ONLINE 0 0 0" 104185029Spjd echo " mirror ONLINE 0 0 0" 105185029Spjd echo " ${disk2} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 106185029Spjd echo " ${disk1} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 107185029Spjd echo "errors: No known data errors" 108185029Spjd)` 109185029Spjdexpect "${exp}" ${ZPOOL} status ${name0} 110185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 111185029Spjdexpect_fl ${ZPOOL} status -x ${name0} 112185029Spjddisk_create 0 ${dname0} 113185029Spjd 114185029Spjdexpect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1} 115185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk1} 116185029Spjdexpect_ok ${ZPOOL} replace ${name0} ${disk1} ${disk2} 117185029Spjdwait_for_resilver ${name0} 118185029Spjdexp=`( 119185029Spjd echo " pool: ${name0}" 120185029Spjd echo " state: ONLINE" 121185029Spjd echo " scrub: (scrub|resilver) completed after [0-9]+h[0-9]+m with 0 errors on .*" 122185029Spjd echo "config:" 123185029Spjd echo " NAME STATE READ WRITE CKSUM" 124185029Spjd echo " ${name0} ONLINE 0 0 0" 125185029Spjd echo " mirror ONLINE 0 0 0" 126185029Spjd echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 127185029Spjd echo " ${disk2} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 128185029Spjd echo "errors: No known data errors" 129185029Spjd)` 130185029Spjdexpect "${exp}" ${ZPOOL} status ${name0} 131185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 132185029Spjdexpect_fl ${ZPOOL} status -x ${name0} 133185029Spjd 134185029Spjddisks_destroy 135