# Storage backends
# Configuration
Onepanel GUI allows creating, editing and deleting storage backends under the Storage backends menu. All storage configuration options are available during storage creation (see below picture and descriptions). After the storage is created, only some parameters can be changed so as not to break the data integrity.
# Storage type
Determines the type of corresponding storage backend.
The currently supported storage backends include:
POSIX
— any POSIX-compatible storage, typically attached over high-throughput local network, such as NFS.S3
— Amazon S3 (opens new window) compatible storage.Ceph RADOS
— storage backend compatible with Ceph (opens new window) object storage.Swift
— storage backend compatible with OpenStack SWIFT (opens new window) protocol.GlusterFS
— GlusterFS (opens new window) volume directly attached to the provider.WebDAV
— storage backend compatible with WebDAV (opens new window) protocol.XRootD
— storage backend compatible with XRootD (opens new window) protocol.HTTP
— any HTTP (opens new window) or HTTPS compatible server. Supported only withReadonly
option enabled and in manual import mode.Null device
— POSIX-compatible storage which emulates behavior of/dev/null
on local filesystem. Allows running various performance tests, which are not impacted by actual storage latency.
Please consult the Add storage REST request (opens new window) for comprehensive description of type-specific configuration parameters. The parameters are visible after selecting the specific type of storage from the dropdown in the request body specification.
# Storage name
A unique name for the storage resource.
# Storage path type
Determines how the logical file paths are mapped on the storage:
canonical
paths reflect the logical file names and directory structure, however each rename operation requires renaming the files on the storage which may result in copying the file blocks on some storage backends. Canonical path type is obligatory for an imported storage.flat
paths are based on unique file UUID's and do not require on-storage rename when logical file name is changed.
# Imported storage
Option Imported storage
determines if the contents of this storage should be imported to the Onedata space supported
with the storage. This option should be enabled in two setups:
- There is a legacy data collection located on the storage, which should be imported into a space.
- The data on storage is to be modified directly by third party applications, bypassing the provider interfaces, and the changes should be reflected in the supported space.
NOTE: Storage that is marked as an imported storage can be used to support just one space.
NOTE: Only one out of supporting providers can support the space with an imported storage.
Supporting the space with an imported storage results in enabling the storage import, which allows registering storage files in the space without copying any data. More information can be found here.
Please make sure that the storage backend for which you intend to enable Imported storage
option is supported.
Consult the list of supported backends and the required configuration for
manual
and auto import modes.
# Read-only
Option Readonly
determines that the storage is to be treated by the Oneprovider as
read-only. In such case, Oneprovider does not attempt to create, modify or delete files on
the storage. File blocks cannot be replicated onto the storage from other providers. For
above reasons, storage import is effectively the only way to use such storage
within a space — in consequence the Readonly
option is available only for an imported
storage. The imported data will be available in read-only mode, unless replicated to
other providers.
This option can be chosen even if the provider has write access to the storage, but the
admin decides that it should be perceived as read-only. However, if the storage is indeed
read-only (prevents making any changes), Readonly
must be enabled for correct
operation of the Oneprovider service.
If you wish to use Oneclient in Direct I/O mode on a read-only storage, remember to
pass the --force-direct-io
option to the Oneclient application. Additionally, on
POSIX-compatible storage backends, the mount-point must be passed manually.
Consult Oneclient's documentation for --force-direct-io
and --override
options.
# LUMA feed
Option LUMA feed
determines type of feed for Local User Mapping Database.
There are 3 possible values:
auto
local
external
For more information on configuration of LUMA DB feed, see here.
# Timeout
Timeout for storage operations in milliseconds. This parameter is optional, the default is 120 seconds.
# QoS Parameters
Quality of service parameters. For more information on configuration of Quality of Service mechanism, see here.
# Verification and monitoring
When adding a new storage backend or modifying an existing one, Oneprovider performs read/write tests in order to determine whether the provided configuration is valid and the storage backend can be accessed. Write tests are skipped for read-only storage backends.
Additionally, storage health checks are performed periodically. Upon failure, the access to all spaces supported by the storage backend is blocked until it becomes accessible again.
# REST API
All operations on storage resources can be performed using the REST API. Refer to the linked API documentation for detailed information and examples.
Request | Link to API |
---|---|
Create storage | API (opens new window) |
Get storage details | API (opens new window) |
Update storage | API (opens new window) |
Remove storage | API (opens new window) |
List storage resources | API (opens new window) |