linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: linux-nfs@vger.kernel.org
Subject: pnfs: add CB_NOTIFY_DEVICEID support V2
Date: Wed, 10 Sep 2014 17:37:23 -0700	[thread overview]
Message-ID: <1410395848-2437-1-git-send-email-hch@lst.de> (raw)

This series adds support for device change notifications to the pnfs core
and block layout driver.  To properly implement NOTIFY_DEVICEID4_CHANGE I
had to move GETDEVICEINFO decoding into kernel space, and implement my own
trivial striping and concat layers in the pnfs blocklayout client.  Why?
DM and MD are really, really unhappy about multiple raid devices using the
same physical devices.  Which is fairly understandable from their point of
view, given that they normally manage on-disk metadata and would rather do
that exclusively.  But we get all our metadata from the server and couldn't
care less about their problems, we have our own problem called deviceid
management..  Once we get a NOTIFY_DEVICEID4_CHANGE callback we need
to stop new I/O using the existing mapping, so we have to drop it from
the deviceid cache.  At the same time another layout could easily request
the same deviceid again and for some period we'd have multiple volume
structures pointing to the same device.

Note that we do not break userspace compatibility - we still use blkmapd
to translate signatures to device numbers, and to do so we re-encode the
SIMPLE volumes we need translated to XDR and send it up to blkmapd just
for that.

This work was sponsored by NetApp, Inc.

Changes since V1:
 - support CB_NOTIFY_DEVICEID unconditionally


             reply	other threads:[~2014-09-11  0:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-11  0:37 Christoph Hellwig [this message]
2014-09-11  0:37 ` [PATCH 1/5] pnfs/blocklayout: move extent processing to blocklayout.c Christoph Hellwig
2014-09-11  0:37 ` [PATCH 2/5] pnfs/blocklayout: refactor extent processing Christoph Hellwig
2014-09-11  0:37 ` [PATCH 3/5] pnfs/blocklayout: move all rpc_pipefs related code into a single file Christoph Hellwig
2014-09-11  0:37 ` [PATCH 4/5] pnfs/blocklayout: in-kernel GETDEVICEINFO XDR parsing Christoph Hellwig
2014-09-11  0:37 ` [PATCH 5/5] pnfs: enable CB_NOTIFY_DEVICEID support Christoph Hellwig

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=1410395848-2437-1-git-send-email-hch@lst.de \
    --to=hch@lst.de \
    --cc=linux-nfs@vger.kernel.org \
    /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 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).