xref: /freebsd/tools/regression/zfs/zpool/replace/log.t (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
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