Zextras Powerstore and Third Party Storage solutions

From ZeXtras Suite Wiki

Jump to: navigation, search
Language: English  • español • português
ZxPowerStore logo box.png
Available since version: 1.3.0
Latest Version: 2.12.2
Released on: January 2nd, 2019
Compatibility List
Admin Guide
FAQ
Troubleshooting
ZspPowerstore logo box.png
Warning.png Warning!

Under Construction

General information about Zextras Powerstore and third-party storage solutions

Starting from version 2.10.0, Zextras Powerstore allows to create Zimbra volumes of any kind on multiple third-party storage solutions.

Before version 2.10.0, only Amazon S3 and EMC storages were officially supported and could only host Secondary volumes.

Officially Supported third-party storage solutions

The storage platforms officially supported by Zextras Powerstore are:

  • Amazon S3
  • EMC
  • OpenIO
  • Swift
  • Scality S3
  • Cloudian

On top of those, an additional storage types is supported - FileBlob - which is Zimbra's default local storage.

Local Cache

This feature requires a local directory to be used for item caching, which must be readable and writable by the "zimbra" user.

Such directory must be created manually and its path must be entrered in the "Powerstore" section of the ZeXtras Administration Zimlet in the Zimbra Administration Console before setting up any remote volume.

Warning.png Warning!

Manually messing with the cache directory might cause items to be unretrievable, meaning that users will get a "No such BLOB" error when trying to access any item stored on a volume hosted in a third-party storage.


CLI Volume Management

Starting with version 2.10.0, the storeType argument is mandatory when creating and updating a volume, it is always the on the first position and accepts any one value corresponding to the S3-Officially Supported platforms listed above. The arguments that follow in the command now depend on the selected storeType.

FileBlob (Local)

CLI for FileBlob volume management:

Add a new volume

 zxsuite hsm doCreateVolume FileBlob name secondary /path/to/store

Delete a volume

 zxsuite hsm doDeleteVolume name

Set a volume as current

 zxsuite hsm doUpdateVolume FileBlob name current_volume true


zxsuite hsm doCreateVolume FileBlob

Syntax:
    zxsuite hsm doCreateVolume FileBlob {volume_name} {primary|secondary|index} {volume_path} [attr1 value1 [attr2 value2...]]

PARAMETER LIST

NAME                            TYPE                EXPECTED VALUES             DEFAULT
volume_name(M)                  String
volume_type(M)                  Multiple choice     primary|secondary|index
volume_path(M)                  Path
volume_compressed(O)            Boolean             true|false                  false
compression_threshold_bytes(O)  Long                                            4096

(M) == mandatory parameter, (O) == optional parameter

Usage example:

zxsuite hsm doCreateVolume FileBlob volumeName secondary /path/to/store volume_compressed true compression_threshold_bytes 4096

zxsuite hsm doUpdateVolume FileBlob

Syntax:
    zxsuite hsm doUpdateVolume FileBlob {current_volume_name} [attr1 value1 [attr2 value2...]]

PARAMETER LIST

NAME                            TYPE                EXPECTED VALUES             DEFAULT
current_volume_name(M)          String
volume_type(O)                  String              primary|secondary|index
volume_name(O)                  String
volume_path(O)                  Path
current_volume(O)               Boolean             true|false                  false
volume_compressed(O)            String
compression_threshold(O)        String

(M) == mandatory parameter, (O) == optional parameter

S3 (Amazon and any S3-compatible solution not explicitly supported)

CLI for S3 volume management:

Add a new volume

 zxsuite hsm doCreateVolume S3 name secondary bucket_name bucket access_key accessKey secret secretString region EU_WEST_1

Delete a volume

 zxsuite hsm doDeleteVolume name

Set a volume as current

 zxsuite hsm doUpdateVolume S3 name current_volume true

zxsuite hsm doCreateVolume S3

Syntax:
    zxsuite hsm doCreateVolume S3 {Name of the zimbra store} {primary|secondary} [attr1 value1 [attr2 value2...]]

PARAMETER LIST

NAME                            TYPE                EXPECTED VALUES
volume_name(M)                  String              Name of the zimbra store
volume_type(M)                  Multiple choice     primary|secondary
bucket_name(O)                  String              Amazon AWS bucket
access_key(O)                   String              Service username
secret(O)                       String              Service password
server_prefix(O)                String              Prefix to the server id used in all objects keys
bucket_configuration_id(O)      String              UUID for already existing S3 service credentials
                                                    (zxsuite config global get attribute s3BucketConfigurations)
