003 File Manager
Current Path:
/usr/src/tests/sys/cddl/zfs/tests/zfsd
usr
/
src
/
tests
/
sys
/
cddl
/
zfs
/
tests
/
zfsd
/
📁
..
📄
Makefile
(1.2 KB)
📄
cleanup.ksh
(1.15 KB)
📄
hotspare_cleanup.ksh
(1.33 KB)
📄
hotspare_setup.ksh
(1.32 KB)
📄
setup.ksh
(1.07 KB)
📄
zfsd.cfg
(1012 B)
📄
zfsd.kshlib
(2.19 KB)
📄
zfsd_autoreplace_001_neg.ksh
(2.79 KB)
📄
zfsd_autoreplace_002_pos.ksh
(2.64 KB)
📄
zfsd_autoreplace_003_pos.ksh
(3 KB)
📄
zfsd_degrade_001_pos.ksh
(2.33 KB)
📄
zfsd_degrade_002_pos.ksh
(2.75 KB)
📄
zfsd_fault_001_pos.ksh
(4.23 KB)
📄
zfsd_hotspare_001_pos.ksh
(4.14 KB)
📄
zfsd_hotspare_002_pos.ksh
(2.71 KB)
📄
zfsd_hotspare_003_pos.ksh
(2.69 KB)
📄
zfsd_hotspare_004_pos.ksh
(3.08 KB)
📄
zfsd_hotspare_005_pos.ksh
(2.85 KB)
📄
zfsd_hotspare_006_pos.ksh
(3.57 KB)
📄
zfsd_hotspare_007_pos.ksh
(2.94 KB)
📄
zfsd_hotspare_008_neg.ksh
(2.25 KB)
📄
zfsd_import_001_pos.ksh
(4.13 KB)
📄
zfsd_replace_001_pos.ksh
(2.46 KB)
📄
zfsd_replace_002_pos.ksh
(2.19 KB)
📄
zfsd_replace_003_pos.ksh
(3.74 KB)
📄
zfsd_test.sh
(17.14 KB)
Editing: zfsd_hotspare_006_pos.ksh
#!/usr/local/bin/ksh93 -p # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # $FreeBSD$ # # Copyright 2014 Spectra Logic. All rights reserved. # Use is subject to license terms. # # . $STF_SUITE/tests/hotspare/hotspare.kshlib ################################################################################ # # __stc_assertion_start # # ID: zfs_hotspare_004_pos # # DESCRIPTION: # If two vdevs get removed from a pool with two spares at the same time, # both spares will be activated. # # # STRATEGY: # 1. Create 1 storage pool with two hot spares. # 2. Stop the zfsd process. # 3. Fault two vdevs # 4. Resume the zfsd process # 5. Verify that the spares are in use. # 6. Pause zfsd # 7. Clear the errors on the faulted vdevs # 8. Resume zfsd # 9. Verify that the vdevs ges resilvered and the spares get removed # # TESTABILITY: explicit # # TEST_AUTOMATION_LEVEL: automated # # CODING STATUS: COMPLETED (2014-05-13) # # __stc_assertion_end # ############################################################################### verify_runnable "global" function cleanup { poolexists $TESTPOOL && \ destroy_pool $TESTPOOL partition_cleanup $KILL -s SIGCONT `$PGREP zfsd` } function verify_assertion # spare_dev { typeset err_dev1=${devarray[3]} typeset err_dev2=${devarray[4]} typeset sdev=$1 $KILL -s SIGSTOP `$PGREP zfsd` log_must $ZINJECT -d $err_dev1 -A fault $TESTPOOL log_must $ZINJECT -d $err_dev2 -A fault $TESTPOOL log_must check_state $TESTPOOL $err_dev1 "FAULTED" log_must check_state $TESTPOOL $err_dev2 "FAULTED" $KILL -s SIGCONT `$PGREP zfsd` # ZFSD can take up to 60 seconds to degrade an array in response to # errors (though it's usually faster). for ((timeout=0; $timeout<10; timeout=$timeout+1)); do check_state $TESTPOOL "$sdev0" "INUSE" cond1=$? check_state $TESTPOOL "$sdev1" "INUSE" cond2=$? if [[ $cond1 -eq 0 && $cond2 -eq 0 ]]; then break fi $SLEEP 6 done log_must $ZPOOL status $TESTPOOL log_must check_state $TESTPOOL "$sdev1" "INUSE" log_must check_state $TESTPOOL "$sdev2" "INUSE" $KILL -s SIGSTOP `$PGREP zfsd` $ZPOOL clear $TESTPOOL $KILL -s SIGCONT `$PGREP zfsd` for ((timeout=0; $timeout<10; timeout=$timeout+1)); do check_state $TESTPOOL "$sdev0" "AVAIL" cond1=$? check_state $TESTPOOL "$sdev1" "AVAIL" cond2=$? if [[ $cond1 -eq 0 && $cond2 -eq 0 ]]; then break fi $SLEEP 6 done log_must $ZPOOL status $TESTPOOL log_must check_state $TESTPOOL "$sdev1" "AVAIL" log_must check_state $TESTPOOL "$sdev2" "AVAIL" # do cleanup destroy_pool $TESTPOOL } log_assert "Two simultaneously faulted vdevs will be replaced by available spares" log_onexit cleanup ensure_zfsd_running set_devs typeset sdev0="${devarray[0]}" typeset sdev1="${devarray[1]}" set -A my_keywords "mirror" "raidz2" for keyword in "${my_keywords[@]}" ; do setup_hotspares "$keyword" verify_assertion $sdev done log_pass
Upload File
Create Folder