Zextras Powerstore and Third Party Storage solutions
From ZeXtras Suite Wiki
Language: | English • español • português |
---|
![]() |
Warning! This wiki is outdated and not maintained anymore, please refer to the new Zextras Documentation Hub at https://docs.zextras.com |
![]() |
This documentation is outdated. |
Please refer to https://docs.zextras.com |
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.
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