Skip to main content

Object Stores

Object Stores

An object store turns a volume into an S3-compatible endpoint: instead of (or in addition to) mounting the volume as a block device or file share, applications talk to it over HTTP using the S3 API —— buckets, objects, and standard S3 tooling all work against it. This is a good fit for backup targets, application data lakes, and any workload already written against S3.

An object store needs a volume that already has a file system assigned to it (see the Filesystems settings on the volume) —— the object store runs on top of that file system rather than being a separate kind of volume. If a single volume isn't large enough, you can stripe the object store across several volumes so they present as one larger S3 endpoint.

Access to an object store is controlled by access keys rather than host/initiator mappings —— see that page for creating and managing the access key credentials themselves.

Creating an object store

Using the web interface

  1. Open Application Volumes > Volumes, select a volume that already has a file system, and choose Create Object Store.
  2. Under Volume Selection, confirm the application and volume (and, optionally, Volume Striping to add more volumes to stripe across).
  3. Under Network, set the floating IP and TCP port the object store will listen on, and whether to enable SSL.
  4. Under Access Keys, choose the admin (and, optionally, regular) access keys that can connect to this object store.
  5. Under Identity and Access Management, decide whether admin access keys may create their own IAM users, and whether those IAM users can manage their own policies.
  6. Confirm to create the object store.

Using the CLI

applications objects stores create
    --application=<name> --volume=<name> [--stripedVolumes=<name...>]
    --floatingIp=<name> --port=<object_store_port> [--enableSsl]
    --adminAccessKeys=<name...> [--regularAccessKeys=<name...>
    --support_iam_credentials --editable_iam_credentials]
Option Description
--application=<name> The name of the application the object store will be created in.
--volume=<name> The name of the volume on which the object store will be created.
--stripedVolumes=<name...> Stripe this object store over additional volumes.
--floatingIp=<name> The floating IP to use for this object store.
--port=<object_store_port> The TCP port for this object store.
--enableSsl Enable using SSL.
--adminAccessKeys=<name...> Admin access keys with access to this object store.
--regularAccessKeys=<name...> Regular (non-admin) access keys with access to this object store.
--support_iam_credentials Allow admin access keys to create IAM users that can connect to this object store.
--editable_iam_credentials Allow those IAM users to create, edit, delete, or assign policies.

Examples

Create a basic object store on the archive volume:

applications objects stores create --application backups --volume archive --floatingIp fip-1 --port 9000 --adminAccessKeys backup-admin

Create one with SSL enabled and a regular (restricted) access key added alongside the admin key:

applications objects stores create --application backups --volume archive --floatingIp fip-1 --port 9443 --enableSsl --adminAccessKeys backup-admin --regularAccessKeys backup-app

Create a larger object store striped across three volumes:

applications objects stores create --application backups --volume archive1 --stripedVolumes archive2 archive3 --floatingIp fip-1 --port 9000 --adminAccessKeys backup-admin

Editing an object store

You can change an object store's network settings, expand it with additional striped volumes, change which access keys can reach it, and change its IAM settings.

Using the web interface

  1. Open Application Volumes > Volumes, select the object store's volume, and choose Edit Object Store.
  2. Update the fields you need under Network, Volume Striping, Access Keys, or Identity and Access Management.
  3. Confirm the change.

The CLI also offers two narrower shortcuts that aren't in the web interface —— applications objects stores access_keys add and applications objects stores access_keys delete —— for adding or removing access keys from a store without touching anything else.

Using the CLI

applications objects stores edit
    --application=<name> --volume=<name> [--stripedVolumes=<name...>
    --floatingIp=<name> --port=<object_store_port> --enableSsl|--disableSsl
    --adminAccessKeys=<name...> --regularAccessKeys=<name...>
    --support_iam_credentials|--do_not_support_iam_credentials --editable_iam_credentials|--do_not_support_editable_iam_credentials]
Option Description
--application=<name> The name of the application that contains the object store.
--volume=<name> The name of the volume that contains the object store.
--stripedVolumes=<name...> Expand the object store with additional volumes.
--floatingIp=<name> The new floating IP to use for this object store.
--port=<object_store_port> The new TCP port for this object store.
--enableSsl Enable using SSL.
--disableSsl Disable using SSL.
--adminAccessKeys=<name...> Admin access keys with access to this object store.
--regularAccessKeys=<name...> Regular (non-admin) access keys with access to this object store.
--support_iam_credentials Allow admin access keys to create IAM users that can connect to this object store.
--do_not_support_iam_credentials Do not allow admin access keys to create IAM users.
--editable_iam_credentials Allow IAM users to create, edit, delete, or assign policies.
--do_not_support_editable_iam_credentials Do not allow IAM users to manage policies.

Examples

Move the object store to a new port:

applications objects stores edit --application backups --volume archive --port 9001

Enable SSL on an existing object store:

applications objects stores edit --application backups --volume archive --enableSsl

Add a striped volume to expand capacity:

applications objects stores edit --application backups --volume archive --stripedVolumes archive4

Adding or removing access keys directly (CLI only)

applications objects stores access_keys add --application=<name> --volume=<name> --accessKeys=<name...>
applications objects stores access_keys delete --application=<name> --volume=<name> --accessKeys=<name...>
Option Description
--application=<name> The name of the application that contains the object store.
--volume=<name> The name of the volume that contains the object store.
--accessKeys=<name...> The access keys to grant or remove access for.

Example —— grant an additional access key access to an existing object store:

applications objects stores access_keys add --application backups --volume archive --accessKeys backup-app2

Listing object stores

Using the web interface

Open Application Volumes > Volumes and filter to object-store volumes, or open the object stores list directly to see every object store at once.

Using the CLI

applications objects stores list [--application=<name> --volume=<name>]
Option Description
--application=<name> Filter by the application that contains the object store.
--volume=<name> Filter by the volume that contains the object store.

Example

applications objects stores list --application backups

Viewing object store metrics

Returns usage/performance metrics for an object store, useful for capacity planning and troubleshooting throughput.

Using the web interface

Open Application Volumes > Volumes, select the object store's volume, and open its Metrics view.

Using the CLI

applications objects stores metrics --application=<name> --volume=<name>
Option Description
--application=<name> The name of the application that contains the object store.
--volume=<name> The name of the volume that contains the object store.

Example

applications objects stores metrics --application backups --volume archive

Next: Access Keys —— creating and managing the credentials that connect to your object stores.