block: Drop the sheepdog block driver
It was deprecated in commit e1c4269763
, v5.2.0. See that commit
message for rationale.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20210501075747.3293186-1-armbru@redhat.com>
ACKed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
875bb7e35b
commit
09ec85176e
@ -342,7 +342,6 @@ build-disabled:
|
||||
--disable-replication
|
||||
--disable-sdl
|
||||
--disable-seccomp
|
||||
--disable-sheepdog
|
||||
--disable-slirp
|
||||
--disable-smartcard
|
||||
--disable-snappy
|
||||
|
@ -3072,12 +3072,6 @@ L: qemu-block@nongnu.org
|
||||
S: Supported
|
||||
F: block/rbd.c
|
||||
|
||||
Sheepdog
|
||||
M: Liu Yuan <namei.unix@gmail.com>
|
||||
L: qemu-block@nongnu.org
|
||||
S: Odd Fixes
|
||||
F: block/sheepdog.c
|
||||
|
||||
VHDX
|
||||
M: Jeff Cody <codyprime@gmail.com>
|
||||
L: qemu-block@nongnu.org
|
||||
|
@ -64,7 +64,6 @@ block_ss.add(when: 'CONFIG_POSIX', if_true: [files('file-posix.c'), coref, iokit
|
||||
block_ss.add(when: libiscsi, if_true: files('iscsi-opts.c'))
|
||||
block_ss.add(when: 'CONFIG_LINUX', if_true: files('nvme.c'))
|
||||
block_ss.add(when: 'CONFIG_REPLICATION', if_true: files('replication.c'))
|
||||
block_ss.add(when: 'CONFIG_SHEEPDOG', if_true: files('sheepdog.c'))
|
||||
block_ss.add(when: ['CONFIG_LINUX_AIO', libaio], if_true: files('linux-aio.c'))
|
||||
block_ss.add(when: ['CONFIG_LINUX_IO_URING', linux_io_uring], if_true: files('io_uring.c'))
|
||||
|
||||
|
3356
block/sheepdog.c
3356
block/sheepdog.c
File diff suppressed because it is too large
Load Diff
@ -207,19 +207,5 @@ file_FindEjectableOpticalMedia(const char *media) "Matching using %s"
|
||||
file_setup_cdrom(const char *partition) "Using %s as optical disc"
|
||||
file_hdev_is_sg(int type, int version) "SG device found: type=%d, version=%d"
|
||||
|
||||
# sheepdog.c
|
||||
sheepdog_reconnect_to_sdog(void) "Wait for connection to be established"
|
||||
sheepdog_aio_read_response(void) "disable cache since the server doesn't support it"
|
||||
sheepdog_open(uint32_t vid) "0x%" PRIx32 " snapshot inode was open"
|
||||
sheepdog_close(const char *name) "%s"
|
||||
sheepdog_create_branch_snapshot(uint32_t vdi) "0x%" PRIx32 " is snapshot"
|
||||
sheepdog_create_branch_created(uint32_t vdi) "0x%" PRIx32 " is created"
|
||||
sheepdog_create_branch_new(uint32_t vdi) "0x%" PRIx32 " was newly created"
|
||||
sheepdog_co_rw_vector_update(uint32_t vdi, uint64_t oid, uint64_t data, long idx) "update ino (%" PRIu32 ") %" PRIu64 " %" PRIu64 " %ld"
|
||||
sheepdog_co_rw_vector_new(uint64_t oid) "new oid 0x%" PRIx64
|
||||
sheepdog_snapshot_create_info(const char *sn_name, const char *id, const char *name, int64_t size, int is_snapshot) "sn_info: name %s id_str %s s: name %s vm_state_size %" PRId64 " " "is_snapshot %d"
|
||||
sheepdog_snapshot_create(const char *sn_name, const char *id) "%s %s"
|
||||
sheepdog_snapshot_create_inode(const char *name, uint32_t snap, uint32_t vdi) "s->inode: name %s snap_id 0x%" PRIx32 " vdi 0x%" PRIx32
|
||||
|
||||
# ssh.c
|
||||
sftp_error(const char *op, const char *ssh_err, int ssh_err_code, int sftp_err_code) "%s failed: %s (libssh error code: %d, sftp error code: %d)"
|
||||
|
10
configure
vendored
10
configure
vendored
@ -447,7 +447,6 @@ vdi=${default_feature:-yes}
|
||||
vvfat=${default_feature:-yes}
|
||||
qed=${default_feature:-yes}
|
||||
parallels=${default_feature:-yes}
|
||||
sheepdog="no"
|
||||
libxml2="$default_feature"
|
||||
debug_mutex="no"
|
||||
libpmem="$default_feature"
|
||||
@ -1478,10 +1477,6 @@ for opt do
|
||||
;;
|
||||
--enable-parallels) parallels="yes"
|
||||
;;
|
||||
--disable-sheepdog) sheepdog="no"
|
||||
;;
|
||||
--enable-sheepdog) sheepdog="yes"
|
||||
;;
|
||||
--disable-vhost-user) vhost_user="no"
|
||||
;;
|
||||
--enable-vhost-user) vhost_user="yes"
|
||||
@ -1916,7 +1911,6 @@ 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 (deprecated)
|
||||
crypto-afalg Linux AF_ALG crypto backend driver
|
||||
capstone capstone disassembler support
|
||||
debug-mutex mutex debugging support
|
||||
@ -6106,10 +6100,6 @@ fi
|
||||
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 "$have_mlockall" = "yes" ; then
|
||||
echo "HAVE_MLOCKALL=y" >> $config_host_mak
|
||||
fi
|
||||
|
@ -285,15 +285,6 @@ 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
|
||||
--------------------
|
||||
|
||||
|
@ -85,24 +85,6 @@ These are specified using a special URL syntax.
|
||||
Currently authentication must be done using ssh-agent. Other
|
||||
authentication methods may be supported in future.
|
||||
|
||||
``Sheepdog``
|
||||
Sheepdog is a distributed storage system for QEMU. QEMU supports
|
||||
using either local sheepdog devices or remote networked devices.
|
||||
|
||||
Syntax for specifying a sheepdog device
|
||||
|
||||
::
|
||||
|
||||
sheepdog[+tcp|+unix]://[host:port]/vdiname[?socket=path][#snapid|#tag]
|
||||
|
||||
Example
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|qemu_system| --drive file=sheepdog://192.0.2.1:30000/MyVirtualMachine
|
||||
|
||||
See also https://sheepdog.github.io/sheepdog/.
|
||||
|
||||
``GlusterFS``
|
||||
GlusterFS is a user space distributed file system. QEMU supports the
|
||||
use of GlusterFS volumes for hosting VM disk images using TCP, Unix
|
||||
|
@ -547,75 +547,6 @@ also available. Here are some example of the older syntax:
|
||||
|qemu_system| linux2.img -hdb nbd:unix:/tmp/my_socket
|
||||
|qemu_system| -cdrom nbd:localhost:10809:exportname=debian-500-ppc-netinst
|
||||
|
||||
|
||||
|
||||
Sheepdog disk images
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Sheepdog is a distributed storage system for QEMU. It provides highly
|
||||
available block level storage volumes that can be attached to
|
||||
QEMU-based virtual machines.
|
||||
|
||||
You can create a Sheepdog disk image with the command:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
qemu-img create sheepdog:///IMAGE SIZE
|
||||
|
||||
where *IMAGE* is the Sheepdog image name and *SIZE* is its
|
||||
size.
|
||||
|
||||
To import the existing *FILENAME* to Sheepdog, you can use a
|
||||
convert command.
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
qemu-img convert FILENAME sheepdog:///IMAGE
|
||||
|
||||
You can boot from the Sheepdog disk image with the command:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|qemu_system| sheepdog:///IMAGE
|
||||
|
||||
You can also create a snapshot of the Sheepdog image like qcow2.
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
qemu-img snapshot -c TAG sheepdog:///IMAGE
|
||||
|
||||
where *TAG* is a tag name of the newly created snapshot.
|
||||
|
||||
To boot from the Sheepdog snapshot, specify the tag name of the
|
||||
snapshot.
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|qemu_system| sheepdog:///IMAGE#TAG
|
||||
|
||||
You can create a cloned image from the existing snapshot.
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
qemu-img create -b sheepdog:///BASE#TAG sheepdog:///IMAGE
|
||||
|
||||
where *BASE* is an image name of the source snapshot and *TAG*
|
||||
is its tag name.
|
||||
|
||||
You can use an unix socket instead of an inet socket:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|qemu_system| sheepdog+unix:///IMAGE?socket=PATH
|
||||
|
||||
If the Sheepdog daemon doesn't run on the local host, you need to
|
||||
specify one of the Sheepdog servers to connect to.
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
qemu-img create sheepdog://HOSTNAME:PORT/IMAGE SIZE
|
||||
|qemu_system| sheepdog://HOSTNAME:PORT/IMAGE
|
||||
|
||||
iSCSI LUNs
|
||||
~~~~~~~~~~
|
||||
|
||||
|
@ -474,3 +474,10 @@ VXHS backend (removed in 5.1)
|
||||
'''''''''''''''''''''''''''''
|
||||
|
||||
The VXHS code did not compile since v2.12.0. It was removed in 5.1.
|
||||
|
||||
``sheepdog`` driver (removed in 6.0)
|
||||
''''''''''''''''''''''''''''''''''''
|
||||
|
||||
The corresponding upstream server project is no longer maintained.
|
||||
Users are recommended to switch to an alternative distributed block
|
||||
device driver such as RBD.
|
||||
|
@ -2634,7 +2634,6 @@ if have_block
|
||||
summary_info += {'vvfat support': config_host.has_key('CONFIG_VVFAT')}
|
||||
summary_info += {'qed support': config_host.has_key('CONFIG_QED')}
|
||||
summary_info += {'parallels support': config_host.has_key('CONFIG_PARALLELS')}
|
||||
summary_info += {'sheepdog support': config_host.has_key('CONFIG_SHEEPDOG')}
|
||||
summary_info += {'FUSE exports': fuse.found()}
|
||||
endif
|
||||
summary(summary_info, bool_yn: true, section: 'Block layer support')
|
||||
|
@ -2818,7 +2818,6 @@
|
||||
'luks', 'nbd', 'nfs', 'null-aio', 'null-co', 'nvme', 'parallels',
|
||||
'preallocate', 'qcow', 'qcow2', 'qed', 'quorum', 'raw', 'rbd',
|
||||
{ 'name': 'replication', 'if': 'defined(CONFIG_REPLICATION)' },
|
||||
'sheepdog',
|
||||
'ssh', 'throttle', 'vdi', 'vhdx', 'vmdk', 'vpc', 'vvfat' ] }
|
||||
|
||||
##
|
||||
@ -3651,26 +3650,6 @@
|
||||
'*key-secret': 'str',
|
||||
'*server': ['InetSocketAddressBase'] } }
|
||||
|
||||
##
|
||||
# @BlockdevOptionsSheepdog:
|
||||
#
|
||||
# Driver specific block device options for sheepdog
|
||||
#
|
||||
# @vdi: Virtual disk image name
|
||||
# @server: The Sheepdog server to connect to
|
||||
# @snap-id: Snapshot ID
|
||||
# @tag: Snapshot tag name
|
||||
#
|
||||
# Only one of @snap-id and @tag may be present.
|
||||
#
|
||||
# Since: 2.9
|
||||
##
|
||||
{ 'struct': 'BlockdevOptionsSheepdog',
|
||||
'data': { 'server': 'SocketAddress',
|
||||
'vdi': 'str',
|
||||
'*snap-id': 'uint32',
|
||||
'*tag': 'str' } }
|
||||
|
||||
##
|
||||
# @ReplicationMode:
|
||||
#
|
||||
@ -4037,7 +4016,6 @@
|
||||
'rbd': 'BlockdevOptionsRbd',
|
||||
'replication': { 'type': 'BlockdevOptionsReplication',
|
||||
'if': 'defined(CONFIG_REPLICATION)' },
|
||||
'sheepdog': 'BlockdevOptionsSheepdog',
|
||||
'ssh': 'BlockdevOptionsSsh',
|
||||
'throttle': 'BlockdevOptionsThrottle',
|
||||
'vdi': 'BlockdevOptionsGenericFormat',
|
||||
@ -4496,74 +4474,6 @@
|
||||
'*zeroed-grain': 'bool' } }
|
||||
|
||||
|
||||
##
|
||||
# @SheepdogRedundancyType:
|
||||
#
|
||||
# @full: Create a fully replicated vdi with x copies
|
||||
# @erasure-coded: Create an erasure coded vdi with x data strips and
|
||||
# y parity strips
|
||||
#
|
||||
# Since: 2.12
|
||||
##
|
||||
{ 'enum': 'SheepdogRedundancyType',
|
||||
'data': [ 'full', 'erasure-coded' ] }
|
||||
|
||||
##
|
||||
# @SheepdogRedundancyFull:
|
||||
#
|
||||
# @copies: Number of copies to use (between 1 and 31)
|
||||
#
|
||||
# Since: 2.12
|
||||
##
|
||||
{ 'struct': 'SheepdogRedundancyFull',
|
||||
'data': { 'copies': 'int' }}
|
||||
|
||||
##
|
||||
# @SheepdogRedundancyErasureCoded:
|
||||
#
|
||||
# @data-strips: Number of data strips to use (one of {2,4,8,16})
|
||||
# @parity-strips: Number of parity strips to use (between 1 and 15)
|
||||
#
|
||||
# Since: 2.12
|
||||
##
|
||||
{ 'struct': 'SheepdogRedundancyErasureCoded',
|
||||
'data': { 'data-strips': 'int',
|
||||
'parity-strips': 'int' }}
|
||||
|
||||
##
|
||||
# @SheepdogRedundancy:
|
||||
#
|
||||
# Since: 2.12
|
||||
##
|
||||
{ 'union': 'SheepdogRedundancy',
|
||||
'base': { 'type': 'SheepdogRedundancyType' },
|
||||
'discriminator': 'type',
|
||||
'data': { 'full': 'SheepdogRedundancyFull',
|
||||
'erasure-coded': 'SheepdogRedundancyErasureCoded' } }
|
||||
|
||||
##
|
||||
# @BlockdevCreateOptionsSheepdog:
|
||||
#
|
||||
# Driver specific image creation options for Sheepdog.
|
||||
#
|
||||
# @location: Where to store the new image file
|
||||
# @size: Size of the virtual disk in bytes
|
||||
# @backing-file: File name of a base image
|
||||
# @preallocation: Preallocation mode for the new image (default: off;
|
||||
# allowed values: off, full)
|
||||
# @redundancy: Redundancy of the image
|
||||
# @object-size: Object size of the image
|
||||
#
|
||||
# Since: 2.12
|
||||
##
|
||||
{ 'struct': 'BlockdevCreateOptionsSheepdog',
|
||||
'data': { 'location': 'BlockdevOptionsSheepdog',
|
||||
'size': 'size',
|
||||
'*backing-file': 'str',
|
||||
'*preallocation': 'PreallocMode',
|
||||
'*redundancy': 'SheepdogRedundancy',
|
||||
'*object-size': 'size' } }
|
||||
|
||||
##
|
||||
# @BlockdevCreateOptionsSsh:
|
||||
#
|
||||
@ -4687,7 +4597,6 @@
|
||||
'qcow2': 'BlockdevCreateOptionsQcow2',
|
||||
'qed': 'BlockdevCreateOptionsQed',
|
||||
'rbd': 'BlockdevCreateOptionsRbd',
|
||||
'sheepdog': 'BlockdevCreateOptionsSheepdog',
|
||||
'ssh': 'BlockdevCreateOptionsSsh',
|
||||
'vdi': 'BlockdevCreateOptionsVdi',
|
||||
'vhdx': 'BlockdevCreateOptionsVhdx',
|
||||
@ -5322,7 +5231,7 @@
|
||||
#
|
||||
# Notes: In transaction, if @name is empty, or any snapshot matching @name
|
||||
# exists, the operation will fail. Only some image formats support it,
|
||||
# for example, qcow2, rbd, and sheepdog.
|
||||
# for example, qcow2, and rbd.
|
||||
#
|
||||
# Since: 1.7
|
||||
##
|
||||
|
@ -112,10 +112,10 @@
|
||||
#
|
||||
# On failure, the original disks pre-snapshot attempt will be used.
|
||||
#
|
||||
# For internal snapshots, the dictionary contains the device and the snapshot's
|
||||
# name. If an internal snapshot matching name already exists, the request will
|
||||
# be rejected. Only some image formats support it, for example, qcow2, rbd,
|
||||
# and sheepdog.
|
||||
# For internal snapshots, the dictionary contains the device and the
|
||||
# snapshot's name. If an internal snapshot matching name already exists,
|
||||
# the request will be rejected. Only some image formats support it, for
|
||||
# example, qcow2, and rbd,
|
||||
#
|
||||
# On failure, qemu will try delete the newly created internal snapshot in the
|
||||
# transaction. When an I/O error occurs during deletion, the user needs to fix
|
||||
|
@ -52,11 +52,6 @@ if [ "$IMGFMT" = "vpc" ]; then
|
||||
_notrun "image format $IMGFMT does not support large image sizes"
|
||||
fi
|
||||
|
||||
# sheepdog image is limited to 4TB, so we can't test it here
|
||||
if [ "$IMGPROTO" = "sheepdog" ]; then
|
||||
_notrun "image protocol $IMGPROTO does not support large image sizes"
|
||||
fi
|
||||
|
||||
# Sanity check: For raw, we require a file system that permits the creation
|
||||
# of a HUGE (but very sparse) file. Check we can create it before continuing.
|
||||
if [ "$IMGFMT" = "raw" ]; then
|
||||
|
@ -39,7 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
|
||||
. ./common.pattern
|
||||
|
||||
_supported_fmt raw qcow2 qed luks
|
||||
_supported_proto file sheepdog rbd nfs fuse
|
||||
_supported_proto file rbd nfs fuse
|
||||
|
||||
echo "=== Creating image"
|
||||
echo
|
||||
|
@ -65,8 +65,7 @@ def make_argparser() -> argparse.ArgumentParser:
|
||||
mg.add_argument('-' + fmt, dest='imgfmt', action='store_const',
|
||||
const=fmt, help=f'test {fmt}')
|
||||
|
||||
protocol_list = ['file', 'rbd', 'sheepdog', 'nbd', 'ssh', 'nfs',
|
||||
'fuse']
|
||||
protocol_list = ['file', 'rbd', 'nbd', 'ssh', 'nfs', 'fuse']
|
||||
g_prt = p.add_argument_group(
|
||||
' image protocol options',
|
||||
'The following options set the IMGPROTO environment variable. '
|
||||
|
@ -641,10 +641,6 @@ _cleanup_test_img()
|
||||
rbd --no-progress rm "$TEST_DIR/t.$IMGFMT" > /dev/null
|
||||
;;
|
||||
|
||||
sheepdog)
|
||||
collie vdi delete "$TEST_DIR/t.$IMGFMT"
|
||||
;;
|
||||
|
||||
esac
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user