Skip to content

Commit

Permalink
Merge pull request #672 from bareos/dev/franku/master/deprecate-rados…
Browse files Browse the repository at this point in the history
…-backend

deprecate rados storage daemon backend
  • Loading branch information
franku committed Nov 24, 2020
2 parents 5002ac7 + 41ac0bb commit c131689
Show file tree
Hide file tree
Showing 10 changed files with 71 additions and 3 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -119,6 +119,7 @@ and since Bareos version 20 this project adheres to [Semantic Versioning](https:

### Deprecated
- Using MySQL as a catalog backend is now deprecated [PR #564]
- Using Rados as a storage backend is now deprecated [PR #672]

### Removed
- Remove support for creating MySQL / SQLite catalogs [PR#563] [PR #603]
Expand Down
4 changes: 4 additions & 0 deletions core/src/stored/device_resource.cc
Expand Up @@ -294,6 +294,10 @@ bool DeviceResource::Validate()
my_config->AddWarning(
"Setting 'Maximum Block Size' on a non-tape device is unsupported");
}
if (dev_type == DeviceType::B_RADOS_DEV) {
my_config->AddWarning(
"The Rados Storage Backend Device is deprecated");
}
return true;
}

Expand Down
3 changes: 3 additions & 0 deletions docs/manuals/source/TasksAndConcepts/Plugins.rst
Expand Up @@ -426,6 +426,9 @@ Opposite to the :ref:`Rados Backend <SdBackendRados>` that is used to store data
Rados Plugin
~~~~~~~~~~~~

.. comment::
.. deprecated:: 20.0.0

:index:`\ <single: Plugin; ceph; rados>`\ :index:`\ <single: Ceph; Rados Plugin>`\

Opposite to the :ref:`Rados Backend <SdBackendRados>` that is used to store data on a CEPH Object Store, this plugin is intended to backup a CEPH Object Store via the Rados interface to other media. The package **bareos-filedaemon-ceph-plugin** (:sinceVersion:`15.2.0: CEPH Rados Plugin`) contains an example configuration file, that must be adapted to your environment.
Expand Down
7 changes: 5 additions & 2 deletions docs/manuals/source/TasksAndConcepts/StorageBackends.rst
Expand Up @@ -19,7 +19,8 @@ A Bareos Storage Daemon can use various storage backends:
is used to access a GlusterFS storage.

**Rados** (Ceph Object Store)
is used to access a Ceph object store.
is used to access a Ceph object store (deprecated since Bareos 20.0.0)


.. _SdBackendDroplet:

Expand Down Expand Up @@ -174,7 +175,7 @@ More arguments and the SSL parameters can be found in the documentation of the d
CEPH Object Gateway S3
^^^^^^^^^^^^^^^^^^^^^^

Please note, that there is also the :ref:`SdBackendRados` backend, which can backup to CEPH directly. However, currently (17.2.7) the **Droplet** (S3) is known to outperform the **Rados** backend.
Please note, that there is also the :ref:`SdBackendRados` backend, which is deprecated since Bareos 20.0.0. Please use the **Droplet** (S3) backend, instead.

While parameters have been explained in the :ref:`section-DropletAwsS3` section, this gives an example about how to backup to a CEPH Object Gateway S3.

Expand Down Expand Up @@ -351,6 +352,8 @@ Adapt server and volume name to your environment.
Rados Storage Backend
---------------------

.. deprecated:: 20.0.0

**Rados** (Ceph Object Store)

Here you configure the Ceph object store, which is accessed by the SD using the Rados library. Prerequistes are a working Ceph object store and the package **bareos-storage-ceph**. See http://ceph.com for more information regarding Ceph installation and configuration. Assuming that you have an object store with name :file:`poolname` and your Ceph access is configured in :file:`/etc/ceph/ceph.conf`, you can use following snippet to configure it as
Expand Down
Expand Up @@ -19,6 +19,8 @@ The Device Type specification allows you to explicitly define the kind of device

:sinceVersion:`14.2.2: Ceph (Rados)`

.. deprecated:: 20.0.0

**Droplet**
is used to access an object store supported by **libdroplet**, most notably S3. For details, refer to :ref:`SdBackendDroplet`.

Expand Down
@@ -0,0 +1,13 @@
Device {
Name = RadosStorage
Archive Device = "Rados Device"
# the path here will not be used, as the test doesn't open the device
Device Options = "conffile=/etc/ceph/ceph.conf,poolname=poolname"
Device Type = rados
Media Type = RadosFile
Label Media = yes
Random Access = yes
Automatic Mount = yes
Removable Media = no
Always Open = no
}
@@ -0,0 +1,5 @@
Director {
Name = bareos-dir
Password = "@sd_password@"
Description = "Director, who is permitted to contact this storage daemon."
}
@@ -0,0 +1,5 @@
Messages {
Name = Standard
Director = bareos-dir = all
Description = "Send all messages to the Director."
}
@@ -0,0 +1,14 @@
Storage {
Name = bareos-sd
Maximum Concurrent Jobs = 20

# remove comment from "Plugin Directory" to load plugins from specified directory.
# if "Plugin Names" is defined, only the specified plugins will be loaded,
# otherwise all storage plugins (*-sd.so) from the "Plugin Directory".
#
# Plugin Directory = "@python_plugin_module_src_sd@"
# Plugin Names = ""
Working Directory = "@working_dir@"
Pid Directory = "@piddir@"
SD Port = @sd_port@
}
20 changes: 19 additions & 1 deletion systemtests/tests/deprecation/testrunner
Expand Up @@ -29,14 +29,32 @@ invoke_dir() {
fi
"${BAREOS_DIRECTOR_BINARY}" "${options[@]}"
}
invoke_sd() {
options=("$@")
if [ -n "${BAREOS_SD_USER:-}" ]; then
options+=(-u "${BAREOS_SD_USER}")
fi
if [ -n "${BAREOS_SD_GROUP:-}" ]; then
options+=(-g "${BAREOS_SD_GROUP}")
fi
if [ -n "${BAREOS_CONFIG_DIR:-}" ]; then
options+=(-c "${BAREOS_CONFIG_DIR}")
fi
"${BAREOS_STORAGEDAEMON_BINARY}" "${options[@]}"
}


start_test

# check for deprecated database if applicable
if [ "$DBTYPE" = mysql -o "$DBTYPE" = sqlite3 ]; then
if [ "$DBTYPE" = mysql ] || [ "$DBTYPE" = sqlite3 ]; then
echo "Checking catalog backend deprecation"
invoke_dir -t -v 2>&1 \
| grep "Deprecated DB driver ${DBTYPE} for Catalog MyCatalog"
fi

echo "Checking rados backend deprecation"
invoke_sd -t -v 2>&1 \
| grep "The Rados Storage Backend Device is deprecated"

end_test

0 comments on commit c131689

Please sign in to comment.