region(O)                       String              Amazon AWS Region
url(O)                          String              S3 API compatible service url (ex: s3api.service.com)
prefix(O)                       String              Prefix added to blobs keys
use_infrequent_access(O)        Boolean             true|false
infrequent_access_threshold(O)  String

(M) == mandatory parameter, (O) == optional parameter

Usage example:

S3 AWS Bucket:
    zxsuite hsm doCreateVolume S3 volumeName primary bucket_name bucket access_key accessKey secret secretKey prefix objectKeysPrefix region EU_WEST_1 user_infrequent_access TRUE infrequent_access_threshold 4096

S3 compatible object storage:
    zxsuite hsm doCreateVolume S3 volumeName primary bucket_name bucket access_key accessKey secret secretKey url http://host/service

Using existing bucket configuration:
    zxsuite hsm doCreateVolume S3 volumeName primary bucket_configuration_id 316813fb-d3ef-4775-b5c8-f7d236fc629c

zxsuite hsm doUpdateVolume S3

Syntax:
    zxsuite hsm doUpdateVolume S3 {current_volume_name} [attr1 value1 [attr2 value2...]]

PARAMETER LIST

NAME                            TYPE                EXPECTED VALUES             DEFAULT
current_volume_name(M)          String
volume_name(O)                  String
volume_type(O)                  String              primary|secondary
server_prefix(O)                String              Prefix to the server id used in all objects keys
bucket_configuration_id(O)      String              UUID for already existing service credentials
                                                    (zxsuite config global get attribute s3BucketConfigurations)
use_infrequent_access(O)        Boolean             true|false
infrequent_access_threshold(O)  String
current_volume(O)               Boolean             true|false                  false

(M) == mandatory parameter, (O) == optional parameter

Scality (S3 compatible object storage)

CLI for Scality volume management:

Add a new volume

 zxsuite hsm doCreateVolume ScalityS3 name secondary bucket_name mybucket access_key accessKey1 secret verySecretKey1 url http://{IP_ADDRESS}:{PORT}

Delete a volume

 zxsuite hsm doDeleteVolume name

Set a volume as current

 zxsuite hsm doUpdateVolume ScalityS3 name current_volume true

zxsuite hsm doCreateVolume ScalityS3

Syntax:
    zxsuite hsm doCreateVolume ScalityS3 {volume_name} {primary|secondary} [attr1 value1 [attr2 value2...]]

PARAMETER LIST

NAME                            TYPE                EXPECTED VALUES
volume_name(M)                  String
volume_type(M)                  Multiple choice     primary|secondary
bucket_name(O)                  String              Bucket name
url(O)                          String              S3 API compatible service url (ex: s3api.service.com)
access_key(O)                   String              Service username
secret(O)                       String              Service password
server_prefix(O)                String              Prefix to the server id used in all objects keys
bucket_configuration_id(O)      String              UUID for already existing service credentials
                                                    (zxsuite config global get attribute s3BucketConfigurations)
prefix(O)                       String              Prefix added to blobs keys

(M) == mandatory parameter, (O) == optional parameter

Usage example:

zxsuite hsm doCreateVolume ScalityS3 volumeName primary bucket_name bucket url http://host/service access_key accessKey secret secretKet
zxsuite hsm doCreateVolume ScalityS3 volumeName primary bucket_configuration_id uuid

zxsuite hsm doUpdateVolume ScalityS3

Syntax:
    zxsuite hsm doUpdateVolume ScalityS3 {current_volume_name} [attr1 value1 [attr2 value2...]]

PARAMETER LIST

NAME                            TYPE                EXPECTED VALUES             DEFAULT
current_volume_name(M)          String
volume_name(O)                  String
volume_type(O)                  String              primary|secondary
server_prefix(O)                String              Prefix to the server id used in all objects keys
bucket_configuration_id(O)      String              UUID for already existing S3 service credentials
                                                    (zxsuite config global get attribute s3BucketConfigurations)
current_volume(O)               Boolean             true|false                  false

(M) == mandatory parameter, (O) == optional parameter

EMC (S3 compatible object storage)

CLI for Dell/EMC volume management:

