2018-10-26 12:54:34

by Olga Kornievskaia

[permalink] [raw]
Subject: copy offload support and absent file system

Hi Chuck,

In the context of doing a copy between different "types" of
filesystems, it was pointed out to me that NFS has many types:
nfs4_fs_type, nfs4_remote_fs_type, nfs4_remote_referral_fs_type,
nfs4_referral_fs_type. So doing a simple check that fs type of "in"
and "out" might not be sufficient. Do you see any issues allowing a
copy offload between different types? Basically checking that "in" and
"out" descriptions come from any of the these types?

Thank you.


2018-10-26 15:04:46

by Chuck Lever III

[permalink] [raw]
Subject: Re: copy offload support and absent file system



> On Oct 26, 2018, at 8:54 AM, Olga Kornievskaia <[email protected]> wrote:
>
> Hi Chuck,
>
> In the context of doing a copy between different "types" of
> filesystems, it was pointed out to me that NFS has many types:
> nfs4_fs_type, nfs4_remote_fs_type, nfs4_remote_referral_fs_type,
> nfs4_referral_fs_type. So doing a simple check that fs type of "in"
> and "out" might not be sufficient. Do you see any issues allowing a
> copy offload between different types? Basically checking that "in" and
> "out" descriptions come from any of the these types?

I'm no expert... so what follows is an uninformed opinion.

