]> git.proxmox.com Git - mirror_zfs.git/blob - tests/zfs-tests/tests/functional/removal/remove_mirror.ksh
OpenZFS 7614, 9064 - zfs device evacuation/removal
[mirror_zfs.git] / tests / zfs-tests / tests / functional / removal / remove_mirror.ksh
1 #! /bin/ksh -p
2 #
3 # CDDL HEADER START
4 #
5 # This file and its contents are supplied under the terms of the
6 # Common Development and Distribution License ("CDDL"), version 1.0.
7 # You may only use this file in accordance with the terms of version
8 # 1.0 of the CDDL.
9 #
10 # A full copy of the text of the CDDL should have accompanied this
11 # source. A copy of the CDDL is also available via the Internet at
12 # http://www.illumos.org/license/CDDL.
13 #
14 # CDDL HEADER END
15 #
16
17 #
18 # Copyright (c) 2014, 2018 by Delphix. All rights reserved.
19 #
20
21 . $STF_SUITE/include/libtest.shlib
22 . $STF_SUITE/tests/functional/removal/removal.kshlib
23
24 TMPDIR=${TMPDIR:-$TEST_BASE_DIR}
25
26 DISK1="$TMPDIR/dsk1"
27 DISK2="$TMPDIR/dsk2"
28 DISK3="$TMPDIR/dsk3"
29 DISKS="$DISK1 $DISK2 $DISK3"
30
31 log_must mkfile $(($MINVDEVSIZE * 2)) $DISK1
32 log_must mkfile $(($MINVDEVSIZE * 2)) $DISK2
33 log_must mkfile $(($MINVDEVSIZE * 2)) $DISK3
34
35 function cleanup
36 {
37 default_cleanup_noexit
38 log_must rm -f $DISKS
39 }
40
41 log_must default_setup_noexit "$DISK1 mirror $DISK2 $DISK3"
42 log_onexit cleanup
43
44 # Attempt to remove the non mirrored disk.
45 log_must zpool remove $TESTPOOL $DISK1
46
47 # Attempt to remove one of the disks in the mirror.
48 log_mustnot zpool remove $TESTPOOL $DISK2
49 log_must wait_for_removal $TESTPOOL
50
51 # Add back the first disk.
52 log_must zpool add $TESTPOOL $DISK1
53
54 # Now attempt to remove the mirror.
55 log_must zpool remove $TESTPOOL mirror-1
56
57 log_pass "Removal will succeed for top level vdev(s)."