All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chuck Lever <chuck.lever@oracle.com>
To: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>,
	"J. Bruce Fields" <bfields@fieldses.org>,
	Steve Dickson <SteveD@redhat.com>,
	Linux NFS Mailing List <linux-nfs@vger.kernel.org>,
	Matt Benjamin <mbenjami@redhat.com>,
	Jeff Layton <jlayton@redhat.com>
Subject: Re: [PATCH nfs-utils v3 00/14] add NFS over AF_VSOCK support
Date: Tue, 19 Sep 2017 10:35:49 -0400	[thread overview]
Message-ID: <67608054-B771-44F4-8B2F-5F7FDC506CDD@oracle.com> (raw)
In-Reply-To: <20170919093140.GF9536@redhat.com>


> On Sep 19, 2017, at 5:31 AM, Daniel P. Berrange <berrange@redhat.com> wrote:
> 
> On Mon, Sep 18, 2017 at 07:09:27PM +0100, Stefan Hajnoczi wrote:
>> On Sat, Sep 16, 2017 at 08:55:21AM -0700, Chuck Lever wrote:
>>> 
>>>> On Sep 15, 2017, at 9:42 AM, J. Bruce Fields <bfields@fieldses.org> wrote:
>>>> 
>>>> On Fri, Sep 15, 2017 at 06:59:45AM -0700, Chuck Lever wrote:
>>>>> 
>>>>>> On Sep 15, 2017, at 6:31 AM, J . Bruce Fields <bfields@fieldses.org> wrote:
>>>>>> 
>>>>>> On Fri, Sep 15, 2017 at 02:12:24PM +0100, Stefan Hajnoczi wrote:
>>>>>>> On Thu, Sep 14, 2017 at 01:37:30PM -0400, J . Bruce Fields wrote:
>>>>>>>> On Thu, Sep 14, 2017 at 11:55:51AM -0400, Steve Dickson wrote:
>>>>>>>>> On 09/14/2017 11:39 AM, Steve Dickson wrote:
>>>>>>>>>> Hello
>>>>>>>>>> 
>>>>>>>>>> On 09/13/2017 06:26 AM, Stefan Hajnoczi wrote:
>>>>>>>>>>> v3:
>>>>>>>>>>> * Documented vsock syntax in exports.man, nfs.man, and nfsd.man
>>>>>>>>>>> * Added clientaddr autodetection in mount.nfs(8)
>>>>>>>>>>> * Replaced #ifdefs with a single vsock.h header file
>>>>>>>>>>> * Tested nfsd serving both IPv4 and vsock at the same time
>>>>>>>>>> Just curious as to the status of the kernel patches... Are
>>>>>>>>>> they slated for any particular release?
>>>>>>>>> Maybe I should have read the thread before replying ;-) 
>>>>>>>>> 
>>>>>>>>> I now see the status of the patches... not good!  8-)
>>>>>>>> 
>>>>>>>> To be specific, the code itself is probably fine, it's just that nobody
>>>>>>>> on the NFS side seems convinced that NFS/VSOCK is necessary.
>>>>>>> 
>>>>>>> Yes, the big question is whether the Linux NFS maintainers can see this
>>>>>>> feature being merged.  It allows host<->guest file sharing in a way that
>>>>>>> management tools can automate.
>>>>>>> 
>>>>>>> I have gotten feedback multiple times that NFS over TCP/IP is not an
>>>>>>> option for management tools like libvirt to automate.
>>>>>> 
>>>>>> We're having trouble understanding why this is.
>>>>> 
>>>>> I'm also having trouble understanding why NFS is a better solution
>>>>> in this case than a virtual disk, which does not require any net-
>>>>> working to be configured. What exactly is expected to be shared
>>>>> between the hypervisor and each guest?
>>>> 
>>>> They have said before there are uses for storage that's actually shared.
>>>> (And I assume it would be mainly shared between guests rather than
>>>> between guest and hypervisor?)
>>> 
>>> But this works today with IP-based networking. We certainly use
>>> this kind of arrangement with OVM (Oracle's Xen-based hypervisor).
>>> I agree NFS in the hypervisor is useful in interesting cases, but
>>> I'm separating the need for a local NFS service with the need for
>>> it to be zero-configuration.
>>> 
>>> The other use case that's been presented for NFS/VSOCK is an NFS
>>> share that contains configuration information for each guest (in
>>> particular, network configuration information). This is the case
>>> I refer to above when I ask whether this can be done with a
>>> virtual disk.
>>> 
>>> I don't see any need for concurrent access by the hypervisor and
>>> guest, and one presumably should not share a guest's specific
>>> configuration information with other guests. There would be no
>>> sharing requirement, and therefore I would expect a virtual disk
>>> filesystem would be adequate in this case and perhaps even
>>> preferred, being more secure and less complex.
>> 
>> There are 2 main use cases:
>> 
>> 1. Easy file sharing between host & guest
>> 
>>   It's true that a disk image can be used but that's often inconvenient
>>   when the data comes in individual files.  Making throwaway ISO or
>>   disk image from those files requires extra disk space, is slow, etc.
> 
> More critically, it cannot be easily live-updated for a running guest.
> Not all of the setup data that the hypervisor wants to share with the
> guest is boot-time only - some may be access repeatedly post boot &
> have a need to update it dynamically. Currently OpenStack can only
> satisfy this if using its network based metadata REST service, but
> many cloud operators refuse to deploy this because they are not happy
> with the guest and host sharing a LAN, leaving only the virtual disk
> option which can not support dynamic update.

Hi Daniel-

OK, but why can't the REST service run on VSOCK, for instance?

How is VSOCK different than guests and hypervisor sharing a LAN?
Would it be OK if the hypervisor and each guest shared a virtual
point-to-point IP network?

Can you elaborate on "they are not happy with the guests and host
sharing a LAN" ?


> If the admin takes any live snapshots of the guest, then this throwaway
> disk image has to be kept around for the lifetime of the snapshot too.
> We cannot just throw it away & re-generate it later when restoring the
> snapshot, because we canot guarantee the newly generated image would be
> byte-for-byte identical to the original one we generated due to possible
> changes in mkfs related tools.

Seems like you could create a loopback mount of a small file to
store configuration data. That would consume very little local
storage. I've done this already in the fedfs-utils-server package,
which creates small loopback mounted filesystems to contain FedFS
domain root directories, for example.

Sharing the disk serially is a little awkward, but not difficult.
You could use an automounter in the guest to grab that filesystem
when needed, then release it after a period of not being used.


>>   From a user perspective it's much nicer to point to a directory and
>>   have it shared with the guest.
>> 
>> 2. Using NFS over AF_VSOCK as an interface for a distributed file system
>>   like Ceph or Gluster.
>> 
>>   Hosting providers don't necessarily want to expose their distributed
>>   file system directly to the guest.  An NFS frontend presents an NFS
>>   file system to the guest.  The guest doesn't have access to the
>>   distributed file system configuration details or network access.  The
>>   hosting provider can even switch backend file systems without
>>   requiring guest configuration changes.

Notably, NFS can already support hypervisor file sharing and
gateway-ing to Ceph and Gluster. We agree that those are useful.
However VSOCK is not a pre-requisite for either of those use
cases.


--
Chuck Lever




  reply	other threads:[~2017-09-19 14:36 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-13 10:26 [PATCH nfs-utils v3 00/14] add NFS over AF_VSOCK support Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 01/14] mount: don't use IPPROTO_UDP for address resolution Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 02/14] nfs-utils: add vsock.h Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 03/14] nfs-utils: add AF_VSOCK support to sockaddr.h Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 04/14] mount: present AF_VSOCK addresses Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 05/14] mount: accept AF_VSOCK in nfs_verify_family() Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 06/14] mount: generate AF_VSOCK clientaddr Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 07/14] getport: recognize "vsock" netid Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 08/14] mount: AF_VSOCK address parsing Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 09/14] exportfs: introduce host_freeaddrinfo() Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 10/14] exportfs: add AF_VSOCK address parsing and printing Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 11/14] exportfs: add AF_VSOCK support to set_addrlist() Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 12/14] exportfs: add support for "vsock:" exports(5) syntax Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 13/14] nfsd: add --vsock (-v) option to nfsd Stefan Hajnoczi
2017-09-13 10:26 ` [PATCH nfs-utils v3 14/14] tests: add "vsock:" exports(5) test case Stefan Hajnoczi
2017-09-13 16:21 ` [PATCH nfs-utils v3 00/14] add NFS over AF_VSOCK support Christoph Hellwig
2017-09-13 18:18   ` [nfsv4] " David Noveck
2017-09-13 18:21     ` Chuck Lever
2017-09-15 11:52       ` Stefan Hajnoczi
2017-09-13 22:39 ` NeilBrown
2017-09-14 15:39 ` Steve Dickson
2017-09-14 15:55   ` Steve Dickson
2017-09-14 17:37     ` J . Bruce Fields
2017-09-15 11:07       ` Jeff Layton
2017-09-15 15:17         ` J . Bruce Fields
2017-09-15 23:29           ` NeilBrown
2017-09-16 14:55             ` J . Bruce Fields
2017-09-15 13:12       ` Stefan Hajnoczi
2017-09-15 13:31         ` J . Bruce Fields
2017-09-15 13:59           ` Chuck Lever
2017-09-15 16:42             ` J. Bruce Fields
2017-09-16 15:55               ` Chuck Lever
2017-09-18 18:09                 ` Stefan Hajnoczi
2017-09-19  9:31                   ` Daniel P. Berrange
2017-09-19 14:35                     ` Chuck Lever [this message]
2017-09-19 15:10                       ` Daniel P. Berrange
2017-09-19 15:48                         ` Chuck Lever
2017-09-19 16:44                           ` Daniel P. Berrange
2017-09-19 17:24                             ` J. Bruce Fields
2017-09-21 17:00                               ` Stefan Hajnoczi
2017-09-22  9:55                                 ` Steven Whitehouse
2017-09-22 11:32                                   ` Jeff Layton
2017-09-22 12:08                                     ` Matt Benjamin
2017-09-22 12:26                                       ` Jeff Layton
2017-09-22 15:28                                         ` Stefan Hajnoczi
2017-09-22 16:23                                           ` Daniel P. Berrange
2017-09-22 18:31                                             ` Chuck Lever
2017-09-25  8:14                                               ` Daniel P. Berrange
2017-09-25 10:31                                                 ` Chuck Lever
2017-09-22 11:43                                   ` Chuck Lever
2017-09-22 11:55                                     ` Daniel P. Berrange
2017-09-22 12:00                                       ` Chuck Lever
2017-09-22 12:10                                         ` Daniel P. Berrange
2017-09-22 19:14                                       ` J. Bruce Fields
2017-09-25  8:30                                         ` Daniel P. Berrange
2017-09-26  2:08                                       ` NeilBrown
2017-09-26  3:40                                         ` J. Bruce Fields
2017-09-26 10:56                                           ` Stefan Hajnoczi
2017-09-26 11:07                                             ` Daniel P. Berrange
2017-09-26 18:32                                             ` J. Bruce Fields
2017-09-27  0:45                                             ` NeilBrown
2017-09-27 13:05                                               ` Stefan Hajnoczi
2017-09-27 22:21                                                 ` NeilBrown
2017-09-28 10:44                                                   ` Stefan Hajnoczi
2017-09-27 13:35                                               ` J. Bruce Fields
2017-09-27 22:25                                                 ` NeilBrown
2017-09-26 13:39                                           ` J. Bruce Fields
2017-09-26 13:42                                             ` J. Bruce Fields
2017-09-27 12:22                                               ` Stefan Hajnoczi
2017-09-27 13:46                                                 ` J. Bruce Fields
2017-09-28 10:34                                                   ` Stefan Hajnoczi
2017-09-19 17:37                             ` Stefan Hajnoczi
2017-09-19 19:56                             ` Chuck Lever
2017-09-19 20:42                               ` J. Bruce Fields
2017-09-19 21:09                                 ` Chuck Lever
2017-09-20 13:16                                   ` J. Bruce Fields
2017-09-20 14:40                                     ` Chuck Lever
2017-09-20 14:45                                       ` J. Bruce Fields
2017-09-20 14:59                                         ` Chuck Lever
2017-09-20 15:25                                           ` Frank Filz
2017-09-20 18:17                                             ` Trond Myklebust
2017-09-20 18:34                                               ` bfields
2017-09-20 18:38                                                 ` Trond Myklebust
2017-09-21 16:20                                                 ` Stefan Hajnoczi
2017-09-20 14:58                                     ` Daniel P. Berrange
2017-09-20 16:39                                       ` J. Bruce Fields

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=67608054-B771-44F4-8B2F-5F7FDC506CDD@oracle.com \
    --to=chuck.lever@oracle.com \
    --cc=SteveD@redhat.com \
    --cc=berrange@redhat.com \
    --cc=bfields@fieldses.org \
    --cc=jlayton@redhat.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=mbenjami@redhat.com \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.