Add a new volume

 zxsuite hsm docreatevolume EMC name secondary bucket_name bucket access_key ACCESSKEY secret SECRET url https://url.of.storage

Delete a volume

 zxsuite hsm doDeleteVolume name

Set a volume as current

 zxsuite hsm doUpdateVolume EMC name current_volume true

zxsuite hsm doCreateVolume EMC

Syntax:
    zxsuite hsm doCreateVolume EMC {volume_name} {primary|secondary} [attr1 value1 [attr2 value2...]]

PARAMETER LIST

NAME                            TYPE                EXPECTED VALUES
volume_name(M)                  String
volume_type(M)                  Multiple choice     primary|secondary
bucket_name(O)                  String              Bucket name
url(O)                          String              S3 API compatible service url (ex: s3api.service.com)
access_key(O)                   String              Service username
secret(O)                       String              Service password
server_prefix(O)                String              Prefix to the server id used in all objects keys
bucket_configuration_id(O)      String              UUID for already existing service credentials
                                                    (zxsuite config global get attribute s3BucketConfigurations)
prefix(O)                       String              Prefix added to blobs keys

(M) == mandatory parameter, (O) == optional parameter

Usage example:

zxsuite hsm doCreateVolume EMC volumeName primary bucket_name bucket url http://host/service access_key accessKey secret secretKet
zxsuite hsm doCreateVolume EMC volumeName primary bucket_configuration_id uuid

zxsuite hsm doUpdateVolume EMC

Syntax:
    zxsuite hsm doUpdateVolume EMC {current_volume_name} [attr1 value1 [attr2 value2...]]

PARAMETER LIST

NAME                            TYPE                EXPECTED VALUES             DEFAULT
current_volume_name(M)          String
volume_name(O)                  String
volume_type(O)                  String              primary|secondary
server_prefix(O)                String              Prefix to the server id used in all objects keys
bucket_configuration_id(O)      String              UUID for already existing service credentials
                                                    (zxsuite config global get attribute s3BucketConfigurations)
current_volume(O)               Boolean             true|false                  false

(M) == mandatory parameter, (O) == optional parameter

OpenIO

CLI for OpenIO volume management:

Add a new volume

 zxsuite hsm doCreateVolume OpenIO name secondary http://{IP_ADDRESS} ZeXtras OPENIO

Delete a volume

 zxsuite hsm doDeleteVolume name

Set a volume as current

 zxsuite hsm doUpdateVolume OpenIO name current_volume true

zxsuite hsm doCreateVolume OpenIO

Syntax:
    zxsuite hsm doCreateVolume OpenIO {volume_name} {primary|secondary} {url} {account} {namespace} [attr1 value1 [attr2 value2...]]

PARAMETER LIST

NAME                            TYPE                EXPECTED VALUES
volume_name(M)                  String
volume_type(M)                  Multiple choice     primary|secondary
url(M)                          String
account(M)                      String
namespace(M)                    String
proxy_port(O)                   Integer
account_port(O)                 Integer

(M) == mandatory parameter, (O) == optional parameter

Usage example:

zxsuite hsm doCreateVolume OpenIO volumeName primary http://host/service accountName namespaceString proxy_port 6006 account_port 6009

zxsuite hsmo doUpdateVolume OpenIO

Syntax:
zxsuite hsm doUpdateVolume OpenIO {current_volume_name} [attr1 value1
[attr2 value2...]]
PARAMETER LIST
NAME                            TYPE                EXPECTED VALUES             DEFAULT
current_volume_name(M)          String
volume_name(O)                  String
volume_type(O)                  String              primary|secondary
url(O)                          String
account(O)                      String
namespace(O)                    String
proxy_port(O)                   Integer
account_port(O)                 Integer
current_volume(O)               Boolean             true|false                  false

(M) == mandatory parameter, (O) == optional parameter

Swift

CLI for Swift volume management:

Add a new volume

 zxsuite hsm doCreateVolume Swift name secondary http://{IP_ADDRESS}:8080/auth/v1.0/ user:username password maxDeleteObjectsCount 100

Delete a volume

 zxsuite hsm doDeleteVolume name

Set a volume as current

 zxsuite hsm doUpdateVolume Swift name current_volume true

zxsuite hsm doCreateVolume Swift

Syntax:
    zxsuite hsm doCreateVolume Swift {volume_name} {primary|secondary} {url} {username} {password} [attr1 value1 [attr2 value2...]]

