Did we have any resolution to this issue? I suspect I might be facing a similar issue.

-alok

On Thu, Jul 23, 2020 at 4:03 AM Leave <yuanzhu1987@qq.com> wrote:

Hi,

When I use the nfs-ganesha with V3-stable, I found that if we use multiple clients(like 5 clients on different PC based on Vmware machine) to copy big file(like 1G) at the same time by the NFSv4, the "Input/output error" is occured on the client. We cannot find any log about the error in the log of the server.
But if we copy the file one by one, this error is not seen. we tried many times, include xfs or ext4, the error occured with high probability when: 1.multi-clients copy large files at the same time 2.mount with NFSV4
And if we use NFSv3, this error is not seen.
Could you please give us some clue about this problem?
ps: we used FSAL_VFS.

error(some clients may didnot occured, but some did with high probability):

[root@localhost kpfadmin]# cp 1G t2/
cp: error writing 't2/1G': Input/output error
cp: failed to close 't2/1G': Input/output error

OS:
Centos 8.1-1911
Linux localhost.localdomain 4.18.0-147.el8.x86_64 #1 SMP Wed Dec 4 21:51:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

client mount like:

10.10.1.184:    mount -t nfs4 10.10.1.183:/t3 t4/ 
10.10.1.185:    mount -t nfs4 10.10.1.183:/t4 t4/
10.10.1.186:    mount -t nfs4 10.10.1.183:/t5 t5/
10.10.1.187:    mount -t nfs4 10.10.1.183:/t5 t5/

server(ganesha.conf):

###################################################
#
# Ganesha Config Example
#
# This is a commented example configuration file for Ganesha.  It is not
# complete, but only has some common configuration options.  See the man pages
# for complete documentation.
#
###################################################

## These are core parameters that affect Ganesha as a whole.
#NFS_CORE_PARAM {
	## Allow NFSv3 to mount paths with the Pseudo path, the same as NFSv4,
	## instead of using the physical paths.
	#mount_path_pseudo = true;

	## Configure the protocols that Ganesha will listen for.  This is a hard
	## limit, as this list determines which sockets are opened.  This list
	## can be restricted per export, but cannot be expanded.
	#Protocols = 3,4,9P;
#}

## These are defaults for exports.  They can be overridden per-export.
#EXPORT_DEFAULTS {
	## Access type for clients.  Default is None, so some access must be
	## given either here or in the export itself.
	#Access_Type = RW;
#}

## Configure settings for the object handle cache
#MDCACHE {
	## The point at which object cache entries will start being reused.
	#Entries_HWMark = 100000;
#}

EXPORT
{
        ## Export Id (mandatory, each EXPORT must have a unique Export_Id)
        Export_Id = 1001;

        ## Exported path (mandatory)
        Path = /home/kpfadmin/t1;

        ## Pseudo Path (required for NFSv4 or if mount_path_pseudo = true)
        Pseudo = /t1;

        ## Restrict the protocols that may use this export.  This cannot allow
        ## access that is denied in NFS_CORE_PARAM.
        Protocols = 3,4;

        ## Access type for clients.  Default is None, so some access must be
        ## given. It can be here, in the EXPORT_DEFAULTS, or in a CLIENT block
        Access_Type = RW;

        ## Whether to squash various users.
        Squash = root_squash;

        ## Allowed security types for this export
        #Sectype = sys,krb5,krb5i,krb5p;

        ## Exporting FSAL
        FSAL {
                Name = VFS;
        }
}



## Configure an export for some file tree
EXPORT
{
	## Export Id (mandatory, each EXPORT must have a unique Export_Id)
	Export_Id = 2;

	## Exported path (mandatory)
	Path = /home/kpfadmin/t2;

	## Pseudo Path (required for NFSv4 or if mount_path_pseudo = true)
	Pseudo = /t2;

	## Restrict the protocols that may use this export.  This cannot allow
	## access that is denied in NFS_CORE_PARAM.
	Protocols = 3,4;

	## Access type for clients.  Default is None, so some access must be
	## given. It can be here, in the EXPORT_DEFAULTS, or in a CLIENT block
	Access_Type = RW;

	## Whether to squash various users.
	Squash = root_squash;

	## Allowed security types for this export
	#Sectype = sys,krb5,krb5i,krb5p;

	## Exporting FSAL
	FSAL {
		Name = VFS;
	}
}

## Configure an export for some file tree
EXPORT
{
        ## Export Id (mandatory, each EXPORT must have a unique Export_Id)
        Export_Id = 3;

        ## Exported path (mandatory)
        Path = /home/kpfadmin/t3;

        ## Pseudo Path (required for NFSv4 or if mount_path_pseudo = true)
        Pseudo = /t3;

        ## Restrict the protocols that may use this export.  This cannot allow
        ## access that is denied in NFS_CORE_PARAM.
        Protocols = 3,4;

        ## Access type for clients.  Default is None, so some access must be
        ## given. It can be here, in the EXPORT_DEFAULTS, or in a CLIENT block
        Access_Type = RW;

        ## Whether to squash various users.
        Squash = root_squash;

        ## Allowed security types for this export
        #Sectype = sys,krb5,krb5i,krb5p;

        ## Exporting FSAL
        FSAL {
                Name = VFS;
        }
}

## Configure an export for some file tree
EXPORT
{
        ## Export Id (mandatory, each EXPORT must have a unique Export_Id)
        Export_Id = 4;

        ## Exported path (mandatory)
        Path = /home/kpfadmin/t4;

        ## Pseudo Path (required for NFSv4 or if mount_path_pseudo = true)
        Pseudo = /t4;

        ## Restrict the protocols that may use this export.  This cannot allow
        ## access that is denied in NFS_CORE_PARAM.
        Protocols = 3,4;

        ## Access type for clients.  Default is None, so some access must be
        ## given. It can be here, in the EXPORT_DEFAULTS, or in a CLIENT block
        Access_Type = RW;

        ## Whether to squash various users.
        Squash = root_squash;

        ## Allowed security types for this export
        #Sectype = sys,krb5,krb5i,krb5p;

        ## Exporting FSAL
        FSAL {
                Name = VFS;
        }
}

## Configure an export for some file tree
EXPORT
{
        ## Export Id (mandatory, each EXPORT must have a unique Export_Id)
        Export_Id = 5;

        ## Exported path (mandatory)
        Path = /home/kpfadmin/t5;

        ## Pseudo Path (required for NFSv4 or if mount_path_pseudo = true)
        Pseudo = /t5;

        ## Restrict the protocols that may use this export.  This cannot allow
        ## access that is denied in NFS_CORE_PARAM.
        Protocols = 3,4;

        ## Access type for clients.  Default is None, so some access must be
        ## given. It can be here, in the EXPORT_DEFAULTS, or in a CLIENT block
        Access_Type = RW;

        ## Whether to squash various users.
        Squash = root_squash;

        ## Allowed security types for this export
        #Sectype = sys,krb5,krb5i,krb5p;

        ## Exporting FSAL
        FSAL {
                Name = VFS;
        }
}

## Configure logging.  Default is to log to Syslog.  Basic logging can also be
## configured from the command line
LOG {
	## Default log level for all components
	Default_Log_Level = WARN;

	## Configure per-component log levels.
	#Components {
		#FSAL = INFO;
		#NFS4 = EVENT;
	#}

	## Where to log
	Facility {
		name = FILE;
		destination = "/var/log/ganesha.log";
		enable = active;
	}
}

_______________________________________________
Devel mailing list -- devel@lists.nfs-ganesha.org
To unsubscribe send an email to devel-leave@lists.nfs-ganesha.org