linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* NFS client virtualization plan v2
@ 2011-09-12 13:59 Stanislav Kinsbursky
  2011-09-12 14:50 ` Chuck Lever
  0 siblings, 1 reply; 3+ messages in thread
From: Stanislav Kinsbursky @ 2011-09-12 13:59 UTC (permalink / raw)
  To: Pavel Emelianov, linux-nfs@vger.kernel.org

Hello.
This is an update for this plan. Added rpc_pipefs and NFS cache virtualization.

==============================================================================

"NFS client" virtualization plan:

_RPC layer_:

1) Make rpcbind clients (rpcb_local_clnt and rpcb_local4_clnt) to be
per net namespace.

2) Make RPC pipefs to be per net namespace.

_NFS layer_:

1) Net namespace inheritance (current->nsproxy->net have to be used instead
of init_net).
Pointer to net namespace can be stored on nfs_client structure, which will
give easy access to proper net namespace during RPC transports creation.

2) Make Lockd kthread able to handle requests from different net namespaces.

3) Make NFS callbacks kthreads (nfs4_callback_svc and nfs4.1_callback_svc) able
to handle requests from different net namespaces.

4) Make NFS info lists (nfs_volume_list and nfs_client_list) to be per
net namespace in addition to global ones.

5) Make NFS proc variables and it's internal content variables to be per
net namespace in addition to global ones.

6) Make NFS sysctl variables and it's internal content variables to be per
net namespace in addition to global ones.

7) Make NFS cache per net namespace.



-- 
Best regards,
Stanislav Kinsbursky
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: NFS client virtualization plan v2
  2011-09-12 13:59 NFS client virtualization plan v2 Stanislav Kinsbursky
@ 2011-09-12 14:50 ` Chuck Lever
  2011-09-12 15:03   ` Stanislav Kinsbursky
  0 siblings, 1 reply; 3+ messages in thread
From: Chuck Lever @ 2011-09-12 14:50 UTC (permalink / raw)
  To: Stanislav Kinsbursky; +Cc: Pavel Emelianov, linux-nfs@vger.kernel.org


On Sep 12, 2011, at 9:59 AM, Stanislav Kinsbursky wrote:

> Hello.
> This is an update for this plan. Added rpc_pipefs and NFS cache virtualization.

You may need a per-net namespace NSM monitor list as well.  That means running a per-namespace statd, each with its own local sm and sm.bak directories, and keeping the in-kernel monitor information sorted by namespace.

The caller_name argument of NLM_LOCK needs to be the namespace's local utsname, and this string should be used as the my_name argument when sending an SM_MON upcall.  I've got a patch or two that make this simpler.

> ==============================================================================
> 
> "NFS client" virtualization plan:
> 
> _RPC layer_:
> 
> 1) Make rpcbind clients (rpcb_local_clnt and rpcb_local4_clnt) to be
> per net namespace.
> 
> 2) Make RPC pipefs to be per net namespace.
> 
> _NFS layer_:
> 
> 1) Net namespace inheritance (current->nsproxy->net have to be used instead
> of init_net).
> Pointer to net namespace can be stored on nfs_client structure, which will
> give easy access to proper net namespace during RPC transports creation.
> 
> 2) Make Lockd kthread able to handle requests from different net namespaces.
> 
> 3) Make NFS callbacks kthreads (nfs4_callback_svc and nfs4.1_callback_svc) able
> to handle requests from different net namespaces.
> 
> 4) Make NFS info lists (nfs_volume_list and nfs_client_list) to be per
> net namespace in addition to global ones.
> 
> 5) Make NFS proc variables and it's internal content variables to be per
> net namespace in addition to global ones.
> 
> 6) Make NFS sysctl variables and it's internal content variables to be per
> net namespace in addition to global ones.
> 
> 7) Make NFS cache per net namespace.
> 
> 
> 
> -- 
> Best regards,
> Stanislav Kinsbursky
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: NFS client virtualization plan v2
  2011-09-12 14:50 ` Chuck Lever
@ 2011-09-12 15:03   ` Stanislav Kinsbursky
  0 siblings, 0 replies; 3+ messages in thread
From: Stanislav Kinsbursky @ 2011-09-12 15:03 UTC (permalink / raw)
  To: Chuck Lever; +Cc: Pavel Emelianov, linux-nfs@vger.kernel.org

12.09.2011 18:50, Chuck Lever пишет:
>
> On Sep 12, 2011, at 9:59 AM, Stanislav Kinsbursky wrote:
>
>> Hello.
>> This is an update for this plan. Added rpc_pipefs and NFS cache virtualization.
>
> You may need a per-net namespace NSM monitor list as well.  That means running a per-namespace statd, each with its own local sm and sm.bak directories, and keeping the in-kernel monitor information sorted by namespace.
>
> The caller_name argument of NLM_LOCK needs to be the namespace's local utsname, and this string should be used as the my_name argument when sending an SM_MON upcall.  I've got a patch or two that make this simpler.
>

Great. Thanks for advise, Chuck.
Right now this part of the code is not clear enough for me and I'm mainly 
concentrated on rpcbind and pipefs.
Hope for your assistance later when I'll get to the point (if any problems occur).

>> ==============================================================================
>>
>> "NFS client" virtualization plan:
>>
>> _RPC layer_:
>>
>> 1) Make rpcbind clients (rpcb_local_clnt and rpcb_local4_clnt) to be
>> per net namespace.
>>
>> 2) Make RPC pipefs to be per net namespace.
>>
>> _NFS layer_:
>>
>> 1) Net namespace inheritance (current->nsproxy->net have to be used instead
>> of init_net).
>> Pointer to net namespace can be stored on nfs_client structure, which will
>> give easy access to proper net namespace during RPC transports creation.
>>
>> 2) Make Lockd kthread able to handle requests from different net namespaces.
>>
>> 3) Make NFS callbacks kthreads (nfs4_callback_svc and nfs4.1_callback_svc) able
>> to handle requests from different net namespaces.
>>
>> 4) Make NFS info lists (nfs_volume_list and nfs_client_list) to be per
>> net namespace in addition to global ones.
>>
>> 5) Make NFS proc variables and it's internal content variables to be per
>> net namespace in addition to global ones.
>>
>> 6) Make NFS sysctl variables and it's internal content variables to be per
>> net namespace in addition to global ones.
>>
>> 7) Make NFS cache per net namespace.
>>
>>
>>
>> --
>> Best regards,
>> Stanislav Kinsbursky
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
> --
> Chuck Lever
> chuck[dot]lever[at]oracle[dot]com
>
>
>


-- 
Best regards,
Stanislav Kinsbursky

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-09-12 15:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-12 13:59 NFS client virtualization plan v2 Stanislav Kinsbursky
2011-09-12 14:50 ` Chuck Lever
2011-09-12 15:03   ` Stanislav Kinsbursky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).