Object Storage

Overview

Object Storage:The object storage function delivers secure and efficient storage and management service for massive amounts of unstructured data.

Related Definitions

  • Storage Policy: A storage policy is a set of rules governing resource allocation sources for storage buckets, data storage formats, and more.
  • Object Gateway: The object gateway consists of high-availability object gateways and S3 gateways. The S3 gateway provides an S3-compatible object storage service for accessing storage clusters, while the high-availability object gateway offers high-availability services and load balancing for object storage.
  • Object User: An object user is an account for a consumer of object storage services, containing information such as permissions, key pairs, and user quotas.
  • Bucket: A bucket is a logical storage space allocated to an object user, where user data is stored in the form of objects.

Initialize Object Storage

To get the object storage service provided by ZStack ZStone, you need to initialize object storage first.

Prerequisites

  • You have purchased the license for the Object Storage module and the license status is valid.
  • On the platform exist one or more storage pools that meet the following requirements:
    1. The type of the storage pool is Object Storage.
    2. The role of the storage pool is Index Pool or Compound Pool.
    3. The data redundancy type is Replicas.
    Note: If there are no storage pools that meet the requirements above, you can create the needed resources step by step according to the prompt messages when initializing object storage.

Initialize Object Storage

  1. On the main menu of ZStack ZStone, choose Object Storage > Storage Policy. Then, the Uninitialized Object Storage page is displayed.
  2. Click the Initialize Object Storage button.
    Set the following parameters:
    • Storage Pool: Select a storage pool for initializing object storage.
      You can select a storage pool that meets the following requirements:
      1. The type of the storage pool is Object Storage.
      2. The role of the storage pool is Index Pool or Compound Pool.
      3. The data redundancy type is Replicas.
    Note:
    1. The initialization action involves creating an object storage system resources pool so as to preserve the metadata of object storage.
    2. The system resources pool and the selected storage pool share the same data disk and data redundancy type.
  3. Click OK and the initialization will begin.
    Note: Once the initialization is completed, we recommend you create the storage policy, object gateway, object user, and bucket in sequence as shown on the sub-menu of Object Storage so as to get the object storage service properly.

Storage Policy

Create a Storage Policy

On the main menu of ZStack ZStone, choose Object Storage > Storage Policy. On the Storage Policy page, click Create Storage Policy.

Set the following parameters:
  • Name: Set the name for the storage policy.
    The following rules apply for naming a storage policy:
    1. The storage policy name must be globally unique.
    2. The name must be 1 to 16 characters in length and can contain letters, digits, underscores (_), or hyphens (-). The name cannot start or end with a space.
  • Description: Optional. You can enter related notes in this field.
  • Index Pool: Store the index information of objects.
    You can select a storage pool that meets the following requirements:
    1. The type of the storage pool is Object Storage.
    2. The role of the storage pool is Index Pool or Compound Pool.
    3. The data redundancy type is Replicas.
  • Data Extra Pool: Store intermediate data when uploading multi-part objects and help you resume from breakpoints and collect garbage data.
    You can select a storage pool that meets the following requirements:
    1. The type of the storage pool is Object Storage.
    2. The role of the storage pool is Index Pool or Compound Pool.
    3. The data redundancy type is Replicas
  • Storage Class: 7 storage classes are supported. Object data defaults to the STANDARD class. You can specify storage classes on the client to meet diverse storage needs.
    • Class ID: Specify the storage policy class ID (storageclass_0 to storageclass_6).
      Note: By default, the first class ID in a storage policy is storageclass_0 with the name STANDARD. Customizing a name and deleting the name are not supported.
    • Name: Enter a name for the storage class.
      The following rules apply for naming a storage class:
      1. The storage class name must be unique within the storage policy. The storage class name can be duplicated in different storage policies.
      2. The name must be 1 to 16 characters in length and can contain letters, digits, underscores (_), or hyphens (-). The name cannot start or end with a space.
      Note: The storage class name is used as a unique identifier when specifying a storage class and cannot be changed once being set.
    • Data Pool: Select the storage pool for storing object data.
      Note: A storage class can be attached to only one data pool.
    • Data Compression: If enabled, when you upload an object to a bucket that uses this storage policy, the object data is automatically compressed before being stored. By default, this option is disabled.
      Note:
      • Enabling data compression occupies the CPU resources of the storage gateway server. We recommend that you use a storage gateway server with high-configuration CPUs.
      • If you copy cross-bucket objects in buckets that use different storage policies, the data compression service will be in accordance with the setting of the original bucket.
