Configuration
Installation
HybridStore can be fully configured using its WCF-API, most basic configurations can be done via command line.
Setup
After finishing the setup, you get a service "Inpoint.HybridStore",
which is installed in C:\Program Files (x86)\HS Europe\inPoint.HybridStore
. Next you need to ensure that a valid license
is placed in the directory of C:\Program Files (x86)\HS Europe
.
After that the service will run and use default connections. That means
there is no tenant yet, but it can already be accessed by WCF. The url
for the interface are written to the DebugOutput and they can also be
seen in the config-file (it is created during first start).
Configure using Commandline
After installing open a command line (with admin rights) in the folder of HybridStore.
For the help of all commands execute
"HybridStoreSv.exe CONFIG"
The basic settings are explained in this documentation.
IMPORTANT In case that existing objects are changed, a restart of the service is required! The command line tool will not do that!
Tenant
This creates a tenant with the given name and database credentials, the id is randomly created. This id is needed for all calls to HybridStore!
TIP: Use "^" at the end of a line, allows to continue the command in the next line to make it more readable!
HybridStoreSv.exe CONFIG /CreateTenant ^
/Name HS-Test ^
/DbType SQLSERVER ^
/DbScheme hsUser ^
/DbConnectionString "User Id=hsUser;Password=hsPass;Initial Catalog=HybridStore;Data Source=VMDEVUNIFY\SQLDEVUNIFY"
Response
Tenant created: HS-Test - efcae8f2-8db4-4055-9eb0-331df3b72292
This creates the database objects and adds the tenant to the config file. In all following commands this tenant is used (by id or by name). All other commands will not change the config file any more, but only the database.
Locations
A location is the place where the files are physically stored. This can be a simple directory on a local disc, an UNC path or a more advanced system. Some provider support retention dates to protect the files against unwanted deletion.
Create a Location
Use /AddLocation
to add a new location to a tenant.
HybridStoreSv.exe CONFIG /Tenant HS-Test /AddLocation </other parameter...>
Edit a location
Use /EditLocation <name or id>
to edit an existing location. You can use the ID created in during creation or use the name you have chosen.
HybridStoreSv.exe CONFIG /Tenant HS-Test /EditLocation LocalHDD </other parameter...>
Common Parameter
Some settings are supported by all types of storage.
Name*
<text>
The name of this location, all chars are allowed but it’s recommended to use only chars which are also allowed in filenames.
LocationType*
FilePathLocation
, CenteraLocation
,
TivoliLocation
, AmazonS3Location
EmcS3Location
The type of the location.
ReadOnly
True
, False
In case this is true, the location is read-only. All write operations will fail with a predefined error.
Compression
NotUsed
, GZip
A file is marked as compressed or not, it’s possible to enable or disable this feature later but it will only affect new files.
- NotUsed: no compression
- GZip: each file is compressed by GZip
CompressionExclude
<list of extension>
A list of file extensions, which should be excluded from compression.
Encryption
NotUsed
: default, no encryptionRijndael
: each file is encrypted using Rijndael using a 256 bit key and a random salt per file.RijndaelGZip
: each file is first compressed with GZip and then encrypted!
EncryptionKey
<text>
The Rijndael key is derived from this key (after adding a salt).
IMPORTANT!
If files are already encrypted “NEVER” change the key. If needed create a new location which points to the same storage as the current.
Filepath-Location
Files are stored on an UNC-Path or a local Disk! For shares it's possible to set a password or you need to run the service as a windows user with access rights!
LocationType*
FilePathLocation
Paths*
<directory paths>
One or more paths where the files will be written. If more than one path use “;” to separate.
In case of multiple paths, the write is only successful if all paths are written. For reading only one successful read is required!
RetentionType
None
: no retention time at allCelerra
: Dell/EMC Celerra, using the last-access-dateCelerra_ReOpen
: same as above, but the file will be re-openedNetApp
: NetApp Snaplock, using the last-access-date with the NetApp specific handling of dates after the year 2038.NetApp_ReOpen
: same as above, but the file will be re-openedLastAccessThenReadOnly
: generic method of using the last-access-date and read-only attributesLastAccessThenReadOnly_ReOpen
: same as above, but the file will be re-opened
ReOpen
All Retention-Types support ReOpen. This will first closed the file normally and then reopen it to set the retention-date (setting the last-access-date and then set the file to read-only).
UserName
When accessing a share, use this credentials!
UserPass
When accessing a share, use this credentials!
Example:
Here we create a simple location for storing files on
C:\HybridStore\LocalHDD
HybridStoreSv.exe CONFIG /Tenant HS-Test ^
/AddLocation ^
/Name LocalHDD ^
/LocationType FilePathLocation ^
/Paths C:\HybridStore\LocalHDD
Response:
Configure tenant: efcae8f2-8db4-4055-9eb0-331df3b72292 - HS-Test
Location Added: LocalHDD(1)
Remember the id of the new location, it will be required when creating schemes! Newer versions can also use the name instead of the id.
With the parameter "RetentionType" it's possible to configure retention
enabled storages like Celerra
or NetApp.
Centera-Location
Store files in an DELL/EMC Centera.
LocationType*
CenteraLocation
Adresses *
<centera connection string>
The connection string to the centera.
Authentication
<file path>
In case authentication is required, this is the full path to a PEA-file, which must exists on the computer.
EmbeddedBlobs
<size in bytes>
All files smaller than this threshold, will be embedded into the clip instead of writing a separate blob.
Example: Here we create a location for storing files on a EMC-Centera, you need a working address and the correct "PEA-file" for it.
HybridStoreSv.exe CONFIG /Tenant HS-Test ^
/AddLocation ^
/Name CentTest ^
/LocationType CenteraLocation ^
/Addresses "168.159.214.20,168.159.214.21" ^
/Authentication "C:\HybridStore\TEST.pea"
Response:
Configure tenant: efcae8f2-8db4-4055-9eb0-331df3b72292 - HS-Test
Location Added: CentTest(2)
Remember the id of the new location, it will be required when creating schemes!
IBM-Tivoli-Location
Storing files using the IBM-Tivoli interface, a 64-Bit client is required!
As default HybridStore would archive wills with the option ´ENABLEARCHIVERETENTIONPROTECTION=yes´ and would immediately set a Hold on the new files. So that TSM will not delete them, when the files are deleted by HybridStore this Hold is then released.
The files will be stored on TSM, in a directory called
H:\HybridStore\HS
, the drive and the first directory is fixed, the
following part can be configured if required!
LocationType*
TivoliLocation
DsmiDir*
<a valid path>
The directory where the API is located.
(e.g. tsmapi64.dll)
DsmiConfig*
<a valid path>
The file to config-file (e.g. C:\dsm.opt)
DsmiLog*
<a valid path>
The path for logging (set to TSM)
LogName
<filename>
The filename for logging (set to TSM);
default: HybridStore.txt
ClientNodeName
<string>
The node name for archiving.
Default: the machine name
ManagmentClass
<string>
The management class. Default: STANDARD
Options
<string>
Options for archiving. Default is “-ENABLEARCHIVERETENTIONPROTECTION=yes”
if Data-Retention is enabled.
UserName*
<string>
The name of the user to connect.
UserPass*
<string>
The password of the user to connect.
FileSpaceDirectory
<string>
The path of the file in TSM. Default: “HS”
LegacyMode
true
,false
Enables access to files stored by HSM
(creating new files is forbidden).
ArchiveSetRetentionActivate
true
,false
During archive the retention is active
(default: false)
ArchiveSetRetentionHold
true
,false
During archive a “hold” is set on the file
(default: true)
DataRetentionModeOff
true
,false
Disables data retention (default: off)
Amazon S3-Location (and compatible)
Storing files using the Amazon S3 interface. Files are stored in a bucket defined per location. The structure inside will contain the date (year, month, day) the "SharedId" of the file and the original extension.
LocationType*
AmazonS3Location
Address*
<url or name>
The http(s)-address of the S3 server or the well-known name of it(e.g "eu-central-1")
AccessKey*
<string>
The access key (user-name) for the connection
SecretKey*
<string>
The secret key (password) for the connection
Bucket*
<string>
The name of the S3 Bucket (this must be created before)
EncryptionMethod
<string>
Method for the optional server-side encryption (Amazon S3 supports only "none" or "AES256"
EncryptionKey
<string>
The encryption key for the optional server-side encryption (encoded in Base64), it must have the correct key size!
IMPORTANT
Several vendors also implement the S3-Interface, please check with their
documentation what to enter here!
Hitachi Content Platform (HCP) - S3 Interface
Hitachi implemented the Amazon S3 interface, the parameters are slightly different.
LocationType*
AmazonS3Location
Address*
<url>
The http(s)-address of the S3 server, this must include the name of the bucket:
e.g.
http://bucket.tenant.hcp.fqdn
AccessKey*
<string>
The user-name for the connection, encoded in base64.
SecretKey*
<string>
The MD5-Hash of the password for the connection.
Bucket
<not used>
Has to stay empty (already saved in the Address)
EncryptionMethod
<string>
Method for the optional server-side encryption (Amazon S3 supports only "none" or "AES256"
EncryptionKey
<string>
The encryption key for the optional server-side encryption (encoded in Base64), it must have the correct key size!
DELL-EMC S3-Location
Storing files using the Amazon S3 interface of EMC ECS. This features supports all the features of the Amazon S3 implementation, but it is storing files with the retention-time-extension of EMC.
LocationType*
EmcS3Location
Address*
<url>
The http(s)-address of the server.
AccessKey*
<string>
The access key (user-name) for the connection
SecretKey*
<string>
The secret key (password) for the connection
Bucket*
<string>
The name of the S3 Bucket (this is created during startup, if it does not exist).
EncryptionMethod
<string>
Method for the optional server-side encryption (Amazon S3 supports only "none" or "AES256"
EncryptionKey
<string>
The encryption key for the optional server-side encryption (encoded in Base64), it must have the correct key size!
Scheme
The scheme groups several settings (like minimal retention, storage location,...) into one and give it a nice human readable name. When storing a file into HybridStore the caller must always state which scheme to used.
Create a Scheme
Use /AddScheme
to add a new scheme to a tenant.
HybridStoreSv.exe CONFIG /Tenant HS-Test /AddScheme </other parameter...>
Edit a Scheme
Use /EditScheme <name or id>
to edit an existing scheme. You can use the ID created in during creation or use the name you have chosen.
HybridStoreSv.exe CONFIG /Tenant HS-Test /EditScheme LocalScheme </other parameter...>
Parameter
Name*
<text>
The name of this scheme, all characters are allowed.
Locations*
<List of locations (name or id)>
A list of locations ids or names, separate by space. Each id can have a trailing -Enqueue
or - Immediately
.
During write the file will be saved to all locations with a trailing Immediately but at least into one locations, the other locations will be filled by a background job.
Example:
/Locations 1 2
or
/Locations LocalHDD-Enqueue CentTest-Enqueue
SkipForExisting
true
,false
If this is true and a duplicate is found in a any location, the file will not be stored again in the location(s) listed in /Locations.
MinRetentionDays
<number>
If needed you can set a minimal retention time in days for all file in this location. This will increase the used retention date during archive, changing this value will not affect written files.
Example:
Here we create a scheme for the locations, during archive a scheme will
be set as parameter to define where files are saved.
HybridStoreSv.exe CONFIG /Tenant HS-Test /AddScheme /Name LocalScheme /Locations LocalHdd
Response:
Configure tenant: efcae8f2-8db4-4055-9eb0-331df3b72292 - HS-Test
Scheme Added: LocalScheme(1)
Remember the id of the new scheme, if not there is a WCF method for listing all configured schemes! Newer versions can also use the name instead of the id.
Show Configuration
Everything should be now ready for usage, call ListAll to verify the settings. Here all settings except passwords are shown, so you can see all parameters which exists, even if they were not used!
HybridStoreSv.exe CONFIG /Tenant HS-Test /ListAll
Response:
Tenant: efcae8f2-8db4-4055-9eb0-331df3b72292 - HS-Test
Admin: efcae8f2-8db4-4055-9eb0-331df3b72292 -> Full
Location: LocalHDD(1) FilePathLocation
ReadOnly : False
Encryption : NotUsed
Compression : NotUsed
CompressionExclude:
Paths : C:\HybridStore\LocalHDD
RetentionType : None
UserName :
Location: CentTest(2) CenteraLocation
ReadOnly : False
Encryption : NotUsed
Compression : NotUsed
CompressionExclude:
Addresses : 168.159.214.20,168.159.214.21
Authentication : C:\HybridStore\TEST.pea
EmbeddedBlobs : 0
Scheme: LocalScheme(1)
Min Ret. Days : 0
SkipForExisting: False
Location(100) -> Immediately LocalHDD(1)
Scheme: CentTest(2)
Min Ret. Days : 0
SkipForExisting: False
Location(100) -> Immediately CentTest(2)