How to manage storage buckets¶
Storage buckets store object-based data using non-local cephobject storage pools. When used in LXD or MicroCloud clusters, they are available from any cluster member.
Unlike custom storage volumes, storage buckets cannot be attached to instances. Instead, applications access them directly via a URL using the S3 protocol. A Ceph RADOS Gateway endpoint provides the S3-compatible URL.
View storage buckets¶
To list all available storage buckets in a storage pool, run:
lxc storage bucket list <pool-name>
To show detailed information about a specific bucket, run:
lxc storage bucket show <pool-name> <bucket-name>
Select Buckets from the Storage section of the main navigation.
Requirements¶
To use storage buckets, your LXD server must have access to a storage pool that uses the Ceph Object driver. You can confirm this by viewing your available storage pools.
If no listed pool uses the cephobject storage driver, you must create one. This requires a Ceph cluster with a RADOS Gateway (radosgw) enabled. Refer to our how-to guide for storage pools: Requirements for Ceph-based storage pools.
Create a storage bucket¶
To create a storage bucket, run:
lxc storage bucket create <pool-name> <bucket-name> [configuration_options...]
Refer to the Ceph Object documentation for a list of available storage bucket configuration options for the driver.
To create a storage bucket, select Buckets from the Storage section of the main navigation.
On the resulting screen, click Create bucket in the upper-right corner.
In the form that appears, set a unique name for the storage bucket and select a storage pool. You can optionally configure the bucket’s size and description.
Configure storage bucket settings¶
Use the following command to set configuration options for a storage bucket:
lxc storage bucket set <pool-name> <bucket-name> <key> <value>
For example, to set the size (quota) of a bucket, use the following command:
lxc storage bucket set my-pool my-bucket size 1MiB
You can also edit the storage bucket configuration by using the following command:
lxc storage bucket edit <pool-name> <bucket-name>
Use the following command to delete a storage bucket and its keys:
lxc storage bucket delete <pool-name> <bucket-name>
Refer to the Ceph Object documentation for a list of available storage bucket configuration options for the driver.
To configure a storage bucket, select Buckets from the Storage section of the main navigation.
The resulting screen shows a list of existing storage buckets. Click the Edit button on the row of the desired bucket to access its details.
After making changes, click the Save changes button. This button also displays the number of changes you have made.
Resize a storage bucket¶
By default, storage buckets do not have a quota applied.
To set or change a quota for a storage bucket, set its size configuration:
lxc storage bucket set <pool-name> <bucket-name> size <new-size>
To configure a storage bucket, select Buckets from the Storage section of the main navigation.
The resulting screen shows a list of existing storage buckets. Change the quota of the bucket by changing the values in the Size fields.
After making changes, click the Save changes button. This button also displays the number of changes you have made.
Resizing considerations
Growing a storage bucket usually works (if the storage pool has sufficient storage).
You cannot shrink a storage bucket below its current used size.
Manage storage bucket keys¶
To access a storage bucket, applications must use a set of S3 credentials made up of an access key and a secret key. You can create multiple sets of credentials for a specific bucket.
Each set of credentials is given a key name. The key name is used only for reference and does not need to be provided to the application that uses the credentials.
Each set of credentials has a role that specifies what operations they can perform on the bucket. The available roles are:
adminProvides full access to the bucket.
read-onlyDefault. Provides read-only (view) access to the bucket.
View storage bucket keys¶
Use the following command to list the keys defined for an existing bucket:
lxc storage bucket key list <pool-name> <bucket-name>
Use the following command to show a specific bucket key:
lxc storage bucket key show <pool-name> <bucket-name> <key-name>
To view storage bucket keys, select Buckets from the Storage section of the main navigation.
Click the name of a storage bucket to display its key management page, where you can view and manage a list of keys for that bucket.
Create keys¶
Use the following command to generate and display a set of keys for a storage bucket. The default role is read-only. To create credentials with the admin role, include the --role=admin flag:
lxc storage bucket key create <pool-name> <bucket-name> <key-name> [--role=admin] [configuration_options...]
Refer to lxc storage bucket key create for configuration options.
To create a storage bucket key, go to the key management page of the desired bucket.
On the resulting screen, click Create key in the upper-right corner. In the form that appears, set a unique name for the key. You can optionally configure its role and description.
While you can enter values for the Access and Secret Key fields, this is not necessary. You can leave them blank, and LXD will generate random values for those credential keys.
Edit or delete storage bucket keys¶
To edit an existing bucket key, run:
lxc storage bucket key edit <pool-name> <bucket-name> <key-name>
To delete an existing bucket key, run:
lxc storage bucket key delete <pool-name> <bucket-name> <key-name>
You can edit or delete storage bucket keys from the key management page of the desired bucket.