Figure 1. Create a storage policy


Manage a Storage Policy

On the main menu of ZStack ZStone, choose Object Storage > Storage Policy. Then, the Storage Policy page is displayed.

The following actions help to manage storage policies.
Action Description
Create Storage Policy Create a storage policy.
Edit Description Modify the description of the storage policy.
Set as Default Policy Set the selected storage policy as the default policy.
Set Data Compression Enable or disable Data Compression. If enabled, when you upload an object to a bucket that uses this storage policy, the object data is automatically compressed before being stored.
Note:
  • When enabled, data compression only takes effect on newly uploaded object data and the existing object data is not affected.
  • Enabling data compression occupies the CPU resources of the storage gateway server. We recommend that you use a storage gateway server with high-configuration CPUs.
  • If you copy cross-bucket objects in buckets that use different storage policies, the data compression service will be in accordance with the setting of the original bucket.
Delete Delete the selected storage policy.
Note:
  • If a storage policy is set as the default policy, it cannot be deleted. Set another storage policy as the default policy and try again.
  • If the selected storage policy is used by buckets or users, it cannot be deleted.

Further Details About Storage Policy

Storage Class

Add a Storage Class

On the Create Storage Policy page, click Add Storage Class.

Set the following parameters:
  • Class ID: Specify the storage policy class ID (storageclass_0 to storageclass_6).
    Note: By default, the first class ID in a storage policy is storageclass_0 with the name STANDARD. Customizing a name and deleting the name are not supported.
  • Name: Enter a name for the storage class.
    The following rules apply for naming a storage class:
    1. The storage class name must be unique within the storage policy. The storage class name can be duplicated in different storage policies.
    2. The name must be 1 to 16 characters in length and can contain letters, digits, underscores (_), or hyphens (-). The name cannot start or end with a space.
    Note: The storage class name is used as a unique identifier when specifying a storage class and cannot be changed once being set.
  • Data Pool: Select the storage pool for storing object data.
    Note: A storage class can be attached to only one data pool.
  • Data Compression: If enabled, when you upload an object to a bucket that uses this storage policy, the object data is automatically compressed before being stored. By default, this option is disabled.
    Note:
    • Enabling data compression occupies the CPU resources of the storage gateway server. We recommend that you use a storage gateway server with high-configuration CPUs.
    • If you copy cross-bucket objects in buckets that use different storage policies, the data compression service will be in accordance with the setting of the original bucket.

Manage a Storage Class

The following actions help to manage storage classes.
Action Description
Add Storage Class Add a new storage class.
Set Data Compression Enable or disable Data Compression.
Note:
  1. When enabled, data compression only takes effect on newly uploaded object data and the existing object data is not affected.
  2. Enabling data compression occupies the CPU resources of the storage gateway server. We recommend that you use a storage gateway server with high-configuration CPUs.
  3. If you copy cross-bucket objects in buckets that use different storage policies, the data compression service will be in accordance with the setting of the original bucket.
Delete Delete the selected storage class.
Note: The storage class called storageclass_0 cannot be deleted.

Object Gateway

Create an S3 Gateway

On the main menu of ZStack ZStone, chooseObject Storage > Object Gateway > S3 Gateway. On the S3 Gatewaypage, click Create S3 Gateway.

Set the following parameters:
  • Name: Set the name for the S3 Gateway.

    Naming rules: 1-128 characters long. A name can contain letters (a-z, A-Z), digits, underscores (_), or hyphens (-). The name cannot start or end with a space.

  • Role: The default role is Business, which means addressing business requirements.
  • Server: Select a server as the S3 Gateway. By default, the options are shown in the form of server IPs.
    Note:
    • You can select the Connected server with the role of Object Storage Gateway.
    • Those servers already added as an object gateway cannot be added again.
  • Port: Specify the port of the object gateway. Valid range: 7480~7489.