All of these are NFSv4 file systems. But I don't think that's an
adequate check (it's necessary, but not sufficient).

The minor version of the mount point has to be 2 or higher, and
the client must confirm that the mounted server supports copy
offload (because all NFSv4.2 features are OPTIONAL).


--
Chuck Lever




2018-10-26 15:39:53

by Olga Kornievskaia

[permalink] [raw]
Subject: Re: copy offload support and absent file system

On Fri, Oct 26, 2018 at 11:04 AM Chuck Lever <[email protected]> wrote:
>
>
>
> > On Oct 26, 2018, at 8:54 AM, Olga Kornievskaia <[email protected]> wrote:
> >
> > Hi Chuck,
> >
> > In the context of doing a copy between different "types" of
> > filesystems, it was pointed out to me that NFS has many types:
> > nfs4_fs_type, nfs4_remote_fs_type, nfs4_remote_referral_fs_type,
> > nfs4_referral_fs_type. So doing a simple check that fs type of "in"
> > and "out" might not be sufficient. Do you see any issues allowing a
> > copy offload between different types? Basically checking that "in" and
> > "out" descriptions come from any of the these types?
>
> I'm no expert... so what follows is an uninformed opinion.

I was wondering if there was anything different about the
migrated/replicated filesystem that maybe say they are typically
read-only and thus doing a copy there wouldn't be appropriate. But it
sounds like you don't see anything special about doing a copy from
nfs4_fs_type to say nfs_remote_fs_type?

> All of these are NFSv4 file systems. But I don't think that's an
> adequate check (it's necessary, but not sufficient).


> The minor version of the mount point has to be 2 or higher, and
> the client must confirm that the mounted server supports copy
> offload (because all NFSv4.2 features are OPTIONAL).

I agree that we should check for 4.2 versioning but the latter I don't
think is necessary, as the COPY call will just gets not supported
error (we already have the capability check for CAP_COPY inside of
nfs42_proc_copy , just in case we already sent one copy and then
negated the capabilities).

>
>
> --
> Chuck Lever
>
>
>

2018-10-26 15:44:11

by Chuck Lever III

[permalink] [raw]
Subject: Re: copy offload support and absent file system



> On Oct 26, 2018, at 11:39 AM, Olga Kornievskaia <[email protected]> wrote:
>
> On Fri, Oct 26, 2018 at 11:04 AM Chuck Lever <[email protected]> wrote:
>>
>>
>>
>>> On Oct 26, 2018, at 8:54 AM, Olga Kornievskaia <[email protected]> wrote:
>>>
>>> Hi Chuck,
>>>
>>> In the context of doing a copy between different "types" of
>>> filesystems, it was pointed out to me that NFS has many types:
>>> nfs4_fs_type, nfs4_remote_fs_type, nfs4_remote_referral_fs_type,
>>> nfs4_referral_fs_type. So doing a simple check that fs type of "in"
>>> and "out" might not be sufficient. Do you see any issues allowing a
>>> copy offload between different types? Basically checking that "in" and
>>> "out" descriptions come from any of the these types?
>>
>> I'm no expert... so what follows is an uninformed opinion.
>
> I was wondering if there was anything different about the
> migrated/replicated filesystem that maybe say they are typically
> read-only and thus doing a copy there wouldn't be appropriate. But it
> sounds like you don't see anything special about doing a copy from
> nfs4_fs_type to say nfs_remote_fs_type?

If I recall correctly the distinction between these "types" is
the way they are attached to the client's filesystem namespace.
I don't believe that would have any impact on whether copy
offload is supported or not.


>> All of these are NFSv4 file systems. But I don't think that's an
>> adequate check (it's necessary, but not sufficient).
>
>
>> The minor version of the mount point has to be 2 or higher, and
>> the client must confirm that the mounted server supports copy
>> offload (because all NFSv4.2 features are OPTIONAL).
>
> I agree that we should check for 4.2 versioning but the latter I don't
> think is necessary, as the COPY call will just gets not supported
> error (we already have the capability check for CAP_COPY inside of
> nfs42_proc_copy , just in case we already sent one copy and then
> negated the capabilities).

The COPY call could also return EROFS if the destination filesystem
is a read-only replica.

--
Chuck Lever




2018-10-26 16:02:10

by Olga Kornievskaia

[permalink] [raw]
Subject: Re: copy offload support and absent file system

On Fri, Oct 26, 2018 at 11:44 AM Chuck Lever <[email protected]> wrote:
>
>
>
> > On Oct 26, 2018, at 11:39 AM, Olga Kornievskaia <[email protected]> wrote:
> >
> > On Fri, Oct 26, 2018 at 11:04 AM Chuck Lever <[email protected]> wrote:
> >>
> >>
> >>
> >>> On Oct 26, 2018, at 8:54 AM, Olga Kornievskaia <[email protected]> wrote:
> >>>
> >>> Hi Chuck,
> >>>
> >>> In the context of doing a copy between different "types" of
> >>> filesystems, it was pointed out to me that NFS has many types:
> >>> nfs4_fs_type, nfs4_remote_fs_type, nfs4_remote_referral_fs_type,
> >>> nfs4_referral_fs_type. So doing a simple check that fs type of "in"
> >>> and "out" might not be sufficient. Do you see any issues allowing a
> >>> copy offload between different types? Basically checking that "in" and
> >>> "out" descriptions come from any of the these types?
> >>
> >> I'm no expert... so what follows is an uninformed opinion.
> >
> > I was wondering if there was anything different about the
> > migrated/replicated filesystem that maybe say they are typically
> > read-only and thus doing a copy there wouldn't be appropriate. But it
> > sounds like you don't see anything special about doing a copy from
> > nfs4_fs_type to say nfs_remote_fs_type?
>
> If I recall correctly the distinction between these "types" is
> the way they are attached to the client's filesystem namespace.
> I don't believe that would have any impact on whether copy
> offload is supported or not.
>
>
> >> All of these are NFSv4 file systems. But I don't think that's an
> >> adequate check (it's necessary, but not sufficient).
> >
> >
> >> The minor version of the mount point has to be 2 or higher, and
> >> the client must confirm that the mounted server supports copy
> >> offload (because all NFSv4.2 features are OPTIONAL).
> >
> > I agree that we should check for 4.2 versioning but the latter I don't
> > think is necessary, as the COPY call will just gets not supported
> > error (we already have the capability check for CAP_COPY inside of
> > nfs42_proc_copy , just in case we already sent one copy and then
> > negated the capabilities).
>
> The COPY call could also return EROFS if the destination filesystem
> is a read-only replica.

In such case, I would hope that the OPEN of the destination file for
writing would fail and we won't even get to the COPY.

>
> --
> Chuck Lever
>
>
>