[LTP] [PATCH v3 2/2] Add test for data integrity over NFS
Petr Vorel
pvorel@suse.cz
Thu Dec 5 12:10:14 CET 2024
> Add NFS test which checks data integrity of random writes into a file,
> with both buffered and direct I/O.
> Signed-off-by: Martin Doucha <mdoucha@suse.cz>
> ---
> Changes since v1: Added TST_TIMEOUT
> Changes since v2: Force NFS blocksize to the underlying FS blocksize
> By default, NFS uses very large blocksize (up to 1MB) to optimize network
> communication. For the FS integrity test this means a significant slowdown
> because the size of the test file and I/O operations increase with
> blocksize. Autodetect the blocksize of the underlying filesystem and force
> the same value during NFS mount to speed things up.
> The TST_TIMEOUT value is calculated as worst-case scenario for 64KB
> blocksize. On reasonably modern x86_64 machines, the new tests take about
> 6 minutes to complete in total (with Btrfs, Ext4 and XFS being tested).
+1. I also did some testing. BTW TST_TIMEOUT is for single filesystem, thus 11
min is really safe enough even for slow machines like emulated risc-v.
> +++ b/testcases/network/nfs/nfs_stress/nfs10.sh
> @@ -0,0 +1,47 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +# Copyright (C) 2024 SUSE LLC <mdoucha@suse.cz>
> +#
> +# DESCRIPTION: Verify data integrity over NFS, with and without O_DIRECT
> +
> +TST_CNT=4
> +TST_SETUP="nfs10_setup"
> +TST_TESTFUNC="do_test"
> +TST_DEVICE_SIZE=1024
> +TST_TIMEOUT=660
> +
> +nfs10_setup()
> +{
> + local bsize=$(stat -f -c %s .)
> +
> + bsize=$(( $bsize < 1024 ? 1024 : $bsize ))
nit: this would work if stat is not installed (minimal systems) or fails for
some reason:
if [ -z "$bsize" ] || [ "$bsize" -lt 1024 ]; then
bsize=1024
fi
If you agree, I can change it during merge.
Otherwise LGTM.
Thank you!
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Kind regards,
Petr
> + NFS_MOUNT_OPTS="rsize=$bsize,wsize=$bsize"
> + nfs_setup
More information about the ltp
mailing list