# Object Storage

Command Center provides cloud administrators with centralized management
capabilities for Zadara Cloud Object Storage environment.
Cloud administrators can use Command Center for:

- Management operations on Object Storage instances
- Configuring Object Storage Availability Zones resource allocation
  <!-- comment TBD replace Object Storage Availability Zones with Fault Domains -->
- Monitoring Object Storage capacity consumption trends

<a id="viewing-object-storage-properties"></a>

## Viewing Object Storage Properties

To view a specific Object Storage:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.

### Object Storage Instance Dashboard

The Object Storage instance’s main **Dashboard** tab’s **Information**
panel provides information regarding the Object Storage’s configuration,
current health status and network topology.

| **Property**     | **Description**                                                                                                                                                                                                        |
|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Name             | Object Storage instance’s display name                                                                                                                                                                                 |
| Internal Name    | Object Storage instance’s internal name                                                                                                                                                                                |
| User             | User who created the instance                                                                                                                                                                                          |
| Company          | Company of the user who created the instance                                                                                                                                                                           |
| Description      | Description given when the instance was provisioned                                                                                                                                                                    |
| Nova ID          | Object Storage instance’s Nova ID                                                                                                                                                                                      |
| Status           | Current status of the instance<br/><br/><!-- comment TBD Possible statuses: --><br/><!-- * TBD -->                                                                                                                     |
| Protection Zone  | Instance Protection Zone configuration                                                                                                                                                                                 |
| IO Engine type   | VC type for the Object Storage<br/><br/>* **NGOS** type:<br/>  * NextGen Object Storage<br/>* **ZIOS** types:<br/><br/>  Scope: VPSA Object Storage<br/>  * Mini<br/>  * Standard<br/>  * Premium<br/>  * Premium Plus |
| VCPUs            | VCPUs per VC type (Proxy+Storage/Proxy/Replicator)<br/>for this instance                                                                                                                                               |
| RAM              | RAM per VC type (Proxy+Storage/Proxy/Replicator)<br/>for this instance                                                                                                                                                 |
| SSL Termination  | Indicates whether SSL termination is internal or external                                                                                                                                                              |
| Storage VCs      | Instance Storage VC count                                                                                                                                                                                              |
| Replicator VCs   | Instance Replicator VC count                                                                                                                                                                                           |
| Proxy VCs        | Instance Proxy VC count                                                                                                                                                                                                |
| IP Address       | Instance floating frontend IP address                                                                                                                                                                                  |
| Public IP        | Instance public IP address                                                                                                                                                                                             |
| Mgmt. Address    | Instance hostname for management access                                                                                                                                                                                |
| Load Balancer    | Instance Load Balancer type: Basic (Internal Load Balancer)                                                                                                                                                            |
| Image            | Instance deployment image                                                                                                                                                                                              |
| UUID             | Instance UUID                                                                                                                                                                                                          |
| SNMPv3 Engine ID | Instance SNMPv3 Engine ID                                                                                                                                                                                              |
| Created          | Instance creation timestamp                                                                                                                                                                                            |
| Updated          | Instance last update timestamp                                                                                                                                                                                         |

<a id="managing-object-storage-availability-zones"></a>

## Managing Object Storage Availability Zones

<!-- comment TBD -  replace Availability Zones section with Fault Domains -->
<!-- comment TBD -  get intro from NGOS UG -->

Object Storage Availability Zones are required to support the various
protection policies used in the cloud.
By default there are four Availability Zones defined in each cloud to which
Storage Nodes can be allocated.

The cloud administrator’s ability to define specific Object Storage
protection policies is dependent on the Storage Node to Availability Zones
allocation scheme.

| **Protection Policy**   |   **Number of Fault Domains (FD)** |
|-------------------------|------------------------------------|
| 2-way mirroring         |                                  2 |
| 4+2 erasure coding      |                                  3 |

### Assigning and removing Storage Nodes to Object Storage Availability Zones

To view the current Object Storage Availability Zones configuration:

select the *Object Storage* tab and then on the
following screen select the *Object Storage Availability Zones* tab.
The *Object Storage Availability Zones* tab presents the current resource allocation scheme and amount of resources (VCPUs , Memory and Drives)
is Allocated , Utilized or free in each availability Zone.
On the lower part of the screen a list of available Storage Nodes and their resources inventory is displayed.

![image143](media/image143.png)

To allocate a Storage Node to an Availability Zone:

- Select a Storage Node and click the appropriate  `Add to zone` button on the right side of the screen
- On the popup dialog that appears select the required Availability Zone and click `add`
- The Availability Zone configuration will update to reflect the required changes.

To remove a Storage Node from an Availability Zone:

- Click on required Availability Zone
- On the *Storage Nodes* tab locate the node you wish to remove and click the `Remove` button

