forked from openzfs/zfs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This patch adds a new test that sanity checks cancelling a removal. Reviewed-by: Matt Ahrens <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: John Kennedy <[email protected]> Signed-off-by: Serapheim Dimitropoulos <[email protected]> Closes openzfs#9101
- Loading branch information
Showing
3 changed files
with
104 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
99 changes: 99 additions & 0 deletions
99
tests/zfs-tests/tests/functional/removal/removal_cancel.ksh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
#! /bin/ksh -p | ||
# | ||
# CDDL HEADER START | ||
# | ||
# This file and its contents are supplied under the terms of the | ||
# Common Development and Distribution License ("CDDL"), version 1.0. | ||
# You may only use this file in accordance with the terms of version | ||
# 1.0 of the CDDL. | ||
# | ||
# A full copy of the text of the CDDL should have accompanied this | ||
# source. A copy of the CDDL is also available via the Internet at | ||
# http://www.illumos.org/license/CDDL. | ||
# | ||
# CDDL HEADER END | ||
# | ||
|
||
# | ||
# Copyright (c) 2018 by Delphix. All rights reserved. | ||
# | ||
|
||
. $STF_SUITE/include/libtest.shlib | ||
. $STF_SUITE/tests/functional/removal/removal.kshlib | ||
|
||
# | ||
# DESCRIPTION: | ||
# | ||
# Ensure that cancelling a removal midway does not cause any | ||
# issues like cause a panic. | ||
# | ||
# STRATEGY: | ||
# | ||
# 1. Create a pool with one vdev and do some writes on it. | ||
# 2. Add a new vdev to the pool and start the removal of | ||
# the first vdev. | ||
# 3. Cancel the removal after some segments have been copied | ||
# over to the new vdev. | ||
# 4. Run zdb to ensure the on-disk state of the pool is ok. | ||
# | ||
|
||
function cleanup | ||
{ | ||
# | ||
# Reset tunable. | ||
# | ||
log_must set_tunable32 zfs_removal_suspend_progress 0 | ||
} | ||
log_onexit cleanup | ||
|
||
SAMPLEFILE=/$TESTDIR/00 | ||
|
||
# | ||
# Create pool with one disk. | ||
# | ||
log_must default_setup_noexit "$REMOVEDISK" | ||
|
||
# | ||
# Create a file of size 1GB and then do some random writes. | ||
# Since randwritecomp does 8K writes we do 12500 writes | ||
# which means we write ~100MB to the vdev. | ||
# | ||
log_must mkfile -n 1g $SAMPLEFILE | ||
log_must randwritecomp $SAMPLEFILE 12500 | ||
|
||
# | ||
# Add second device where all the data will be evacuated. | ||
# | ||
log_must zpool add -f $TESTPOOL $NOTREMOVEDISK | ||
|
||
# | ||
# Start removal. | ||
# | ||
log_must zpool remove $TESTPOOL $REMOVEDISK | ||
|
||
# | ||
# Sleep a bit and hopefully allow removal to copy some data. | ||
# | ||
log_must sleep 1 | ||
|
||
# | ||
# Block removal. | ||
# | ||
log_must set_tunable32 zfs_removal_suspend_progress 1 | ||
|
||
# | ||
# Only for debugging purposes in test logs. | ||
# | ||
log_must zpool status $TESTPOOL | ||
|
||
# | ||
# Cancel removal. | ||
# | ||
log_must zpool remove -s $TESTPOOL | ||
|
||
# | ||
# Verify on-disk state. | ||
# | ||
log_must zdb $TESTPOOL | ||
|
||
log_pass "Device removal thread cancelled successfully." |