[Gllug] Virtual disk allocation advice requested

Richard Jones rich at annexia.org
Thu Jul 3 09:24:13 UTC 2008


On Wed, Jul 02, 2008 at 04:26:30PM +0100, David L Neil Mailing list a/c wrote:
> Elsewhere Rich has suggested adding deliberate delays. Do you have other
> ideas?

NFS 'bg' option.

In reply to your other message about what services can be virtualized
and which ones cannot: All services can be virtualized, but for
services which have particularly high I/O requirements (eg. NFS
serving) you should be careful.

The issue is to do with context switching between domains.  For
example, suppose that you have a guest running the NFS server and
another guest using the NFS server, something like this:

  +----------------+----------------+----------------+
  | dom0           | NFS server     | using NFS      |
  |                |                |                |
  | bridge         |                |                |
  +----------------+----------------+----------------+

If the NFS server were running on baremetal, then any disk I/O or
network I/O it does goes straight out to the hardware.  However when
the NFS server is virtualized, the dom0 kernel is involved in actions
on behalf of the domain - eg. routing packets over the virtual network
and handling disk I/O.

So inevitably another guest using the NFS server involves a lot of
switching, something like this:

  +----------------+----------------+----------------+
  | dom0           | NFS server     | using NFS      |
  |                |                |                |
  | bridge         |                |                |
  +----------------+----------------+----------------+
          <---------- request ---------------
       routed by dom0
          ------ request --->
          <----- disk I/O ---
       handled by dom0
          ------ disk I/O -->
          <----- response ---
       routed by dom0
          ----------- response -------------->

Something like the above, I may have missed out or exaggerated some
context switches, but I think that single request/response turns into
on the order of 6 context switches.  The situation is much worse if
you're not paravirtualizing.

In practice this is noticably slow.  NFS over UDP was unusable when I
tried it, and NFS(v3) over TCP is usable but slow.

Rich.

-- 
Richard Jones
Red Hat
-- 
Gllug mailing list  -  Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug




More information about the GLLUG mailing list