![image144](media/image144.png)

- On the following popup dialog confirm the removal request
- The Availability Zone configuration will update to reflect the required changes.

### Viewing Object Storage Availability Zones drive inventory

To view drive inventory click on the *Zones Drives inventory* tab, Inventory will be presented grouped by drive types.

![image145](media/image145.png)

<a id="managing-vpsa-object-storage-instances"></a>

## Managing Object Storage Instances

Object Storage instance management options are available from the
**Actions** dropdown menu in the **Information** panel on the Object
Storage’s **Dashboard** tab:

- [Adding Drives to an Object Storage](#ccvm-adding-drives-object-storage)
- [Adding a Proxy Virtual Controller](#ccvm-adding-proxy-vc-object-storage)
- [Enabling Container Replication Service](#ccvm-enable-container-replication-service)
- [Adding a Replicator Virtual Controller](#ccvm-adding-replicator-vc-object-storage)
- [Disabling Container Replication Service](#ccvm-disable-container-replication-service)
- [Changing a VPSA Object Storage engine type](#ccvm-change-object-storage-engine-type) VPSA Object Storage
- [Upgrading an Object Storage](#ccvm-upgrading-object-storage)
- [Maintenance mode](#ccvm-object-storage-maintenance-mode)
- [Assigning or Unassigning a Public IP address to an Object Storage](#ccvm-object-storage-assign-unassign-ip)
- [Creating an Object Storage Zsnap](#ccvm-object-storage-create-zsnap)
- [Adding or releasing an Object Storage’s Virtual Network](#ccvm-object-storage-add-remove-virtual-network)
- [Enable Elastic Load Balancer for a VPSA Object Storage](#ccvm-object-storage-enable-elb) VPSA Object Storage

<!-- comment - TBD - mark all gen1-specific with Scope: :bdg-info-line:`VPSA Object Storage` -->

<a id="ccvm-adding-drives-object-storage"></a>

### Adding Drives to an Object Storage

To add drives to an Object Storage:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.
3. In the Object Storage’s **Dashboard** tab, on the Object Storage’s
   **Information** panel, click **Actions**.
4. From the dropdown, select **Add Drives**.
5. In the **Add Drives** dialog, select the relevant values from each
   parameter’s dropdown:
   1. **Policy Name**
   2. **Drive Type**
   3. **Quantity**
6. Click **Add Drives** to confirm the operation.

The drive addition progress can be monitored in the **Health Status**
column of the Object Storage’s **Storage Policies** tab in Command Center.

![image252](media/image252.png)

<a id="ccvm-adding-proxy-vc-object-storage"></a>

### Adding a Proxy Virtual Controller

To add a Proxy Virtual Controller to an Object Storage:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.
3. In the Object Storage’s **Dashboard** tab, on the Object Storage’s
   **Information** panel, click **Actions**.
4. From the dropdown, select **Add Proxy VC**.
5. In the **Add Proxy Virtual Controller** dialog,
   click **Add Proxy Virtual Controller** to confirm the operation.

   On  completion, the **Proxy VCs** count on the Object Storage’s
   **Information** panel is incremented.

<a id="ccvm-enable-container-replication-service"></a>

### Enabling Container Replication Service

Zadara Object Storage supports replication at container level.

Object replication is the automatic duplication and ongoing synchronization
of objects from a container in a source Object Storage to a target
container in a remote Object Storage instance, or even to a target
container in the same Object Storage instance as the source.

By default, the Container Replication Service is disabled for an
Object Storage instance.

Enabling the Container Replication Service for an Object Storage instance
is a prerequisite for configuring replication jobs for containers in the
Object Storage instance.

Enabling the Container Replication Service creates a Replicator Virtual
Controller that can take several minutes to complete.

To enable the Container Replication Service for an Object Storage:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.
3. In the Object Storage’s **Dashboard** tab, on the Object Storage’s
   **Information** panel, click **Actions**.
4. From the dropdown, select **Enable Container Replication Service**.
5. In the **Enable Container Replication Service** dialog,
   confirm the operation.
   * In the Object Storage instance’s **Virtual Controllers** tab, a
     new VC is added, and the initial value of its **State** is
     **Standby**.

     On completion, the new VC’s **State** value changes to
     **Created**, and its **Storage Role** is **Replicator**.
   * In the Object Storage instance’s **Logs** tab, the following
     **Info** messages indicate successful completion of enabling the
     Container Replication Service:
     ```console
     Container Replication is enabled

     replicator VC #n was successfully added.
     ```
   * The **Replicator VCs**, **Replicator VCPUs** and **Replicator RAM**
     counts on the Object Storage’s **Information** panel is incremented.

See the Zadara Object Storage User Guide for more information on
[Replication](https://guides.zadarastorage.com/ngos-guide/latest/ngos-replication).

<a id="ccvm-adding-replicator-vc-object-storage"></a>

### Adding a Replicator Virtual Controller

To add a Replicator Virtual Controller to an Object Storage:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.
3. In the Object Storage’s **Dashboard** tab, on the Object Storage’s
   **Information** panel, click **Actions**.
4. From the dropdown, select **Add Replicator VC**.
5. In the **Add Replicator Virtual Controller** dialog,
   click **Add Replicator Virtual Controller** to confirm the operation.

   Creation of a Replication VC can take several minutes.

   In the Object Storage instance’s **Virtual Controllers** tab, a
   new VC is added, and the initial value of its **State** is **Standby**.

   In the Object Storage instance’s **Logs** tab, the following **Info**
   messages indicate successful completion of adding the Replicator VC:
   ```console
   replicator VC #n was successfully added.
   ```

   On  completion, the **Replicator VCs** count on the Object Storage’s
   **Information** panel is incremented.

See the Zadara Object Storage User Guide for more information on
[Replication](https://guides.zadarastorage.com/ngos-guide/latest/ngos-replication).

<a id="ccvm-disable-container-replication-service"></a>

### Disabling Container Replication Service

To disable the Container Replication Service for an Object Storage:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.
3. In the Object Storage’s **Dashboard** tab, on the Object Storage’s
   **Information** panel, click **Actions**.
4. From the dropdown, select **Disable Container Replication Service**.
5. In the **Disable Container Replication Service** dialog,
   confirm the operation.

See the Zadara Object Storage User Guide for more information on
[Replication](https://guides.zadarastorage.com/ngos-guide/latest/ngos-replication).

<a id="ccvm-change-object-storage-engine-type"></a>

### Changing a VPSA Object Storage engine type

Scope: VPSA Object Storage

When creating a VPSA Object Storage with 4 disk drives or less, the VPSA
Object Storage’s engine type is set to **Mini**.
The **Mini** engine type is a lesser footprint engine compared to the full
**Standard** VPSA Object Storage virtual controller, designed to support up
to 12 disk drives.

VPSA Object Storage **Mini** virtual controllers can be manually converted
to the full **Standard** footprint in Command Center.

To change a VPSA Object Storage’s engine type:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.
3. In the Object Storage’s **Dashboard** tab, on the Object Storage’s
   **Information** panel, click **Actions**.
4. From the dropdown, select **Change Engine Type**.
5. In the **Change Engine** dialog, click **Change engine** to
   confirm the **Change Engine Type** operation.

   On completion, on the VPSA Object Storage’s **Information** panel, the
   **IO Engine Type** changes to **Standard**.

<a id="ccvm-upgrading-object-storage"></a>

### Upgrading an Object Storage

Command Center allows administrators to perform a version upgrade on the
Object Storage instances running in the cloud.

To upgrade an Object Storage’s version:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.
3. In the Object Storage’s **Dashboard** tab, on the Object Storage’s
   **Information** panel, click **Actions**.
4. From the dropdown, select **Upgrade**.
5. In the **Upgrade Object Storage** dialog:
   1. From the dropdown, select the Object Storage image version for
      the upgrade.
   2. **Advanced** options:

      **Version Validation**:
      By default, the upgrade process includes version validation.
      To skip the validation, mark the checkbox.
   3. Click **Upgrade**.
   4. In the **Confirm Upgrade** dialog, click **Upgrade** to confirm the
      **Upgrade Object Storage version** operation.

      The Object Storage’s Status changes to **Upgrading version**
      for the duration of the process, and then to **Normal** when complete.

<a id="ccvm-object-storage-maintenance-mode"></a>

### Maintenance mode

Maintenance mode is useful for protecting an Object Storage against any
data integrity issue when a planned cloud physical maintenance is scheduled.

While in maintenance mode, all Object Storage services are stopped and
the Object Storage’s management console is not accessible.
The instance is offline and its consumed resources (vCPU, RAM) are freed at
the Storage Node level.

Maintenance mode involves the process of deleting an Object Storage’s
Virtual Controllers, while maintaining the data drives and all the
necessary metadata to resume its operation at a later stage.

Taking an Object Storage out of maintenance mode and resuming its operation
takes only a few minutes.

To transit an Object Storage to maintenance mode:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.
3. In the Object Storage’s **Dashboard** tab, on the Object Storage’s
   **Information** panel, click **Actions**.
4. From the dropdown, select **Maintenance Mode**.
5. In the **Enter Maintenance Mode** dialog:
   1. In the text box, enter the Object Storage ID.
   2. Click **Maintenance** to confirm the **Enter Maintenance Mode**
      operation.

<a id="ccvm-object-storage-assign-unassign-ip"></a>

### Assigning or Unassigning a Public IP address to an Object Storage

In specific cases where an Object Storage requires public internet
connectivity, a public IP address can be assigned to it.

See [Public IP Addresses](public-ip-addresses.md#cc-public-ip-addresses) for information about configuration of
cloud-level public IP ranges.

#### Assigning a Public IP address

To assign a Public IP address:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.
3. In the Object Storage’s **Dashboard** tab, on the Object Storage’s
   **Information** panel, click **Actions**.
4. From the dropdown, select **Assign Public IP**.
5. In the **Assign Public IP** dialog:
   1. Select one of the options:
      * **Automatic IP address assignment**
      * **Manual IP address assignment**

        Select an IP from the dropdown that displays for the manual
        IP assignment option.
   2. Click **Assign** to confirm the **Assign Public IP** operation.

#### Unassigning a Public IP address

To unassign a Public IP address:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.
3. In the Object Storage’s **Dashboard** tab, on the Object Storage’s
   **Information** panel, click **Actions**.
4. From the dropdown, select **Unassign Public IP**.
5. In the **Unassign Public IP** dialog, click **Confirm** to confirm the
   **Unassign Public IP** operation.

<a id="ccvm-object-storage-create-zsnap"></a>

### Creating an Object Storage Zsnap

An Object Storage Zsnap is a snapshot of the Object Storage at a
point in time.

An Object Storage Zsnap is a collection of logs and system meta-data information
used for troubleshooting and analysis of the component’s health.

To trigger the manual creation of a Zsnap of the Object Storage:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.
3. In the Object Storage’s **Dashboard** tab, on the Object Storage’s
   **Information** panel, click **Actions**.
4. From the dropdown menu, select **Create Zsnap**.
5. In the **Create Zsnap** dialog:
   1. Enter a prefix for the Zsnap.
   2. To include the Object Storage’s metering data in the Zsnap,
      mark the **Collect Metered Data** checkbox.
   3. Click **Create Zsnap** to confirm creation of the Zsnap.

<a id="ccvm-object-storage-add-remove-virtual-network"></a>

### Adding or releasing an Object Storage’s Virtual Network

Object Storages connected to multiple networks can be used to enable use cases
where multiple networks require connectivity to the same Object Storage.

See [Performing Cloud Networking Management](managing-cloud-networking.md#performing-cloud-networking-management) for viewing, creating and
deleting the cloud’s Virtual Networks.

#### Adding a Virtual Network to an Object Storage

To assign a Virtual Network to an Object Storage:

1. Verify that an appropriate Virtual Network is already defined in the
   cloud, excluding the Virtual Network already in use by the Object Storage.
2. Click **Object Storage** in Command Center’s left menu panel.
3. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.
4. In the Object Storage’s **Dashboard** tab, on the Object Storage’s
   **Information** panel, click **Actions**.
5. From the dropdown, select **Add Virtual Network**.
6. In the **Add Virtual Network** dialog:
   1. Select the Virtual Network to assign to the Object Storage.
   2. Click **Add** to confirm adding the Virtual Network to the Object Storage.

      On completion, the newly added Virtual Network displays in the
      Object Storage’s **Virtual Network** tab.

#### Releasing a Virtual Network from an Object Storage

To release a Virtual Network from an Object Storage:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the Object Storage instance in the
   Object Storages grid.
3. In the Object Storage’s **Dashboard** tab, on the Object Storage’s
   **Information** panel, click **Actions**.
4. From the dropdown, select **Release Virtual Network**.
5. In the **Release Virtual Network** dialog:
   1. Select the Virtual Network to release from the Object Storage.
   2. Click **Release**.

      The **Confirm Release Virtual Network** dialog opens, displaying a
      warning that the Object Storage will no longer be accessible via the selected
      Virtual Network.

      Click **Release** to reconfirm releasing the Virtual Network from
      the Object Storage.

      On completion, the released Virtual Network no longer appears in the
      Object Storage’s **Virtual Network** tab.

<a id="ccvm-object-storage-enable-elb"></a>

### Enable Elastic Load Balancer for a VPSA Object Storage

Scope: VPSA Object Storage

To enable an Elastic Load Balancer for a VPSA Object Storage:

1. Click **Object Storage** in Command Center’s left menu panel.
2. In the **Instances** tab, click the VPSA Object Storage instance in the
   Object Storages grid.
3. In the VPSA Object Storage’s **Dashboard** tab, on the VPSA Object Storage’s
   **Information** panel, click **Actions**.
4. From the dropdown, select **Enable Elastic Load Balancer**.
5. In the **Enable Elastic Load Balancer** dialog, click **Confirm** to
   confirm the **Enable Elastic Load Balancer** operation.

   On completion, on the VPSA Object Storage’s **Information** panel, the
   **Load Balancer** changes to **Elastic**.