PARAMETER LIST

NAME                        TYPE        EXPECTED VALUES             DEFAULT
volume_name(O)              String
volume_type(O)              String      primary|secondary
url(O)                      String
username(O)                 String
password(O)                 String
maxDeleteObjectsCount(O)    Integer     Number of object in a single bulk delete request
                                                                    500

(M) == mandatory parameter, (O) == optional parameter

Usage example:

zxsuite hsm doCreateVolume Swift volumeName primary http://host/service accountName password max_delete_objects_count 100

zxsuite hsm doUpdateVolume Swift

Syntax:
    zxsuite hsm doUpdateVolume Swift {current_volume_name} [attr1 value1 [attr2 value2...]]

PARAMETER LIST

NAME                        TYPE        EXPECTED VALUES             DEFAULT
current_volume_name(M)      String
volume_name(O)              String
volume_type(O)              String      primary|secondary
url(O)                      String
username(O)                 String
password(O)                 String
maxDeleteObjectsCount(O)    Integer     Number of object in a single bulk delete request
                                                                    500
current_volume(O)           Boolean     true|false                  false

(M) == mandatory parameter, (O) == optional parameter

Cloudian (S3 compatible object storage)

CLI for Cloudian volume management:

Add a new volume

 zxsuite hsm doCreateVolume Cloudian name secondary bucket_name bucket access_key ACCESSKEY secret SECRET url https://url.of.storage

Delete a volume

 zxsuite hsm doDeleteVolume name

Set a volume as current

 zxsuite hsm doUpdateVolume Cloudian name current_volume true

zxsuite hsm doCreateVolume Cloudian

Syntax:
    zxsuite hsm doCreateVolume Cloudian {volume_name} {primary|secondary} [attr1 value1 [attr2 value2...]]

PARAMETER LIST

NAME                            TYPE                EXPECTED VALUES
volume_name(M)                  String
volume_type(M)                  Multiple choice     primary|secondary
bucket_name(O)                  String              Bucket name
url(O)                          String              S3 API compatible service url (ex: s3api.service.com)
access_key(O)                   String              Service username
secret(O)                       String              Service password
server_prefix(O)                String              Prefix to the server id used in all objects keys
bucket_configuration_id(O)      String              UUID for already existing service credentials
                                                    (zxsuite config global get attribute s3BucketConfigurations)
prefix(O)                       String              Prefix added to blobs keys

(M) == mandatory parameter, (O) == optional parameter

Usage example:

zxsuite hsm doCreateVolume Cloudian volumeName primary bucket_name bucket url http://host/service access_key accessKey secret secretKet
zxsuite hsm doCreateVolume Cloudian volumeName primary bucket_configuration_id uuid

zxsuite hsm doUpdateVolume Cloudian

Syntax:
    zxsuite hsm doUpdateVolume Cloudian {current_volume_name} [attr1 value1 [attr2 value2...]]

PARAMETER LIST

NAME                            TYPE                EXPECTED VALUES             DEFAULT
current_volume_name(M)          String
volume_name(O)                  String
volume_type(O)                  String              primary|secondary
server_prefix(O)                String              Prefix to the server id used in all objects keys
bucket_configuration_id(O)      String              UUID for already existing service credentials
                                                    (zxsuite config global get attribute s3BucketConfigurations)
current_volume(O)               Boolean             true|false                  false

(M) == mandatory parameter, (O) == optional parameter

Volume Deletion

zxsuite hsm doDeleteVolume

Syntax:
    zxsuite hsm doDeleteVolume {volume_name}

PARAMETER LIST

NAME                            TYPE
volume_name(M)                  String

(M) == mandatory parameter, (O) == optional parameter

Usage example:

zxsuite hsm dodeletevolume hsm
Deletes volume with name hsm

Move all data from a volume to another

zxsuite hsm doVolumeToVolumeMove

Syntax:
    zxsuite hsm doVolumeToVolumeMove {source_volume_name} {destination_volume_name}

PARAMETER LIST

NAME                            TYPE
source_volume_name(M)           String
destination_volume_name(M)      String

(M) == mandatory parameter, (O) == optional parameter

Usage example:

zxsuite hsm doVolumeToVolumeMove sourceVolume destVolume
Moves the whole contents of sourceVolume to destVolume
Personal tools