Figure 1. Create an S3 gateway


Manage an S3 Gateway

On the main menu of ZStack ZStone, chooseObject Storage > Object Gateway > S3 Gateway. Then, the S3 Gateway page is displayed.

The following actions help to manage S3 gateways.
Action Description
Create S3 Gateway Create S3 gateways.
Enable Enable the S3 gateway in the stopped state.
Disable Disable the S3 gateway in the healthy state.
Delete Delete the selected S3 gateway.
Note:
  • Deleting an S3 gateway may result in the inability to access the object storage service. Proceed with caution.
  • If you delete the S3 gateway when using it to upload objects, the upload will end up with failure.

Create an HA Object Gateway

On the main menu of ZStack ZStone, choose Object Storage > Object Gateway > HA Object Gateway. On the HA Object Gateway page, click Create HA Object Gateway.

Set the following parameters:
  • Name: Set the name for the HA object gateway.

    Naming rules: 1-128 characters long. A name can contain letters (a-z, A-Z), digits, underscores (_), or hyphens (-).The name cannot start or end with a space.

  • Role: The default role is Business, which means addressing business requirements.
  • LB Listener Node: You can add up to 10 nodes, each running one load balancer listener.
    Note: Only the servers with Object Storage Gateway role can be selected as listener nodes.
  • VIP CIDR: Enter the VIP CIDR that allocates Public IPs (NICs) for load balancer listener nodes.
  • HTTP Port: Enter the HTTP port (Valid range: 9300-9399).
Figure 1. Create an HA object gateway


Manage an HA Object Gateway

On the main menu of ZStack ZStone, choose Object Storage > Object Gateway > HA Object Gateway. Then, the HA Object Gateway page is displayed.

The following actions help to manage HA object gateways.
Action Description
Create HA Object Gateway Create HA object gateways.
Add Listener Add listeners to the HA object gateway.
  • You can add a maximum of 10 listeners to each HA object gateway.
Remove Listener Remove listeners from the HA object gateway.
  • Removing a listener may result in the inability to access the object storage service. Proceed with caution.
  • You cannot remove all listeners. An HA object gateway requires a minimum of 1 listener.
Delete Deleting an HA object gateway may result in the inability to access the object storage service. Proceed with caution.

Object User

Create an Object User

On the main menu of ZStack ZStone, chooseObject Storage > Object User. On the Object User page, click Create Object User.

Set the following parameters:
  • Name: Set the name for the object user.

    Naming rules: 1-64 characters long. A name can contain letters (a-z, A-Z), digits, underscores (_), hyphens (-),or periods (.). The name cannot start or end with a space.

    Note: After an object user is created, its name cannot be changed.
  • Description: Optional. You can add related notes in this field.
  • User Quota: Set the number of buckets that object users can create and use as well as capacity and the number of objects.
    • Buckets: Set the bucket quota. The default is 1000. Valid range: 1-10000, integer.
    • Capacity: Set the capacity quota. This field includes KB, MB, TB, and PB for capacity. Valid range: 1 KB-1024 PB, integer.
    • Objects: Set the object quota. This field includes Objects, 10K, 100M, T, 10Qa for objects. Valid range: 1 object–99 10Qa, integer.
      Note: When you upload an object in multiple parts, each part will occupy one object quota. Yet, when the multi-part upload is completed and a new object is thus created, the new object still occupies one quota.
  • Single Bucket Quota: Set the capacity and object quota that the current object user can use in each bucket.
    • Capacity: Set the capacity quota that the current object user can use in each bucket. This field includes KB, MB, TB, and PB for capacity. Valid range: 1 KB-1024 PB, integer.
    • Objects: Set the object quota that the current object user can use in each bucket. This field includes Objects, 10K, 100M, T, 10Qa for objects. Valid range: 1 Object-99 10Qa, integer.
      Note: When you upload an object in multiple parts, each part will occupy one object quota. Yet, when the multi-part upload is completed and a new object is thus created, the new object still occupies one quota.
  • User Permission: Grant an object user with bucket/object access permissions. By default, an object user is granted with Read, Write, and Delete permissions. You can flexibly combine the three permissions according to business needs, For example, Read Only, Read+Write, Read+Delete, and Read+Write+Delete.
    Note:
    1. Read: Allows grantee to read the bucket ACL, list and download the objects in the bucket. You cannot deselect this permission.
    2. Write: Allows grantee to create buckets, modify the bucket ACL, upload objects, and so on.
    3. Delete: Allows grantee to delete buckets, delete objects, and so on.
  • Storage Policy: Associate a storage policy with an object user.
    Note: After you associate a storage policy, if you select the object user as the bucket owner when creating a bucket, the bucket will use the storage policy associated with the object user by default.
