From: Kevin Wolf <kwolf@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, peter.maydell@linaro.org, qemu-devel@nongnu.org
Subject: [PULL 10/10] block: deprecate the sheepdog block driver
Date: Thu, 15 Oct 2020 16:49:52 +0200 [thread overview]
Message-ID: <20201015144952.388043-11-kwolf@redhat.com> (raw)
In-Reply-To: <20201015144952.388043-1-kwolf@redhat.com>
From: Daniel P. Berrangé <berrange@redhat.com>
This thread from a little over a year ago:
http://lists.wpkg.org/pipermail/sheepdog/2019-March/thread.html
states that sheepdog is no longer actively developed. The only mentioned
users are some companies who are said to have it for legacy reasons with
plans to replace it by Ceph. There is talk about cutting out existing
features to turn it into a simple demo of how to write a distributed
block service. There is no evidence of anyone working on that idea:
https://github.com/sheepdog/sheepdog/commits/master
No real commits to git since Jan 2018, and before then just some minor
technical debt cleanup.
There is essentially no activity on the mailing list aside from
patches to QEMU that get CC'd due to our MAINTAINERS entry.
Fedora packages for sheepdog failed to build from upstream source
because of the more strict linker that no longer merges duplicate
global symbols. Fedora patches it to add the missing "extern"
annotations and presumably other distros do to, but upstream source
remains broken.
There is only basic compile testing, no functional testing of the
driver.
Since there are no build pre-requisites the sheepdog driver is currently
enabled unconditionally. This would result in configure issuing a
deprecation warning by default for all users. Thus the configure default
is changed to disable it, requiring users to pass --enable-sheepdog to
build the driver.
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20201002113243.2347710-3-berrange@redhat.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
docs/system/deprecated.rst | 9 +++++++++
configure | 5 +++--
block/sheepdog.c | 14 ++++++++++++++
3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 09ec8b1ae8..2ac3bfd5e9 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -390,6 +390,15 @@ The above, converted to the current supported format::
json:{"file.driver":"rbd", "file.pool":"rbd", "file.image":"name"}
+``sheepdog`` driver (since 5.2.0)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The ``sheepdog`` block device driver is deprecated. The corresponding upstream
+server project is no longer actively maintained. Users are recommended to switch
+to an alternative distributed block device driver such as RBD. The
+``qemu-img convert`` command can be used to liberate existing data by moving
+it out of sheepdog volumes into an alternative storage backend.
+
linux-user mode CPUs
--------------------
diff --git a/configure b/configure
index f839c2a557..f498a37f9a 100755
--- a/configure
+++ b/configure
@@ -433,7 +433,7 @@ vdi="yes"
vvfat="yes"
qed="yes"
parallels="yes"
-sheepdog="yes"
+sheepdog="no"
libxml2=""
debug_mutex="no"
libpmem=""
@@ -1830,7 +1830,7 @@ disabled with --disable-FEATURE, default is enabled if available:
vvfat vvfat image format support
qed qed image format support
parallels parallels image format support
- sheepdog sheepdog block driver support
+ sheepdog sheepdog block driver support (deprecated)
crypto-afalg Linux AF_ALG crypto backend driver
capstone capstone disassembler support
debug-mutex mutex debugging support
@@ -6729,6 +6729,7 @@ if test "$parallels" = "yes" ; then
echo "CONFIG_PARALLELS=y" >> $config_host_mak
fi
if test "$sheepdog" = "yes" ; then
+ add_to deprecated_features "sheepdog"
echo "CONFIG_SHEEPDOG=y" >> $config_host_mak
fi
if test "$pty_h" = "yes" ; then
diff --git a/block/sheepdog.c b/block/sheepdog.c
index 25111d5a70..a45c73826d 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -242,6 +242,16 @@ typedef struct SheepdogInode {
*/
#define FNV1A_64_INIT ((uint64_t)0xcbf29ce484222325ULL)
+static void deprecation_warning(void)
+{
+ static bool warned;
+
+ if (!warned) {
+ warn_report("the sheepdog block driver is deprecated");
+ warned = true;
+ }
+}
+
/*
* 64 bit Fowler/Noll/Vo FNV-1a hash code
*/
@@ -1548,6 +1558,8 @@ static int sd_open(BlockDriverState *bs, QDict *options, int flags,
char *buf = NULL;
QemuOpts *opts;
+ deprecation_warning();
+
s->bs = bs;
s->aio_context = bdrv_get_aio_context(bs);
@@ -2007,6 +2019,8 @@ static int sd_co_create(BlockdevCreateOptions *options, Error **errp)
assert(options->driver == BLOCKDEV_DRIVER_SHEEPDOG);
+ deprecation_warning();
+
s = g_new0(BDRVSheepdogState, 1);
/* Steal SocketAddress from QAPI, set NULL to prevent double free */
--
2.28.0
next prev parent reply other threads:[~2020-10-15 14:59 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-15 14:49 [PULL 00/10] Block layer patches Kevin Wolf
2020-10-15 14:49 ` [PULL 01/10] keyval: Fix and clarify grammar Kevin Wolf
2020-10-15 14:49 ` [PULL 02/10] test-keyval: Demonstrate misparse of ', ' with implied key Kevin Wolf
2020-10-15 14:49 ` [PULL 03/10] keyval: Fix parsing of ',' in value of " Kevin Wolf
2020-10-15 14:49 ` [PULL 04/10] keyval: Parse help options Kevin Wolf
2020-10-15 14:49 ` [PULL 05/10] qom: Factor out helpers from user_creatable_print_help() Kevin Wolf
2020-10-15 14:49 ` [PULL 06/10] qom: Add user_creatable_print_help_from_qdict() Kevin Wolf
2020-10-15 14:49 ` [PULL 07/10] qemu-storage-daemon: Remove QemuOpts from --object parser Kevin Wolf
2020-10-15 14:49 ` [PULL 08/10] monitor: Fix order in monitor_cleanup() Kevin Wolf
2020-10-15 14:49 ` [PULL 09/10] block: drop moderated sheepdog mailing list from MAINTAINERS file Kevin Wolf
2020-10-15 14:49 ` Kevin Wolf [this message]
2020-10-16 19:06 ` [PULL 00/10] Block layer patches Peter Maydell
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=20201015144952.388043-11-kwolf@redhat.com \
--to=kwolf@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.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).