Figure 1. Create an object user


Manage an Object User

On the main menu of ZStack ZStone, choose Object Storage > Object User. Then, the Object User page is displayed.

The following actions help to manage object users:
Action Description
Create Object User Create Object Users.
Enable Enable the object user in the disabled state.
Disable Disable the object user in the enabled state.
Note: After being disabled, the object user cannot access the object storage service.
Edit Description Edit the description of the object user.
Modify User Quota Modify the quota for the object user, including User Quota and Single Bucket Quota.
Modify User Permission Modify the bucket/object access permissions of the object user.
Note: You cannot deselect the Read permission.
Modify Storage Policy Modify the storage policy associated with the object user.
Note: After you associate a storage policy, if you select the object user as the bucket owner when creating a bucket, the bucket will use the storage policy associated with the object user by default.
Delete Delete the selected object user.
Note:
  1. After being deleted, the object user cannot access the object storage service.
  2. If the selected object user is a bucket owner, it cannot be deleted.

Further Details About Object User

User Key Pair

User Key Pair: A user key pair, consisting of Access Key ID and Secret Access Key, is used for identity authentication when accessing object storage resources. The system automatically generates a key pair upon successful object user creation.

Generate a Key Pair

On the User Key Pair page, click Generate Key Pair and a key pair will be automatically generated.

Manage a Key Pair

The following actions help to manage key pairs.
Action Description
Generate Key Pair Generate key pairs.
Delete Delete one or more key pairs.
Note:
  1. After deleting a key pair, the object user will not be able to use this key pair to access the object. Proceed with caution.
  2. When you select all key pairs for batch deletion, the latest key pair is preserved to ensure availability.

Bucket

Create a Bucket

On the main menu of ZStack ZStone, choose Object Storage > Bucket. On the Bucket page, click Create Bucket.

Set the following parameters:
  • Name: Set the name for the bucket.
    The following rules apply for naming a bucket:
    1. A bucket name must be globally unique.
    2. A bucket name must be 3 to 63 characters in length.
    3. A bucket name can consist only of lower-case letters, numbers, hyphens (-), or periods (.).
    4. A bucket name must begin and end with a lower-case letter or number.
    5. A bucket name must not be formatted as an IP address, for example, 192.168.0.1.
    6. A bucket name must consist of one or more labels. Adjacent labels are separated by a single period (.).
    7. You cannot use "admin" as the bucket name.
    Note: Once the bucket name is set, it cannot be modified.
  • Quantity: Set the number of buckets. You can create buckets in bulk.
    Note: Valid range: 1-100, integer.
  • Owner: Set a bucket owner. A bucket can only have one owner.
    You can select an object user that meets the following requirements:
    1. The state of the object user is enabled.
    2. The object user has Read and Write permissions.
  • Storage Policy: Specify a storage policy for the bucket. The parameter enables bucket to store object data according to the specified storage policy.
    Note: By default, the bucket uses the storage policy associated with the bucket owner. You can also specify a different storage policy.
  • Single Bucket Capacity: Set the capacity quota for each bucket. This field includes KB, MB, TB, and PB for capacity. Valid range: 1 KB-1024 PB, integer.
  • Single Bucket Objects: Set the object quota for each bucket. This field includes Objects, 10K, 100M, T, 10Qa for objects. Valid range: 1 Object-99 10Qa, integer.
    Note: When you upload an object in multiple parts, each part will occupy one object quota. Yet,when the multi-part upload is completed and a new object is thus created, the new object still occupies one quota.
  • Advanced Setting
    • Access Permission: You can grant specified ACL permissions to an object user.
      1. READ: Allows grantee to list the objects in the bucket and read the object.
      2. WRITE: Allows grantee to create, delete, or overwrite objects in the bucket.
      3. READ_ACP: Allows grantee to read the bucket ACL.
      4. WRITE_ACP: Allows grantee to write the ACL rules.
      5. FULL_CONTROL: Allows grantee the READ, WRITE, READ_ACP, and WRITE_ACP permissions.
      Note:
      1. By default, a bucket owner is granted the FULL_CONTROL permission and cannot be modified.
      2. A bucket can have up to 100 ACL grants.
      3. Bucket owners and object users with READ permission can only download objects they have uploaded.
      4. User-level permissions have priority over ACL permissions. For example, if object user A only has Read permission, the user cannot upload objects to Bucket B even when granted WRITE ACL permission.
Figure 1. Create a bucket


Manage a Bucket

On the main menu of ZStack ZStone, choose Object Storage > Bucket. Then, the Bucket page is displayed.

The following actions help to manage buckets.
Action Description
Create Bucket Create buckets.
Modify Bucket Quota Modify the capacity and object quota for buckets.
Note:
  1. Modification of bucket quotas only takes effect on newly uploaded object data.
  2. If the modified bucket quota is less than the uploaded capacity or objects, the platform will not delete any existing objects.
  3. You can enter a maximum of 15 digits in the Single Bucket Capacity and Single Bucket Objects fields.
Add Object User Add an object user and grant specified ACL permissions to the user.
Note: On the Bucket page, select a bucket and its details page is displayed. Choose Authorized Object User on the top row. Then, the Authorized Object User page is displayed wherein you can add or remove object users as well as modify certain user's access permissions.
Remove Object User Remove the selected object user. After being removed, the object user cannot access the bucket. Proceed with caution.
Note: If the selected object user is a bucket owner, it cannot be deleted.
Clear Configuration Clear the access logging configurations for this bucket.
Delete Delete the selected bucket.
Note: This option will delete all object data in the bucket and the deletion is irrecoverable. Proceed with caution.

Further Details About Bucket

Authorized Object User

Add an Object User

On the Authorized Object User page, click Add Object User.
  1. Select the object user to add in the All Object Users list on the right.
  2. Grant specified ACL permissions to the object user in the Selected Object Users list on the left.
  3. Click OK to add the object user.
Figure 1. Add an object user


Manage an Authorized Object User

The following actions help to manage authorized object users.
Action Description
Add Object User Add object users.
Modify Access Permission Modify the ACL permissions for the object user.
Note:
  • Modification of users' access permissions may lead to inability to access the bucket. Proceed with caution.
  • By default, a bucket owner is granted the FULL_CONTROL permission and cannot be modified.
Remove Object User Remove the selected object user. After being removed, the object user cannot access the bucket. Proceed with caution.
Note: If the selected object user is a bucket owner, it cannot be deleted.

Advanced Object Storage

ZStack ZStone supports managing third-party advanced object storage to meet the needs in complex object scenarios.

Prerequisites

  1. Ensure that the managed platform has authorized the license for the Object Storage module.
  2. Obtain the user name and password of the managed platform in advance.
  3. Verify the license for Block Storage on ZStack ZStone is in the valid status.
  4. Ensure an effective and two-way communication between ZStack ZStone and the managed platform.

Operational Procedures

To use the advanced object storage feature, follow the steps below:
  1. On the main menu of ZStack ZStone, choose System Setting > Global Setting > Advanced Setting.
  2. Choose the Multi-Platform Addition item and click Edit.
  3. On the Multi-Platform Addition pop-up, select Enable and then enter Platform IP & Port, User Name, and Password.
After confirming that the configuration information is correct, click OK. Upon successful addition, you will be able to see the Advanced Object Storage Directory on the main menu.